1

简而言之

我正在尝试隐藏或取消发布带有另一个组件的模块。有人知道如何从代码中启用/禁用特定菜单项的模块吗?


设想:

我正在使用 T3 来构建我的模板。

我使用一个名为 Jreviews 的组件来列出事件,并且可以自定义视图。它由 joomla 菜单项分配的组件。

我还将横幅组件分配到同一菜单项的顶部。

我只想要第一次加载页面时的横幅组件,而不是当用户在 Jreviews 组件中搜索时。(搜索joomla后留在同一个url)

我可以在 Jreviews 组件中捕获搜索事件并按位置呈现模块。

<?php 
$position = 'user1';
$params     = array('style'=>'');
$document   = &JFactory::getDocument();
$renderer   = $document->loadRenderer('module');
$contents = '';
foreach (JModuleHelper::getModules($position) as $mod)  {   
    $contents .= $renderer->render($mod, $params);
}
echo $contents;
?>

但我得到一个与组件中分配的副本相同的副本。

问题

仅当我在 Jreview 模板中通过代码加载模块横幅组件时,如何显示它?

非常感谢,

爱德华多

4

2 回答 2

1

我找到了添加以下代码的方法

<?php 
$position = 'show-by-code';
$params     = array('style'=>'');
$document   = &JFactory::getDocument();
$renderer   = $document->loadRenderer('module');
$contents = '';
foreach (JModuleHelper::getModules($position) as $mod)  {   
    $contents .= $renderer->render($mod, $params);
}
echo $contents;
?>

然后在模块管理中,我使用不属于我的模板的相同位置“按代码显示”。

于 2012-09-12T11:34:06.360 回答
0

如果可以的话,尝试在模块代码中也捕获事件,并在那里决定是否应该显示横幅。

于 2012-09-12T07:32:49.033 回答