我想要整合两个组件。
我在组件#1中创建了一个新视图,
我想iframe或加载组件#2中的内容。
一旦我添加了' tmpl = component',iframe就能正常运行,但我点击了iframe中的链接。 joomla包括joomla页脚和标题。
是否有一种有效的方法将组件#2中的内容加载到组件#1中?
我无法访问joomla模板。我只能访问组件#1和#2。
感谢名单。
答案 0 :(得分:1)
使用iframe不是最佳选择,最好从主组件的控制器调用其他组件的模型,并处理主组件的视图。所以double组件只存在于你的后端逻辑中,而视图将完全由主要组件处理。
仅当辅助组件的开发人员不使用JPATH_COMPONENT或其他指向错误组件的常量时,这才有效。
举例来说,在您的控制器或主要组件的模型中:
$com_path = JPATH_SITE.'/components/com_secondary_component/models';
JModelLegacy::addIncludePath($com_path , 'SecCompPrefixModel');
$secondaryModel = JModelLegacy::getInstance( 'modelName', 'SecCompPrefixModel' ,array('ignore_request' => true));
...然后您可以使用$ secondaryModel-> getItems()等,这样您的辅助组件的项目就可以在您的主要组件中使用。