Перейти к содержимому
создание сайта joomla

Модули Joomla

Модули Joomla (Joomla Modules) — это легковесные и высокоадаптивные расширения CMS Joomla, предназначенные для визуализации отдельных блоков контента, навигационных элементов и интерактивных виджетов вокруг основной рабочей области страницы. Будучи ключевым конструктивным элементом интерфейса, модули размещаются в специально отведенных позициях шаблона, обладают собственной системой кэширования и могут гибко привязываться к конкретным пунктам меню или встраиваться непосредственно в текст материалов.

Место модулей в иерархии расширений CMS Joomla

Архитектура CMS Joomla базируется на четырех взаимодополняющих типах программных расширений, каждый из которых выполняет строго разграниченную инженерную роль:

  • Компоненты (com_*): монолитное ядро страницы. Генерируют основной контентный поток (каталог товаров, лента статей блога, форма оформления заказа) через системный тег <jdoc:include type="component" />. На странице всегда выполняется ровно один компонент.
  • Модули (mod_*): легковесные блоки окружения (меню, корзина, форма авторизации, слайдер, контактные виджеты), размещаемые в модульных позициях шаблона <jdoc:include type="modules" name="sidebar" />. На одной странице может выводиться произвольное количество модулей.
  • Плагины (plg_*): фоновые обработчики системных событий ядра, модифицирующие данные «на лету» (кэширование, маршрутизация, SEO, безопасность).
  • Шаблоны (tpl_*): каркас представления сайта, задающий общую HTML-сетку и разметку модульных позиций.

Модули разделяются на пользовательские (Site) — для внешнего интерфейса, и административные (Administrator) — для панели управления Joomla.

Архитектура современного модуля (Joomla 4, 5 и 6)

В актуальных ветках CMS Joomla структура модулей претерпела фундаментальную трансформацию в сторону сервис-ориентированной архитектуры:

Современная структура файлов (Service-Oriented):

• services/provider.php: регистрация модуля в контейнере внедрения зависимостей (Dependency Injection).
• src/Dispatcher/Dispatcher.php: диспетчер, координирующий сбор данных и вызов представления.
• src/Helper/Helper.php: класс хелпера с бизнес-логикой и запросами к БД через DatabaseInterface.
• tmpl/default.php: чистый макет вывода HTML.
• mod_name.xml: манифест параметров и настроек формы.

Подключение скриптов и стилей модуля осуществляется декларативно через Web Asset Manager (WAM), исключая дублирование CSS/JS библиотек на странице.

Обертки вывода (Module Chrome): стиль оформления обрамления модуля (заголовок, обертка тега HTML5 <aside> или <div>, бейджи) задается через хром шаблона (например, style="html5" или кастомный хром UIkit).

Управление отображением: позиции, меню и шорткоды

Система Joomla предоставляет беспрецедентную гибкость в настройке правил видимости и мест вывода модулей:

  • Модульные позиции шаблона: логические области макета (header, top, sidebar, bottom, offcanvas), в которые администратор может публиковать неограниченное число модулей с настройкой их порядка следования.
  • Привязка к пунктам меню (Itemid): модуль можно назначить на все страницы, исключить на выбранных или включить строго в определенных разделах сайта. Связка хранится в системной таблице базы данных #__modules_menu.
  • Встраивание в статьи через плагин: системный плагин loadmodule позволяет вставлять модули прямо в текст материалов с помощью шорткодов или (например, для вставки блока шеринга соцсетей).
  • Права доступа (ACL): каждый модуль может отображаться индивидуально для конкретных групп пользователей (гости, зарегистрированные клиенты, менеджеры).

Кастомизация без потери обновлений: Overrides

Одной из главных причин популярности Joomla является мощный механизм переопределения макетов (HTML Overrides):

Механизм HTML Overrides:

Разработчик может скопировать файл макета модуля в каталог шаблона /templates/my_template/html/mod_name/default.php и произвольно изменить HTML-разметку (например, интегрировать классы UIkit или Bootstrap). При обновлении самого модуля или ядра CMS кастомный код в шаблоне полностью сохраняется.

Альтернативные макеты (Alternative Layouts): в папку переопределений можно добавить файл с произвольным именем (например, cards.php). Это позволяет использовать один и тот же модуль на сайте в нескольких совершенно разных визуальных стилях, переключая макет в административной панели.

Суффиксы классов модуля (Module Class Suffix): возможность передавать индивидуальные CSS-классы в обертку конкретного экземпляра модуля без редактирования PHP-кода.

Производительность модулей и Core Web Vitals

Каждый опубликованный модуль выполняет логику и запросы к базе данных. Для поддержания высокой скорости загрузки критически важна оптимизация:

  • Кэширование модулей (Module Cache): встроенный механизм позволяет кэшировать сгенерированный HTML-код модуля в быструю память Redis, полностью исключая повторные SQL-запросы к таблицам базы данных. В настройках доступен выбор между стандартным кэшированием (для статических данных) и прогрессивным (с учетом контекста сессии).
  • Метрика CLS (Cumulative Layout Shift): динамически подгружаемые модули (слайдеры, баннеры, аккордеоны) обязаны иметь заранее зарезервированную высоту через CSS (min-height, aspect-ratio), предотвращая раздражающие сдвиги контента.
  • Оптимизация DOM-дерева: избыточное число модулей раздувает DOM (DOM Bloat). На мобильных устройствах рекомендуется скрывать тяжелые второстепенные блоки с помощью адаптивных классов шаблона.

Базовые модули ядра и практика веб-мастера

Дистрибутив CMS Joomla «из коробки» содержит исчерпывающий набор инструментов для сборки корпоративного сайта:

Ключевые модули ядра:

• mod_menu: адаптивная навигация с поддержкой многоуровневых выпадающих списков.
• mod_breadcrumbs: цепочка навигации («хлебные крошки») с автоматической микроразметкой Schema.org BreadcrumbList.
• mod_custom: блок произвольного HTML-кода для размещения баннеров, скриптов аналитики и типографических врезок.
• mod_articles_news: динамический вывод свежих материалов и новостей с фильтрацией по категориям.

Грамотное использование модульных позиций, кэширования и HTML overrides позволяет создавать уникальные и молниеносные интерфейсы без перегрузки сайта сторонними плагинами.


создание сайта

модуль joomla

ОГЛАВЛЕНИЕ