Рекомендуем

Скидки до 30% на все темы и подписки... Никаких уловок или обмана Подписка на GavickPro включает в себя полный доступ к шаблонам для Joomla и WordPress, без каких-либо...

Далее...

Elegant Icon Font - 310 великолепных иконок... ElegantThemes создали поистине самый красивый, элегантный и полный набор иконок. Набор предлагается в виде веб шрифта,...

Далее...

JA Fubix адаптивный шаблон для Joomla... JA Fubix - апрельский шаблон от JoomlArt. Отлично подходящий для сайтов с тематикой спортивных новостей использующих...

Далее...

T3 Framework от JoomlArt О фреймворке Фреймворк T3 заслужено считается одним из самых популярных шаблонных фреймворков для Joomla. Все шаблоны...

Далее...

3 популярных фреймворка для... Очень большую роль в популярности Joomla сыграла система шаблонов, позволяющая в считанные секунды преобразить...

Далее...

  • Prev
  • Next

Разработка модулей в Joomla 2.5: Часть 2. Использование шаблонов в модуле

6

Категории: Разработка модулей для Joomla

Разрабатывая модуль, нам необходимо продумать возможность вывода результатов его работы, лучше всего использовать для этого шаблоны. Конечно, можно не использовать шаблоны и сделать вывод результатов в основном PHP файле. Но это не самый лучший подход, необходимо разделять логику приложения от логики отображения. Также использование шаблонов дает возможность переопределить шаблон вывода без изменения самого модуля, а также сделать альтернативные стили вывода модуля.

Для того чтобы создать шаблон модуля нужно сделать всего две вещи:

  1. Создать шаблон модуля
  2. Сделать загрузку шаблона и его отображение

Создадим каталог tmpl, а в нем создадим файл default.php со следующим содержимым:

<?php 
/**
 * @package	Joomla.Tutorials
 * @subpackage	Module
 * @copyright	Copyright (C) 2005 - 2010 Open Source Matters, Inc. All rights reserved.
 * @license	License GNU General Public License version 2 or later; see LICENSE.txt
 */
// No direct access to this file
defined('_JEXEC') or die;

?>
<p>Hello World! </p>

Это очень простой шаблон, все, что он делает, это выводит HTML код. Далее нам необходимо модифицировать код модуля mod_helloworld.php, для загрузки и вывода шаблона:

<?php 
/**
 * @package	Joomla.Tutorials
 * @subpackage	Module
 * @copyright	Copyright (C) 2005 - 2010 Open Source Matters, Inc. All rights reserved.
 * @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'));

Как мы видим, единственное, что нам потребовалось для загрузки и вывода шаблона, это вызов функции JModuleHelper::getLayoutPath(). Первый аргумент этой функции – имя модуля, чтобы можно было найти шаблон (конечно, это название нашего модуля: mod_helloworld). Понять второй аргумент немного сложнее, он дает возможность задать для модуля альтернативный макет, сделать это можно в «Менеджере модулей» в «Дополнительных параметрах». Параметр layout доступен для всех модулей в «Менеджере модулей». В функции JModuleHelper::getLayoutPath() во втором параметре можно было просто передать значение default, но тогда выбор альтернативного макет в «Менеджере модулей» ничего бы не дал.

Ну и напоследок нам нужно модифицировать XML файл описания модуля, для того чтобы файлы шаблона копировались при установке модуля (строка 19):

<?xml version="1.0" encoding="utf-8"?>
<extension type="module" version="2.5.0" method="upgrade">
	<name>Hello World!</name>
	<!-- Следующие элементы не обязательны и могут содержать все, что вы считаете нужным -->
	<creationDate>05.05.2012</creationDate>
	<author>Dev Joomla</author>
	<authorEmail>info@dev-joomla.ru</authorEmail>
	<authorUrl>http://www.dev-joomla.ru</authorUrl>
	<copyright>Copyright Info</copyright>
	<license>License Info</license>
	<!-- Версия модуля – эта строка сохраняется в таблице расширений -->
	<version>0.0.1</version>
	<!-- Описание модуля также не обязательно и если оно не указано, то берется из тэга  name -->
	<description>Это описание модуля Hello World...</description>
	<!-- Обратите внимание на тэг  files: в нем содержится информация, о том какие файлу нужно копировать в каталог модуля -->
	<files>
		<filename module="mod_helloworld">mod_helloworld.php</filename>
		<filename>mod_helloworld.xml</filename>
		<folder>tmpl</folder>
	</files>
</extension>

Обратите внимание, что мы просто указали название каталога и не стали перечислять все файлы, которые там есть.

Скачать исходные тексты mod_helloworld-part02.zip

Предыдущая запись:

Следующая запись:


Комментариев 6 комментариев

В коде файла mod_helloworld.php нет закрывающего тэга «?>»

Да, это распространенная практика и не только в Joomla, последний тэг специально не закрывается, чтобы при выполнении php скрипта не получился «паразитный» вывод: пробелы или переводы строк после закрывающего тэга.

Подскажите, чем отличается метод «upgrade» от метода «install» используемого в строке:

Кроме того, что означает параметр client=»site», используемый в этой же строке в стандартных модулях joomla 2.5

«upgrade» – означает, что расширение можно обновлять без удаления предыдущей версии, то есть установщик при проверке на существование разрешить перезаписовать файлы.

client=«site» — обозначает к чему относиться расширение к самому сайту (frontend) или админ части (backend)

Спасибо, очень помогла статья!

а можете написать урок в котором будет рассказано про вывод данных из базы адресов картинок, вставка их в код и то как создать например по кнопке + расположенной в настройке модуля дополнительно поле в ходе чего создается доп. блок к примеру с картинкой?

Добавить комментарий

Professional Responsive Joomla Templates