Joomla! Україна

Joomla 1.5. Відображення позиції модулів в компонентах, плагінах, модулях

20.02.2009, 19:42  |  Прочитано: 13477 раз  |  Модифікації та хаки  |  Автор: Денис Носов

Іноді необхідно вивести позицію модуля в якусь частину розширень, окрім шаблону. Наприклад в компонент статей (за допомогою шаблонів і MVC) або плагін, який використовується в системі плагінів content. Як це реалізувати у Joomla 1.5 про це і буде наша стаття.

Якщо в Joomla 1.0 достатньо було прописати наступний код:

<?php mosLoadModules ( 'user1', -1); ?> 

то для Joomla 1.5 такий підхід не проходить. Але не все так погано і насправді проблема вирішується дуже просто.

Для відображення позиції модуля або декількох модулів використаємо наступну функцію:

<?php
function JUModulePosition( $position, $style=-2 )
{
    $document    = &JFactory::getDocument();
    $renderer    = $document->loadRenderer('module');
    $params        = array('style'=>$style);

    $contents = '';

    foreach (JModuleHelper::getModules($position) as $mod)
    {
        $contents .= $renderer->render($mod, $params);
    }

    return $contents;
}
?>

І далі в коді виводимо самі позиції модулів, наприклад user1 та user2:

<?php
echo JUModulePosition( 'user1', $style='xhtml' );
echo JUModulePosition( 'user2', $style='xhtml' );
?>

де:

  • user1 – назва позиції модуля,
  • $style='xhtml' – тип відображення модуля.

Щоб запобігти помилок розумно використовуйте назву функцію, можливо необхідно буде назівати її іншим ім'ям. Наприклад JUModulePosition1 або JUModulePosition2.