Створення модулів для Joomla2
В Інтернеті можна знайти багато підручників по роботі з CMS Joomla, але більшість з них призначені для початківців. Я вирішив створити підручник для розробників-початківців про створення власного модуля для “Joomla”. Я маю на увазі не модуль “Custom HTML”, а динамічний модуль, який буде взаємодіяти з базою даних і надавати нам список зареєстрованих користувачів на сайті. Давайте почнемо…
Створення структури модуля – папок та файлів.
Важливо: для того, щоб модуль працював, папка“mod_siteusers” повинна знаходитись у папці“modules”, розташованій у корені вашого сайту. Однак поки що робити це не потрібно, так як спочатку потрібно створити модуль, потім запакувати його файли в zip-архів і встановити його в адміністративній частині CMS Joomla.
- mod_siteusers
- -mod_siteusers.xml
- -mod_siteusers.php
- -helper.php
- -index.html
- -en-GB.mod_siteusers.ini
- -ru-RU.mod_siteusers.ini
- --tmpl (папка)
- --tmpl/default.php
- --tmpl/ordered_list.php
- --tmpl/index.html
mod_siteusers.xml
Цей файл містить усі дані про модуль: інформацію про модуль та його параметри, а також точну структуру файлів.
Ви можете вільно змінювати персональну інформацію. Зверніть увагу на теги “ ”. Вони описують параметри, які ви можете побачити в «Менеджері модулів» адміністративної частини сайту на сторінці налаштувань певного модуля. У нашому модулі їх 4. По-перше, це параметр "Суфікс класу модуля", який є у будь-якого модуля в системі. У цьому полі користувач може додати суфікс, який буде приєднаний до імені CSS-класу в коді модуля. Це допоможе змінити зовнішній виглядвигляд модуля на сторінці сайту. Другий параметр - це просто "розділювач". Третій параметр – кількість користувачів, що відображаються в модулі і, нарешті, четвертий параметр – можливі варіанти відображення списку користувачів. Кожен варіант відображення – це шаблон, який потрібно розміщувати у папці “tmpl ”. У налаштуваннях нашого модуля можна вибрати два варіанти відображення: у вигляді нумерованого списку без опису перед списком і у вигляді ненумерованого списку з описом перед списком. Відмінності при виборі одного з цих параметрів є незначними, але мені просто хочеться показати цю можливість на простому прикладі. Також ви могли звернути увагу на значення атрибуту "label", яке дорівнює "LABEL_USER_COUNT". Воно використовується у мовних файлах, але це пізніше.
mod_siteusers.php
Це файл контролер, який управляє функціями та файлами модуля.
Цей файл містить модель, робочу конячку, яка обробляє бізнес-логіку.
Запит у цьому файлі вибирає з таблиці #__users «імена» користувачів, обмежуючи кількість рядків, що повертаються значенням параметра «кількість користувачів», яке користувач встановлює в налаштуваннях модуля. Результати цього запиту будуть розміщуватись за допомогою методу "loadObjectsList" у змінну $rows (це масив об'єктів). Значення властивостей об'єктів, що зберігаються в змінній, ми зможемо вивести в циклі шаблон (файлdefault.php ).
Цей HTML-файл використовується виключно для запобігання доступу користувачів до файлів модуля безпосередньо.
tmpl/default.php
default.php – шаблон модуля, який використовується «за замовчуванням». По суті, він є HTML-файлом із вставками коду PHP. PHP-код складається з циклу, в якому обробляється масив, що містить імена користувачів. Дані змасиву виводяться на сторінку сайту як ненумерованого списку.
tmpl/ordered_list.php
Цей шаблон відображає список користувачів сайту у вигляді нумерованого списку. Як описано вище, відрізняються ці 2 шаблони тільки тим, що у другого шаблону немає значення параметра «опис» з налаштувань модуля і нумерований список.
Як і в папці модуля, цей HTML-файл використовується виключно для запобігання доступу користувачів до файлів модуля безпосередньо.
Тепер, коли всі файли вашого модуля створені, весь вміст папки "mod_siteusers " потрібно помістити в ZIP-файл, використовуючи будь-який архіватор (WinZip, WinRar, 7zip тощо).
Вітаю! Ваш перший модуль Joomla створено. Спробуємо його встановити!
Увійдіть до адміністративної панелі сайту та відкрийте «Менеджер розширень». Натисніть кнопку «Огляд» у розділі «Установка» та виберіть архів із модулем. Після встановлення ви побачите повідомлення «Установка модуля успішно завершено».

Відкрийте публічну частину сайту та ви побачите ваш модуль у роботі.
Результати роботи модуля виглядають не надто привабливо. Пропоную вам змінити його як домашнє завдання. Цей модуль дуже простий. Ви можете використовувати фреймворк, щоб витягти будь-які дані з бази даних, наприклад, такі як статті або ще щось. Також ви можете витягти з бази та відобразити в модулі такі дані як: email користувачів, логін та багато іншого. Можливості безмежні!