2010-09-22 120 views
3

我是使用Joomla的绝对初学者。我试图在另一个模块中加载一个模块,但我找不到如何做到这一点。我一直在尝试添加在Joomla的另一个模块中加载模块

{loadposition position} 

“位置”替换了我想要加载的模块的位置,但它似乎只能在文章中使用。

我在这里找到了另一个解决方案:http://forum.joomla.org/viewtopic.php?p=1531754&sid=bae9b487983c7e8a9f9c4fbd2958cf52#p1531754 但我不知道将PHP代码放在我的模块中。

感谢您的帮助!

回答

12

您需要手动添加代码以将内部模块呈现给容器模块。这里有一个例子:

jimport('joomla.application.module.helper'); 
$module = JModuleHelper::getModule('mainmenu'); 
$attribs['style'] = 'xhtml'; 
echo JModuleHelper::renderModule($module, $attribs); 

来自 http://docs.joomla.org/JModuleHelper/renderModule

要显示你需要将代码放在您希望呈现的HTML您的外源模块的部分输出。

在哪里你可以用你想嵌入的模块的名字替换'mainmenu'。 (我删除了第二个参数,因为我假设你不想显示标题)。

+0

好,谢谢我给一个尝试和反馈;) – 2010-09-22 15:04:14

+0

我应该创建一个新的模块模板?我以为我可以使用现有的... – 2010-09-22 15:22:48

+0

我不完全确定你的意思是通过创建一个新的模块模板。如果你的意思是添加一个新的模块位置到你的网站模板,那么没有。代码会在另一个模块中渲染一个模块 - 不需要为内部模块指定一个位置。但是,您需要修改外部模块的代码,因此如果在没有内部模块的情况下使用它,您可能需要添加一个模块参数,指定是否显示内部模块,然后在添加代码之前执行检查我已经发布。 – 2010-09-22 15:32:58

4

如果您需要携带除菜单之外的其它模块(每总是在那里告诉你一个模块)

这是我的绝招:(2.5工程和3.0)

转到您的模块,并创建在这种情况下,只有像“oehelp”这样的虚假位置。

$document = &JFactory::getDocument(); 
$renderer = $document->loadRenderer('modules'); 
$options = array('style'=>'raw'); 
echo $renderer->render('oehelp',$options,null); 

瞧,

saludos