Печать

Нестандартный вызов модуля, без jdoc:include

Joomla предоставляет возможность использовать свой Joomla Framework API в шаблонах, и вебмастер имеет возможность вывести любые модули CMS в любом месте своего шаблона. Помимо этого, используя нижеприведенный код, можно также вывести модуль Joomla! в любом месте отдельной страницы не привязывает его к конкретному пункту меню.

Вывод позиции модуля

Наиболее легкий вариант - это вывод позиции для модуля. Это довольно простая задача для шаблона, но совсем не тривиальная если вам нужно вывести модуль на одной из страниц какого-либо компонента стороннего разработчика. Справится с этой задачей вам поможет следующий код:

$document   = & JFactory::getDocument();
$renderer   = $document->loadRenderer('modules');
$options    = array('style' => 'xhtml');
$position   = 'article-banners';
echo $renderer->render($position, $options, null);

В $option указываем стиль модуля (raw, xhtml, и т.д.), а также имя позиции для модуля, в данном примере это 'article-banners'.

Вывод одного модуля

Вывод одного модуля реализовать немного сложнее, так как вам придется определить все параметры вручную. Если этого не сделать, то будут использованы параметры установленные в модуле по умолчанию. Вот пример кода для вывода одного модуля:

$document   = & JFactory::getDocument();
$renderer   = $document->loadRenderer('module');
$options    = array('style' => 'raw');
$module     = JModuleHelper::getModule('mod_custom_banners');
$module->params    = "heading=2\nlimit=10";
echo $renderer->render($module, $options);

Здесь мы используем JModuleHelper для загрузки модуля, в качестве параметра передаем ему имя модуля ('mod_comments_comments'). В $module->params устанавливаем параметры модуля в том же формате как они прописаны в файле конфигурации, каждый параметр разделяется символом новой строки \n. 

Интересная статья? Поделись ей с другими: