Іноді необхідно вивести позицію модуля в якусь частину розширень, окрім шаблону. Наприклад в компонент статей (за допомогою шаблонів і 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' – тип відображення модуля.
Детальніше про типи відображення модулів читайте у статті Створення шаблону для Joomla! 1.5.
Щоб запобігти помилок розумно використовуйте назву функцію, можливо необхідно буде назівати її іншим ім'ям. Наприклад JUModulePosition1 або JUModulePosition2.