2012-07-25 68 views
0

我开发了一个joomla 2.5模块,它工作得很好,事情是我不希望它显示组件的某个视图时显示,但该视图不是一个菜单链接,所以我不能告诉我的模块在我不想要的时候不渲染。joomla +不渲染模块

回答

0

两种可能性:

  1. 分配是查看到菜单项中是永远不会显示一个菜单。你可以照常隐藏模块。

  2. 由于您有自定义模块,因此您可以修改模块以检查组件和视图,并且在某些情况下不会呈现它自己。你可能有“检查组件和视图,而不是渲染本身在某些情况下”

+0

我要去你的第二个解决方案。我会找出如何检查视图。 – Armando 2012-07-25 23:19:02

+0

您可以通过JRequest或JInput获取该信息。通过获得'option'你可以通过'view'得到组件名称,你可以得到,你猜对了,查看名称。 PS:如果对你有帮助,请接受答案。 – 2012-07-26 09:39:50

+0

感谢您的帮助,我已经接受了您的回答,我是新的堆栈溢出。再次感谢。 – Armando 2012-07-26 15:32:44

0

的一个问题是,如果模块在一个模块的立场,即应该“崩溃”的时候有没有模块(例如右列或左列),它不会崩溃,因为模块仍然被分配(即使它没有渲染任何东西)。

问题在于决定显示模块的位置。这是模块本身决定何时呈现的问题,还是逻辑应该在其他地方,这决定了“在此页面上,是否应该显示某个特定的模块?”。我建议后者。

对此的一个好的解决方案是MetaMod Pro,它允许您在确定其他模块是否应出现在页面上的条件下构建。然后你放入一小段PHP来做检测。

所以片断可能是:

if (! ($option == 'com_mycomponent' and $view == 'myview')) return XXX; 
// replace XXX with the module id of the module you want to disappear. 

即“如果我们不和myComponent的MyView的,显示模块XXX页上的”。

提示:Pro版本将允许模块完全消失,如果它不包括在内。免费版本可能会留下一些HTML。