Как вывести модуль в модуле Joomla - 4.3 out of 5 based on 7 votes

Часто для создания определенного функционала сайта требуется вывести модуль в модуле Joomla. 

Есть много вариантов где это вам может пригодиться и множество способов вывести один модуль внутри другого модуля Joomla.

Как вывести модуль в модуле Joomla - 3 проверенных способа

В данном уроке мы рассмотрим много вариантов вывода модуля, думаю  какой то из них вам обязательно пригодится.

Добавление позиции модуля в шаблон модуля.

Добавляем позицию модуля

Модуль внутри другого модуля можно вывести добавив позицию модуля в шаблон разметки определенного модуля.  

Предположим, что нам необходимо вывести позицию модулей в модуле меню. Для этого нам необходимо добавить специальный код в файл разметки шаблона этого модуля - default.php.

Если в вашем шаблоне произведена шаблонизация модуля меню, то данный файл буде находится в следующей папке: папка с сайтом/templates/название вашего шаблона/html/mod_menu.

Если же по указанному пути данный файл отсутствует, то его нужно искать в следующем месте: папка с сайтом/modules/mod_menu/tmpl.

Открываем данный файл, при помощи редактора, (можно воспользоваться редактором Notepad2)  и в самом низу добавляем следующий код:

<?php
$document = &JFactory::getDocument();
$renderer = $document->loadRenderer('modules');
$options = array('style' => 'xhtml');
$position = 'позиция';
echo $renderer->render($position, $options, null);
?>

Только вместо слова "поизиция" укажите любую нужную вам позицию модуля (top, user1 и т. д.).

Сохраните файл. Теперь задайте определенному модулю позицию, которую вы указали в коде и он отобразится внизу модуля меню.

По аналогии можно добавить позицию модуля в любой модуль или сторонний компонент.

Чтобы в дальнейшем, при обновлении системы отредактированный нами файл не был перезаписан и все наши изменения не пропали, нужно произвести его шаблонизацию. Для этого в папке с вашим шаблоном зайдите в папку html, в ней создайте папку mod_menu (если вы делаете шаблонизацию другого модуля, то имя папки должно быть такое же как и имя папки данного модуля) и скопируйте сюда файл который вы редактировали.

Кроме этого можно вывести отдельный модуль по его ID. Найти ID модуля можно в менеджере модулей в последней колонке таблицы, напротив необходимого вам модуля.

Для вывода модуля по ID можно использовать следующий код:

<?php
$document = &JFactory::getDocument();
$renderer = $document->loadRenderer('module');
$options = array('style' => 'raw');
$dbo = JFactory::getDBO();
$dbo->setQuery("SELECT * FROM #__modules WHERE id='укажите ID' ");
$module = $dbo->loadObject();
$module->params = "heading=2\nlimit=10";
echo $renderer->render($module, $options);
?>

Только не забудьте заменить слова "укажите ID", на ID модуля.

Вывод модуля при помощи плагина Modules Anywhere.

Вывод модуля в модуле при помощи плагина Modules AnywhereПри помощи плагина Modules Anywhere можно так же очень легко вывести модуль в модуле Joomla. Кроме этого данный плагин позволяет выводить модуль где угодно. 

Он позволяет выводить как позицию модуля так и отдельный модуль.

В случае если для данной цели вы решите использовать этот плагин, все делайте по аналогии с рассмотренным выше способом вывода модуля в модуле при помощи кода. Только в данном случае вместо кода вставляйте синтаксис вызова модуля.

Подробнее о плагине его функционале и синтаксисе смотрите в материале: Modules Anywhere - выводим модули Joomla в любом месте.

Вывод модуля в модуле произвольного HTML кода при помощи стандартного плагина Load Modules.

Вывод модуля в модуле Произвольного HTML кодаВ некоторых случаях для создания определенного функционала можно вывести любой модуль в модуле произвольного HTML кода, который входит в состав стандартных модулей Joomla.

Это очень просто и можно обойтись стандартными средствами Joomla не прибегая к сторонним плагинам и редактированию системных файлов. В этом случае вывод модуля можно осуществить при помощи системного плагина Load Modules (Загрузка модуля), который предназначен для вывода модулей внутри статей Joomla.

Чтобы вывести позицию модуля, достаточно в визуальном редакторе модуля произвольного HTML кода, вставить следующее:

Синтаксис Load Modules

Вместо "указать позицию" вставить необходимую позицию модуля (position-1, user-1 и т. д.).

Если вы заканчиваете создание сайта на Joomla или у вас уже есть работающий сайт и Вы недовольны качеством своего хостинг-провайдера и вам необходим виртуальный хостинг, советую вам воспользоваться виртуальным хостингом от компании HostLand.
 
Если при заказе хостинга указать промо-код - 4edc1eb4, то можно получить целый месяц хостинга бесплатно.

Материал подготовлен проектом: WebMasterMix.ru


Обсуждение материала

Войдите или зарегистрируйтесь,
чтобы добавить вопросы, идеи или ошибки, по данному материалу!

1 1 1 1 1 1 1 1 1 1 Рейтинг 4.29 (7 Голосов)