【问题标题】:Loading a module in another module in Joomla在 Joomla 的另一个模块中加载一个模块
【发布时间】:2011-04-15 18:42:33
【问题描述】:

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

{loadposition position}

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

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

感谢您的帮助!

【问题讨论】:

    标签: joomla module


    【解决方案1】:

    您需要手动添加代码以将您的内部模块渲染到您的容器模块。举个例子:

    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”替换为您要嵌入的模块的名称。 (我删除了第二个参数,因为我假设您不想显示标题)。

    【讨论】:

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

    如果您需要带菜单以外的其他模块(每个地方总是显示一个模块)

    这是我的窍门:(适用于 2.5 和 3.0)

    转到您的模块并仅为此创建一个假位置,例如在这种情况下为“oehelp”。

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

    瞧,

    感谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-18
      • 2012-12-10
      相关资源
      最近更新 更多