Часть 2 Добавление шаблона и параметров

13/04/2012 Разработка модуля Joomla 2.5

В предыдущей части был рассмотрен пример самого простого модуля. В этой части добавим к модулю шаблон отображения содержимого. 

Для того что бы добавить макет (шаблон), нужно внести изменения в основной файл (точку входа)

mod_helloworld.php

<?php
 
/**
 * @package     Joomla.Tutorials
 * @subpackage  Module
 * @copyright   (C) 2012 http://jomla-code.ru
 * @license     License GNU General Public License version 2 or later; see LICENSE.txt
 */
 
// No direct access to this file
defined('_JEXEC') or die;
 
require JModuleHelper::getLayoutPath('mod_helloworld', $params->get('layout', 'default'));

Как видно из кода здесь задействованы параметры модуля (объект $params). Имя используемого параметра имеет значение "layuot" и по умолчанию ему присваивается значение "default". Это означает что по умолчанию вывод будет осуществляться файлом mod_helloworld/tmpl/default.php

tmpl/default.php

<?php
 
/**
 * @package     Joomla.Tutorials
 * @subpackage  Module
 * @copyright   (C) 2012 http://jomla-code.ru
 * @license     License GNU General Public License version 2 or later; see LICENSE.txt
 */
 
// No direct access to this file
defined('_JEXEC') or die;
 
?>
<div>Отображение шаблона модуля</div>

Установка параметров для модуля

Параметры для модуля можно задать в XML файле описания модуля.

mod_helloworld.xml

<?xml version="1.0" encoding="utf-8"?>
<extension type="module" version="2.5.0" method="upgrade">
		<!-- Названия модуля -->
		<name>mod_helloworld</name> 
 		<!-- Следующие элементы являются не обязательными, 
			информация об авторе, копирайте и т.п. -->
		<creationDate>November 2010</creationDate>
		<author>SomeBody</author>
		<authorEmail>email@example.org</authorEmail>
		<authorUrl>http://www.joomla-code.ru</authorUrl>
		<copyright>Copyright Info</copyright>
		<license>License Info</license>
		<!--  Версия модуля запишется в БД таблица extension -->
        <version>0.0.1</version>
        <!-- Описание, не обязательно, по умолчанию использеуется имя модуля -->
        <description>helloworld description</description>
 
		<!-- Обратите внимание на атрибут folder, он указывает из
				 какой директории будут копироваться файлы  -->
        <files>
                <filename module="mod_helloworld">mod_helloworld.php</filename>
                <filename>mod_helloworld.xml</filename>
				<filename>index.html</filename>
				<folder>tmpl</folder>
        </files>
		<config>
			<fields name="params">
				<!-- Основные параметры для модуля -->
				<fieldset name="basic">
				</fieldset>
				<!-- Дополнительные параметры для модуля -->
				<fieldset name="advanced">
					<field name="layout" type="modulelayout"
						label="JFIELD_ALT_LAYOUT_LABEL"
						description="JFIELD_ALT_MODULE_LAYOUT_DESC" />				
				</fieldset>
			</fields>
		</config>
</extension>

Добавляется один параметр "layuot", с типом "modulelayout" (подробнее о типах параметров), который позволит выбирать соответствующий макет для модуля. Обратите так же внимание, что в описание добавляется директория "tmpl" с файлом макета, который используется по умолчанию.

Вложения:
mod_helloworld_part2.zip[ ] (1342) Загрузок

15 

Комментарии   

 
-1 baga
30.10.2012 17:40
создал модуль, установил... А как его опубликовать? В "менеджере модулей" внес изменения,

mod_hello 1 mod_hello Только выбранные Для всех Russian (RU) 91
(в разделе "только выбранные" - "Главная").

Куда выводятся изменения? я не вижу никаких изменений...
 
 
+4 Sergey
21.11.2012 21:54
чтобы опубликовать нужно выбрать в какую позицию публиковать :)
автору огромное спасибо, побольше таких статей и больше примеров
 
 
0 Nurali
05.08.2013 20:49
Sergey Спасибо вам большое, тяжело найти нормальное описание разработки модулей.
 
 
0 Alex
25.12.2013 12:45
Спасибо за статью.
Не подскажете как динамически создавать параметры для модуля. Например, для слайдера изображений в админке после нажатии на кнопку "+" добавляется поле с выбором изображения
 
 
-5 Максим
16.03.2015 10:54
Отличная информация, недавно нашёл премиум расширения для joomla на сайте faa.su. Это не спам,а совет так как сам там скачиваю постоянно.К слову faa.su это реальный сайт с плагинами и модулями для joomla где есть премиум расширения бесплатно и по прямым ссылкам без регистрации.