Показывать модуль Joomla только в конкретной статье - PullRequest
0 голосов
/ 18 ноября 2011

возможно показать модули в Joomla только в определенной статье (не для каждого пункта меню), но в стандартной позиции модуля. ? Например, каким-то образом получить идентификатор текущей статьи в шаблоне и вставить модуль с соответствующим суффиксом идентификатора в имени?

1 Ответ

1 голос
/ 18 ноября 2011

Я бы посоветовал вам не кодировать подобные вещи в шаблоне. Мой вопрос: почему вы не хотите использовать пункт меню? Вы можете создать скрытый пункт меню для этой статьи и использовать его, а затем назначить модуль этому пункту меню. Если вы все еще хотите сделать это без использования пункта меню, возможный обходной путь - использовать что-то вроде «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 ); 
        }
     }
    

Извините, если фрагмент кода не отображается должным образом, но я надеюсь, что вы можете прочитать его нормально. Только одна вещь, когда вы заполняете часть, в которой говорится «ваш_модуль_тип», не включайте часть «мод_» имени. Например, если вы хотите вывести модуль типа «mod_article_list», вы должны написать «article_list» в «your_module_type».

Надеюсь, это поможет!

...