Из статьи вы узнаете, как можно вставить любой модуль Joomla в контент другого модуля, материала или любого другого редактируемого элемента.
Варианты решения задачи
Существует два способа вставки модуля в контент другого элемента:
- Load Module (Загрузка модулей) — основной плагин Joomla.
 - Modules Anywhere — сторонний плагин для Joomla 3, 4 и 5.
 
Плагин Load Module
Ядро Joomla включает плагин Контент - Загрузка модулей, применяемый для вывода модулей в контенте сайта посредством шорткодов.
Синтаксис
Вставлять модулю посредством плагина Загрузка модулей можно с помощью кнопки Модуль в текстовом редакторе, которая будет формировать следующие шорткоды:
{loadmoduleid 1}позволит отобразить модуль с ID 1,{loadposition user1}позволит отобразить все модули в позиции шаблона user1,{loadmodule mod_login}позволит отобразить модуль с системным именем mod_login,{loadmodule mod_login,module title,style}позволит отобразить модуль с системным именем mod_login, определенным заголовком и стилем модуля.
Инструкция
Порядок действий по вставке модуля следующий:
- Устанавливаем курсор в нужное месте в текстовом редакторе.
 - Кликаем по кнопке Модуль.
 - В модальном окне кликаем либо по заголовку модуля (тогда в контенте будет отображаться данный конкретный модуль), либо по названию позиции (тогда будут выводиться все модули, опубликованные в этой позиции).
 - Проверяем отображение модуля на лицевой странице.
 
Например, существует модуль с идентификатором 1, в настройках которого во вкладке Привязка к пунктам меню установлено, что он должен отображаться только на главной странице. В этом случае, если вставить данный модуль с помощью шорткода {loadmoduleid 1}, он всё равно не будет отображаться в контенте любых страниц, кроме главной.
Плагин Modules Anywhere
Если функционала ядра не достаточно, то на помощь приходит плагин Modules Anywhere от разработчика Regular Labs, который позволяет вставлять модули Joomla в материалы и любые другие редактируемые элементы без недостатков, свойственных основному плагину.
Сравнение плагинов
| Особенность | Load Module | Modules Anywhere Free | Modules Anywhere Pro (€19) | 
|---|---|---|---|
| Вставка модулей и позиций модулей внутрь материалов | ✔️ | ✔️ | ✔️ | 
| Кнопка редактора для вставки | ✔️ | ✔️ | ✔️ | 
| Обработка шорткодов {loadmodule} и {loadposition} | ✔️ | ✔️ | ✔️ | 
| Управление стилями модулей через шорткоды | ✔️ | ✔️ | ✔️ | 
| Вставка в другие модули, сторонние компоненты и переопределения шаблонов | ❌ | ✔️ | ✔️ | 
| Выбор стилей вывода модулей при использовании кнопки редактора | ❌ | ✔️ | ✔️ | 
| Возможность игнорировать уровни доступа модулей, их состояние и закрепление за пунктами меню | ❌ | ✔️ | ✔️ | 
| Возможность переопределения настроек каждого отдельного тега модуля | ❌ | ❌ | ✔️ | 
| Возможность контроля уровня доступа к модулю для определённых групп пользователей и компонентов | ❌ | ❌ | ✔️ | 
| Кнопки редактирования модулей, размещенных через Modules Anywhere, во внешнем интерфейсе | ❌ | ❌ | ✔️ | 
Инструкция
Алгоритм действий аналогичный, как и с плагином ядра:
- Выбираем место для вставки модуля.
 - Кликаем по кнопке Module (название кнопки можно переопределить в настройках плагина).
 - В модальном окне кликаем по ID или по названию модуля (тогда в контенте будет отображаться данный конкретный модуль), либо по названию позиции (тогда будут выводиться все модули, опубликованные в этой позиции).
 - Проверяем отображение модуля на лицевой странице.
 
Настройки
В настройках плагина System - Regular Labs - Modules Anywhere есть следующие вкладки:
- Плагин
 - Здесь вы найдёте описание работы плагина.
 - Поведение
 - В этой вкладке можно настроить результат обработки модуля плагином: назначить стиль по умолчанию, отключить кэширование модуля и т. д.
 - Настройки безопасности
 - Здесь можно ограничить использование плагина в зависимости от компонента и группы пользователей.
 - Настройки кнопки редактора
 - В этой вкладке можно переопределить название кнопки, включить отображение кнопки во фронтенде и т. д.
 - Синтаксис тегов
 - Здесь можно переопределить синтаксис шорткодов, генерируемых плагином.
 
Выводы
Плагин ядра Контент - Загрузка модулей имеет очень ограниченный функционал. Как было отмечено выше, если модуль закреплён за определённой страницей, то он не будет выводиться на других страницах. Обойти это ограничение с множеством дополнительных возможностей позволяет плагин Modules Anywhere.
                                                            
                                                            
	








