【问题标题】:Show Joomla module only in specific articles?仅在特定文章中显示 Joomla 模块?
【发布时间】:2012-01-01 11:58:02
【问题描述】:

是否可以仅在特定文章(不是每个菜单项)中显示 Joomla 中的模块,而是在标准模块位置显示?

例如以某种方式在模板中获取当前文章 id 并在名称中插入具有相应 id 后缀的模块?

【问题讨论】:

    标签: templates module joomla joomla-article


    【解决方案1】:

    我建议您不要在模板中对此类内容进行硬编码。我的问题是,你为什么不想使用菜单项?您可以为该文章创建一个隐藏的菜单项并使用它,然后将模块分配给该菜单项。 如果您仍然想在不使用菜单项的情况下执行此操作,一种可能的解决方法是使用“mod_php”(允许您使用 php 代码的一些模块)之类的东西并或多或少地做一些这样的事情:

    1. 创建模块并将其分配到任何地方都不使用的位置(您可以在模块位置键入任何您想要的内容)
    2. 在您的 php 模块中,输入以下代码:

      $option = JRequest::getVar( 'option', '' );
      
      $view = JRequest::getVar( 'view', '' );
      
      $id = JRequest::getInt( 'id', 0 );
      
      if ( $option == "com_content" && $view == "article" && $id == YOUR_ARTICLE_ID ) {    
      
          $module = JModuleHelper::getModule('your_module_type', 'module_title');
      
          if ( ! empty( $module ) ) {
              $attribs = array( 'style' => 'xhtml' );
              echo JModuleHelper::renderModule( $module, $attribs ); 
          }
       }
      

    如果代码 sn-p 显示不正确,我很抱歉,但我希望您能正常阅读。只有一件事,当您填写“your_module_type”部分时,不要包括名称的“mod_”部分。例如,如果要输出“mod_article_list”类型的模块,则应在“your_module_type”中写入“article_list”。

    希望对你有帮助!

    【讨论】:

    • 谢谢您的回答..看起来很有希望..实际上我会尝试使用菜单项的解决方案..我不知道什么时候有隐藏的菜单项解决方案:) 我想通了,文章菜单参考适用于双方..那很酷。马上去试试!
    • 嘿,所以我用你发布的代码创建了非常简单的模块,是的,它的工作原理!谢谢你..
    • 实际上我认为第二种选择的解决方案更干净,不是吗?
    • 不,我认为隐藏菜单项解决方案要好得多。如果您不想在文章中打印单个模块,而是想打印 10 个不同的模块,请考虑一下。只需将这些模块分配给一个菜单项,但使用第二种解决方案,您必须编写10 个 php 模块.. 无论如何,我很高兴它有帮助
    • @alghimo 在菜单分配设置中我必须将其设置为在所有页面中显示吗?模块标题只是我在标题字段中写的名称?
    猜你喜欢
    • 2014-10-25
    • 2013-06-30
    • 1970-01-01
    • 2013-01-13
    • 2012-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-14
    相关资源
    最近更新 更多