Joomla 1.5. Відображення позиції модулів в компонентах, плагінах, модулях
20.02.2009, 19:42 | Прочитано: 13751 раз | Модифікації та хаки | Автор: Денис Носов Друк | E-mail
Іноді необхідно вивести позицію модуля в якусь частину розширень, окрім шаблону. Наприклад в компонент статей (за допомогою шаблонів і 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.