仅在特定文章中显示 Joomla 模块?

Posted

技术标签:

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

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

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

【问题讨论】:

【参考方案1】:

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

    创建模块并将其分配到任何地方都不使用的位置(您可以在模块位置键入任何您想要的内容)

    在您的 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 在菜单分配设置中我必须将其设置为在所有页面中显示吗?模块标题只是我在标题字段中写的名称?

以上是关于仅在特定文章中显示 Joomla 模块?的主要内容,如果未能解决你的问题,请参考以下文章

使用带有实际模板的 Joomla 仅在弹出窗口中显示文章

Joomla 2.5 仅在 K2 类别上显示模块而不在 K2 项目上

Joomla 菜单项特定模块不工作

在 joomla 文章中显示分类文章?

Joomla 图像隐藏在文章中

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