在 Joomla 中加载另一个模块的模块

3
我是一名初学者,正在使用Joomla。我尝试在另一个模块中加载一个模块,但我不知道如何做。我一直尝试添加代码:

{loadposition position}

使用“position”替换我想要加载的模块位置,但似乎仅在文章中起作用。

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

谢谢您的帮助!

2个回答

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”。 (我删除了第二个参数,因为我假设您不想显示标题。)


我应该创建一个新的模块模板吗?我以为我可以使用现有的模板... - Boris Delormas
我不完全确定您所说的“创建新模块模板”的意思。如果您的意思是在网站模板中添加一个新的模块位置,那么不需要。代码将在另一个模块内呈现一个模块 - 不需要为内部模块指定位置。但是,您需要修改外部模块的代码,因此,如果它在没有内部模块的情况下在其他地方使用,则可能需要添加一个模块参数,指定是否显示内部模块,然后在添加我发布的代码之前执行检查。 - Ultimate Gobblement

4
如果您需要在菜单以外的位置添加另一个模块(任何地方都要显示该模块),可以使用以下技巧:进入对应的模块页面,为其创建一个虚假的位置,例如本例中的“oehelp”。此方法适用于2.5和3.0版本。
$document = &JFactory::getDocument();
$renderer = $document->loadRenderer('modules');
$options = array('style'=>'raw');
echo $renderer->render('oehelp',$options,null);

你好,

问候


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接