【问题标题】:joomla + not render a modulejoomla + 不渲染模块
【发布时间】:2012-07-25 23:05:30
【问题描述】:

我为 joomla 2.5 开发了一个模块,它工作得很好,问题是我不希望它在显示组件的某个视图但该视图不是菜单链接时呈现,所以我可以'当我不想渲染时,不要告诉我的模块不要渲染。

【问题讨论】:

    标签: joomla


    【解决方案1】:

    两种可能:

    1. 将该视图分配给从未显示的菜单中的菜单项。您可以像往常一样隐藏模块。

    2. 由于您有一个自定义模块,您可以修改该模块以检查组件和视图,并且在某些情况下不呈现自身。

    【讨论】:

    • 我将采用您的第二个解决方案。我要找出如何检查视图。
    • 您可以通过 JRequest 或 JInput 获取该信息。通过获得option,您将获得带有view 的组件名称,您猜对了,就是视图名称。 PS:如果对你有帮助,请采纳。
    • 感谢您的帮助,我已经接受了您的回答,我是堆栈溢出的新手。再次感谢。
    【解决方案2】:

    “检查组件并查看,在某些情况下不呈现自身”可能会遇到的一个问题是,如果模块位于模块位置,当其中没有模块时应该“折叠”(例如右列或左列),它不会折叠,因为模块仍然被分配(即使它没有渲染任何东西)。

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

    MetaMod Pro 是一个很好的解决方案,它允许您构建确定其他模块是否应出现在页面上的条件。然后你输入一个 PHP 的 sn-p 来进行检测。

    所以 sn-p 可能是:

    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”。

    提示:如果不包含模块,专业版将允许模块完全消失。免费版可能会留下一些 HTML。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多