Я уже писал о преимуществах возможности переписывания разметки в Joomla! 1.5, но эти преимущества порой просто поражают. Поскольку мы имеем возможность использовать Joomla Framework API в наших шаблонах, у нас есть возможность вывести любой модуль в шаблоне, или любую позицию для последующего вывода модуля. Кроме того, используя код приведенный ниже вы также можете вывести модуль Joomla! в любом шаблоне любого, который поддерживает MVC.
Вывод позиции модуля
Самый простой вариант вывести позицию для модуля. Это вполне простая задача для шаблона, но не вполне простая задача если вы хотите вывести позицию для модуля, допусти, в переписанной разметке шаблона статьи материала в com_contetn. Вот код, с помощью которого можно это сделать:
<?php
$document = &JFactory::getDocument();
$renderer = $document->loadRenderer('modules');
$options = array('style' => 'xhtml');
$position = 'article-banners';
echo $renderer->render($position, $options, null);
?>
Операции, которые мы выполняем в этом коде: загрузка документа, вывод рендеринга модулей из документа, установка стиля модуля (raw, XHTML, и т.д.), а затем вывод желаемой позиции для модуля.
Вывод позиции для модуля очень удобен, так как, вы можете использовать админпанель Joomla!, чтобы установить все ваши параметры для модуля.
Вывод одного модуля
Вывод одного модуля реализовать немного сложнее, потому что вы должны определить все параметры вручную. Если вы этого не сделаете, то вам придется использовать параметры установленные в модуле по умолчанию. Вот код, который можно использовать для вывода модуля:
<?php
$document = &JFactory::getDocument();
$renderer = $document->loadRenderer('module');
$options = array('style' => 'raw');
$module = JModuleHelper::getModule('mod_comments_comments');
$module->params = "heading=2\nlimit=10";
echo $renderer->render($module, $options);
?>
Здесь мы опять получаем документ, но на этот раз мы вызываем рендеринг модуля а не позиции. Также мы указали стиль для вывода модуля. А далее, используем JModuleHelper для загрузки самого модуля по его машинному имени. Это возвращает объект модуля. Затем мы устанавливаем свойства параметров модуля в том же формате как они записываются в INI-файле, отделяя каждый параметр с символом новой строки «\n». Вот и все. Стоит сказать что данный метод я узнал из статьи
Loading Joomla Modules from Layout Overrides довольно давно, но все никак не хватало времени написать перевод в своем блоге. Надеюсь, что это метод будет для вас полезным.
Комментариев нет:
Отправить комментарий