如何在组件中显示Joomla模块?

时间:2010-10-28 15:10:15

标签: module joomla components

我有一个包含几类游戏的组件,我想根据类别显示不同的横幅。我需要横幅(和链接)可自定义,因此它不仅仅是显示categoryX.jpg或其他任何内容的情况。

我在另一个问题上看到了这个Joomla help page,但它似乎只显示了一个模块类型,而不是一个特定的模块。我想使用各种mod_custom模块并显示适合该类别的模块(如果需要,我可以存储每个模块的ID)。

有什么想法吗?

5 个答案:

答案 0 :(得分:5)

这可以通过两个步骤完成:

  1. 使用“Load module into article”插件允许您使用以下插件调用来访问模块:

    {module [* mod_id *]} //其中* mod_id *是模块ID

  2. 现在您可以调用插件将模块放在任何位置,现在需要转到您希望添加模块的组件的视图代码并添加此代码:

    echo JHTML :: _('content.prepare','{module [* mod_id *]}');

  3. 请看这个链接 - http://www.alltogetherasawhole.org/group/developers/forum/topics/running-joomla-content-plugins - 关于第2点。我试图做同样的事情,我发现它不起作用,原因是你可以在页面上找到评论链接上面:

    “我注意到一些插件实际上期望option = com_content让他们正确处理onPrepareContent,所以你可能真的想通过callin JRequet :: setVar”愚弄“它们并在触发器后恢复正确的值。”

答案 1 :(得分:3)

如果您想在PHP代码中显示模块,请使用此代码,它对我有用:

<?php echo   JHTML::_('content.prepare', '{loadposition position-2}');  ?>

如果要在html内容中显示模块,只需将此代码放在要显示模块的位置即可。

{loadposition position-2}

加载分配到位置-2的所有模块。

答案 2 :(得分:0)

你可以创建一个新模块吗?

如果每个类别出现在查询字符串中(catid = X),那么您可以对https://support.pillwax.com/open-source/doku.php?id=joomla:header_image采取类似的方法。

或者,该链接可能实际上是为您做的。

答案 3 :(得分:0)

Joomla内置了此功能。您可以在内容项中使用{loadposition XX}命令。您可以指定模板中未显示的自定义模块位置,以确保您在正确的文章中具有正确的模块。

http://docs.joomla.org/How_do_you_put_a_module_inside_an_article%3F

答案 4 :(得分:0)

您还可以使用Joomla Module Renderer

$doc = JFactory::getDocument();
$renderer = $doc->loadRenderer('modules');
$position = 'custom_position_name';
$options  = array('style' => 'raw');
echo $renderer->render($position, $options, null);