Создание модуля для Joomla 2.5 и 3.
Создание модуля для для Joomla 2.5 и 3 значительно проще, чем создание компонента, который обычно реализует более сложную бизнес-логику. Обычно, стандартный модуль в Joomla представляет собой следующую структуру файлов:
mod_name (папка с файлами модуля, где name – это имя модуля):
– mod_name.xml (файл описания модуля в xml-формате)
– mod_name.php (основной файл модуля)
– helper.php (необязательный файл)
– index.html (пустой html-файл)
– tmpl (папка с шаблонами оформления вывода содержания блока)
– default.php (шаблон оформления по умолчанию)
– index.html (пустой html-файл)
Рассмотрим пример простейшего модуля «mod_news».
Пример содержания xml-файла mod_news.xml (необходимый файл, без которого вы не сможете установить модуль) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?xml version="1.0" encoding="utf-8"?> <extension type="module" version="2.5.0" method="install"> <name>mod_news</name> <author>Andrew</author> <creationDate>18.03.2013</creationDate> <copyright>Copyright (C) 2013 All rights reserved.</copyright> <license>GNU General Public License</license> <authorEmail>admin@myemail.ru</authorEmail> <authorUrl>poleshuk.ru</authorUrl> <version>2.5.0</version> <description>MOD_NEWS_XML_DESCRIPTION</description> <files> <filename module="mod_news">mod_news.php</filename> <folder>tmpl</folder> <filename>index.html</filename> <filename>mod_news.xml</filename> <filename>helper.php</filename> </files> </extension> |
Как видно из примера, сначала включается информация об авторе и версиях, затем – информация о файлах и папках, которые поставляются с модулем.
Пример содержания файла mod_news.php (основной файл модуля):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php /** * здесь описание и комментарии */ defined('_JEXEC') or die; // подключаем наш хелпер require_once __DIR__ . '/helper.php'; //вызываем метод getNews(), который находится в хелпере //(извлекает из базы данных нужную нам информацию $news = modNewsHelper::getNews(); //подключаем html-шаблон для вывода содержания модуля (шаблон default). require JModuleHelper::getLayoutPath('mod_news', $params->get('layout', 'default')); |
Пример хэлпера helper.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?php defined('_JEXEC') or die; class modNewsHelper { public static function getNews() { //подключаемся к базе данных $app = JFactory::getApplication(); $db = JFactory::getDbo(); //здесь какие-то действия и запросы к базе данных ... //возвращаем результат return $rows; } } |
Файл вывода содержимого нашего модуля default.php
1 2 3 4 5 6 7 |
<?php defined('_JEXEC') or die; ?> <?php foreach ($news as $item) : ?> <li><?php echo $item->title;?></li> <li><?php echo $item->data;?></li> <?php endforeach; ?> |
Другие посты
Категория: Joomla
Ну, а почему статья незакончена? Начало хорошее, а где остальные процентов 60 данной статьи с подробным описанием?
Не люблю лишнюю воду. Здесь рассмотрена основная структура модуля и содержание его компонентов. Если что-то осталось не ясным, спрашивайте – распишу подробнее.
Спасибо!!! Очень помогло!
Возможно ли реализовать автоматическую проверку обновлений модуля?
Здравствуйте! у меня вопрос по модулю «flymaps». Модуль отображает карту на сайте. Единственное, что он не имеет инструмент поиска по адресу. Добавить его удалось только в рабочее окно модуля в панели управления (там строка поиска отображается), а на карте самого сайта этой строки нет. Что делать? Подскажите пожалуйста!
Здравствуйте, Александр! К сожалению, с этим модулем не работал.