Создание модуля для 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

Комментарии (7)

 

  1. Анатолий:

    Ну, а почему статья незакончена? Начало хорошее, а где остальные процентов 60 данной статьи с подробным описанием?

  2. admin:

    Не люблю лишнюю воду. Здесь рассмотрена основная структура модуля и содержание его компонентов. Если что-то осталось не ясным, спрашивайте — распишу подробнее.

  3. Влад:

    Спасибо!!! Очень помогло!

  4. Hishchnik:

    Возможно ли реализовать автоматическую проверку обновлений модуля?

  5. Александр:

    Здравствуйте! у меня вопрос по модулю «flymaps». Модуль отображает карту на сайте. Единственное, что он не имеет инструмент поиска по адресу. Добавить его удалось только в рабочее окно модуля в панели управления (там строка поиска отображается), а на карте самого сайта этой строки нет. Что делать? Подскажите пожалуйста!

  6. admin:

    Здравствуйте, Александр! К сожалению, с этим модулем не работал.

  7. Егор:

    Доброго времени суток. Подскажите пожалуйста как получить значение например из email

Оставить комментарий