Модули в Joomla: практический пример для сайта
Показываем на Joomla 5.x, как создать пользовательский модуль с призывом к действию, вывести его только на нужных страницах и проверить, почему блок не появляется в шаблоне.

На Joomla 5.x пользовательский модуль можно собрать за 10–15 минут без правки шаблона и PHP. В практическом примере сделаем блок «Получить консультацию»: он будет стоять в боковой колонке, показываться только в выбранных пунктах меню и не исчезать после обновления CMS.
Что будем делать
Задача типична для корпоративного сайта: на страницах услуг нужен заметный блок с коротким текстом, кнопкой и контактной ссылкой. Создавать для этого отдельный компонент избыточно, а вставлять HTML в каждую статью неудобно: текст придётся менять вручную в нескольких местах.
Используем пользовательский модуль Joomla 5.x. Он хранит содержимое отдельно от статьи, получает позицию шаблона и может быть привязан к конкретным пунктам меню.
Модуль отвечает не за страницу целиком, а за отдельный участок интерфейса. Поэтому его удобно менять, переносить и включать только там, где он действительно нужен.
Что понадобится
- Joomla 5.x с доступом администратора, у которого есть права на управление модулями;
- активный шаблон сайта и хотя бы одна свободная позиция в нём;
- текст блока, URL кнопки и список страниц, где он должен появляться;
- доступ к сайту под HTTPS, если в модуле будут ссылки на внешние сервисы.
Модуль[1] — расширение Joomla, которое выводит небольшую функциональную или визуальную область: меню, форму, список материалов, баннер или произвольный HTML.
Три способа вывести один и тот же блок
Перед созданием стоит выбрать правильный тип. «Пользовательский» модуль не универсален для всех задач: он хорош для фиксированного текста и разметки, но не умеет сам подбирать материалы по категории.
| Подход | Когда использовать | Цена решения |
|---|---|---|
| Пользовательский модуль | Текст, кнопка, контакты, простой HTML-блок | Контент нужно менять вручную; данные не подтягиваются автоматически |
| Модуль меню | Вертикальная или горизонтальная навигация по пунктам меню | Внешний вид зависит от шаблона и его стилей |
| Модуль материалов | Список публикаций, категории, последние или популярные материалы | Настроек больше, а для короткого призыва к действию он избыточен |
Для нашего блока выбирайте пользовательский модуль. Если требуется автоматически показывать карточки товаров, новости или статьи, лучше использовать профильный модуль материалов, а не поддерживать список ссылок вручную.
Создаём пользовательский модуль
1. Откройте список модулей
- В панели администратора Joomla откройте раздел управления модулями сайта. В русской локализации пункт обычно называется «Материалы → Модули сайта», но название может отличаться из-за версии перевода и настроек меню.
- Нажмите «Создать» и выберите тип «Пользовательский» или «Custom».
- В поле заголовка укажите, например, «Консультация по проекту». Заголовок может отображаться на сайте, поэтому не оставляйте техническое имя вроде «Module 12».
Проверка: в форме редактирования появился визуальный редактор и настройки публикации, а тип модуля указан как пользовательский.
2. Добавьте содержимое
В редактор вставьте короткий текст, например: «Опишите задачу — ответим в течение рабочего дня». Выделите призыв к действию и добавьте ссылку на страницу контактов или форму. Для первого варианта не вставляйте скрипты, iframe и сложную разметку: редактор или политика фильтрации Joomla может удалить их при сохранении.
Держите блок компактным. Один заголовок, два предложения и одна ссылка обычно работают лучше, чем длинная рекламная вставка, которая вытесняет основной контент на мобильном экране.
Проверка: после сохранения текст и ссылка снова отображаются в редакторе, а адрес ссылки открывается в режиме предварительного просмотра.
3. Назначьте позицию шаблона
В настройках модуля найдите поле позиции и выберите область, которая существует в активном шаблоне. Названия вроде sidebar-right, aside, top-a или bottom не являются стандартом Joomla: каждый шаблон может называть позиции по-своему.
Если вы не знаете доступные позиции, включите их отображение в настройках шаблона, если такая возможность предусмотрена, или откройте страницу предпросмотра позиций. Не выбирайте позицию наугад: опубликованный модуль в несуществующей или скрытой области не будет виден посетителю.
Проверка: выбранная позиция присутствует в списке активного шаблона, а после сохранения она отображается в карточке модуля.
4. Ограничьте страницы показа
Перейдите к настройкам назначения по пунктам меню. Выберите режим показа только на выбранных страницах и отметьте пункты меню с услугами. Главную страницу и служебные разделы оставьте без модуля, если блок рассчитан именно на посетителей коммерческих страниц.
Здесь есть важная особенность Joomla: модуль назначается пунктам меню, а не URL как строке. Если одна и та же статья открывается через разные пункты меню, результат может отличаться. Проверяйте все реальные ссылки, которыми пользуются посетители.
Проверка: после публикации блок виден на выбранной странице и отсутствует на странице, которую вы не отметили.
5. Опубликуйте и проверьте адаптивность
Установите статус «Опубликовано», сохраните модуль и откройте сайт в приватном окне браузера. Проверьте страницу с услугой, главную страницу и мобильную ширину. Если шаблон показывает заголовки модулей автоматически, сравните результат с остальными блоками сайта.
Проверка: на десктопе модуль находится в нужной колонке, на смартфоне не выходит за ширину экрана, а ссылка ведёт на правильную страницу.
Что чаще всего ломается
Модуль опубликован, но его нет на сайте
Сначала проверьте три условия: модуль опубликован, позиция существует в активном шаблоне, а текущая страница входит в назначение по меню. Если позиция не поддерживается шаблоном, Joomla сохранит модуль, но посетитель не увидит его.
Модуль виден не на тех страницах
Сравните пункт меню, через который открыта страница, с пунктами, выбранными в настройках модуля. Особенно часто это проявляется у материалов, на которые ведут ссылки из поиска, категорий и пользовательских меню.
Редактор удаляет HTML
Проверьте фильтрацию текста и права группы пользователя. Не отключайте защитные ограничения ради одного блока. Если вам нужны скрипты или iframe, сначала определите, действительно ли они необходимы, а затем настройте разрешённый способ вставки с учётом политики безопасности сайта.
Кнопка выглядит как обычная ссылка
Пользовательский модуль не обязан иметь готовый стиль кнопки. Класс CSS может быть задан шаблоном, но его название не является общим стандартом Joomla. Сначала проверьте документацию активного шаблона; если готового класса нет, оформите элемент через дочерний шаблон или отдельный файл стилей, а не через inline-стили в каждом модуле.
Где подход ломается
Пользовательский модуль плохо подходит для данных, которые должны обновляться автоматически. Если в блоке нужно показывать остатки товаров, последние публикации, персональные цены или результат запроса к внешнему сервису, статический HTML быстро устареет.
Не стоит также копировать один и тот же текст в десять модулей ради разных страниц. В таком случае изменения превращаются в ручной аудит сайта. Лучше проверить, поддерживает ли нужное расширение фильтры по категориям и пунктам меню, или вынести повторяющийся контент в отдельный управляемый источник.
| Симптом | Вероятная причина | Что проверить |
|---|---|---|
| Не видно вообще | Неверная позиция или модуль снят с публикации | Активный шаблон, позицию и статус |
| Видно везде | Назначение установлено для всех страниц | Режим показа и выбранные пункты меню |
| Текст пропал после сохранения | Фильтрация редактора | Права пользователя и разрешённые теги |
| Внешний вид отличается | Стили активного шаблона | Предпросмотр на мобильном и CSS шаблона |
Что делать дальше
После публикации проверьте не только внешний вид, но и статистику переходов по ссылке. Если на сайте настроена аналитика, сравните страницы с модулем и без него, не меняя одновременно текст, позицию и оформление.
Затем создайте резервную копию перед изменением шаблона и документируйте назначение каждого важного модуля: зачем он нужен, на каких страницах показывается и кто отвечает за его содержимое. Инвалидация кеша после изменения модулей — отдельная тема, но в продакшене её нужно учитывать: посетитель может некоторое время видеть старую версию блока.
[1] Термин «модуль» в Joomla не равен PHP-модулю сервера. Здесь речь идёт о расширении CMS, которое выводит блок в позиции шаблона.
Саммаризатор: 50 страниц или созвон — в 5 главных тезисов.
Спросить за 15 ₽Источники: Joomla Documentation: Modules, Joomla Documentation: Module Manager
Частые вопросы
Можно ли создать модуль без знания PHP?
Почему модуль опубликован, но его не видно?
Можно ли показать один модуль только на одной статье?
Почему Joomla удаляет HTML или iframe из пользовательского модуля?
Подойдёт ли пользовательский модуль для списка последних статей?
Что делать, если после изменения модуль виден только администратору?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.