0

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

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

4

1 回答 1

2

我建议您不要在模板中对此类内容进行硬编码。我的问题是,你为什么不想使用菜单项?您可以为该文章创建一个隐藏的菜单项并使用它,然后将模块分配给该菜单项。如果您仍然想在不使用菜单项的情况下执行此操作,则可能的解决方法是使用“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 ); 
        }
     }
    

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

我希望它有帮助!

于 2011-11-18T19:54:26.570 回答