Общая информация
Модуль – это легкое и гибкое расширение для отображения небольших порций информации на странице. Модули назначаются пунктами меню, таким образом можно контролировать их отображение на странице. Некоторые модули напрямую связаны с компонентами, а некоторые существуют сами по себе (например, модуль HTML).
Создание модуля является одной из самых простых вещей в разработке под Joomla. Кроме того, модуль можно смело назвать одним из самых стабильных расширений в Joomla, так как его базовая разработка для разных версий Joomla практически не отличается. Именно поэтому эта документация охватывает создание модуля как для Joomla 2.5.x, так и для Joomla 3. В процессе разработки я сразу буду пояснять отличия между этими версиями, если такие различия существуют.
Я решил отойти от стандартных HelloWorld! вариантов, поэтому в качестве примера, мы создадим модуль, который будет выбирать из базы данных последних зарегистрированных пользователей и отображать их на сайте. Модуль будет называться «Последние пользователи» или «Latest users». Сразу скажу, что похожий модуль «Новые пользователи» существует в Joomla.
Файловая структура
Существует четыре базовых файла, которые составляют стандартный шаблон при разработке модуля:
- mod_latest_users.php – этот файл является главной точкой входа модуля. Он занимается необходимой инициализацией, вызывает хелпер для получения данных, а также подключает файл шаблона, который отобразит выходные данные модуля.
- mod_latest_users.xml – этот файл манифеста содержит всю информацию о модуле. Он определяет файлы, которые должны быть установлены и включает в себя параметры конфигурации модуля.
- helper.php – этот файл содержит класс хелпера, который является бизнес-логикой модуля и используется для получения информации, которая будет отображена в модуле (как правило из базы данных).
- tmpl/default.php – это макет вывода модуля (шаблон). Этот файл принимает данные, полученные с помощью mod_latest_users.php и генерирует разметку для отображения на странице.
В дополнение к этим основным четырем файлам у нас будут присутствовать следующие элементы:
- папка language – в ней будут расположены языковые файлы
- папка media/css – в ней будет расположен CSS-файл style.css
- файл tmpl/table.php – альтернативный макет вывода списка пользователей в виде таблицы
Вот как будет выглядеть файловая структура модуля:
/language/en-GB/en-GB.mod_latest_users.ini
/language/en-GB/en-GB.mod_latest_users.sys.ini
/language/ru-RU/ru-RU.mod_latest_users.ini
/language/ru-RU/ru-RU.mod_latest_users.sys.ini
/media/css/style.css
/tmpl/default.php
/tmpl/table.php
helper.php
mod_latest_users.php
mod_latest_users.xml
Описание функционала
Перед тем, как мы приступим к созданию модуля, нам необходимо определить его функционал:
- выборка информации из базы данных;
- возможность ограничения количества выбираемых данных – передача параметров модуля в хелпер и их использование;
- возможность выбора макета вывода для отображения информации – использование параметров модуля для выбора файла макета: отображать в виде списка или в виде таблицы;
- возможность выбора логики отображения информации - использование параметров в макете вывода для реализации различной логики вывода данных: отображать только логин, только имя или логин и имя вместе;
- стилизация разметки (подключение CSS) – использование параметра media в файле манифеста для расположения CSS-файла и его подключение с помощью JHtml;
- поддержка суффикса класса модуля;
- кэширование – использование встроенных в Joomla механизмов кэширования модулей.
Думаю, что теоретического материала волне достаточно. В следующей части мы займемся практикой и приступим к разработке модуля.