Из статьи вы узнаете, как можно вставить любой модуль Joomla в контент другого модуля, материала или любого другого редактируемого элемента.

Варианты решения задачи

Существует два способа вставки модуля в контент другого элемента:

  1. Load Module (Загрузка модулей) — основной плагин Joomla.
  2. 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. Устанавливаем курсор в нужное месте в текстовом редакторе.
  2. Кликаем по кнопке Модуль.
  3. В модальном окне кликаем либо по заголовку модуля (тогда в контенте будет отображаться данный конкретный модуль), либо по названию позиции (тогда будут выводиться все модули, опубликованные в этой позиции).
  4. Проверяем отображение модуля на лицевой странице.

Обратите внимание!
Модуль, вставленный через плагин Load Module, не будет отображаться на тех страницах, которые не соответствуют условиям показа в настройках самого модуля.

Например, существует модуль с идентификатором 1, в настройках которого во вкладке Привязка к пунктам меню установлено, что он должен отображаться только на главной странице. В этом случае, если вставить данный модуль с помощью шорткода {loadmoduleid 1}, он всё равно не будет отображаться в контенте любых страниц, кроме главной.

Плагин Modules Anywhere

Если функционала ядра не достаточно, то на помощь приходит плагин Modules Anywhere от разработчика Regular Labs, который позволяет вставлять модули Joomla в материалы и любые другие редактируемые элементы без недостатков, свойственных основному плагину.

Сравнение плагинов

Таблица сравнения плагинов Load Module и Modules Anywhere
Особенность Load ModuleModules Anywhere FreeModules Anywhere Pro (€19)
Вставка модулей и позиций модулей внутрь материалов ✔️ ✔️ ✔️
Кнопка редактора для вставки ✔️ ✔️ ✔️
Обработка шорткодов {loadmodule} и {loadposition}  ✔️ ✔️ ✔️
Управление стилями модулей через шорткоды ✔️ ✔️ ✔️
Вставка в другие модули, сторонние компоненты и переопределения шаблонов ✔️ ✔️
Выбор стилей вывода модулей при использовании кнопки редактора ✔️ ✔️
Возможность игнорировать уровни доступа модулей, их состояние и закрепление за пунктами меню ✔️ ✔️
Возможность переопределения настроек каждого отдельного тега модуля ✔️
Возможность контроля уровня доступа к модулю для определённых групп пользователей и компонентов ✔️
Кнопки редактирования модулей, размещенных через Modules Anywhere, во внешнем интерфейсе ✔️

Инструкция

Алгоритм действий аналогичный, как и с плагином ядра:

  1. Выбираем место для вставки модуля.
  2. Кликаем по кнопке Module (название кнопки можно переопределить в настройках плагина).
  3. В модальном окне кликаем по ID или по названию модуля  (тогда в контенте будет отображаться данный конкретный модуль), либо по названию позиции (тогда будут выводиться все модули, опубликованные в этой позиции).
  4. Проверяем отображение модуля на лицевой странице.

Настройки

В настройках плагина System - Regular Labs - Modules Anywhere есть следующие вкладки:

Плагин
Здесь вы найдёте описание работы плагина.
Поведение
В этой вкладке можно настроить результат обработки модуля плагином: назначить стиль по умолчанию, отключить кэширование модуля и т. д.
Настройки безопасности
Здесь можно ограничить использование плагина в зависимости от компонента и группы пользователей.
Настройки кнопки редактора
В этой вкладке можно переопределить название кнопки, включить отображение кнопки во фронтенде и т. д.
Синтаксис тегов
Здесь можно переопределить синтаксис шорткодов, генерируемых плагином.

Выводы

Плагин ядра Контент - Загрузка модулей имеет очень ограниченный функционал. Как было отмечено выше, если модуль закреплён за определённой страницей, то он не будет выводиться на других страницах. Обойти это ограничение с множеством дополнительных возможностей позволяет плагин Modules Anywhere.