Нестандартный вызов модуля, без 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.