Рекомендуем

Скидки до 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: Часть 5. Добавление помощника (helper)

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

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

Использование помощника возможно в различных целях, например чтобы получить количество зарегистрированных пользователей, список элементов из базы и многое другое. Чтобы показать как это работает, мы внесем изменения в наш простой модуль и вынесем в помощника часть функционала.
Создадим файл helper.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;
class modHelloWorldHelper
{
	public static function getGreeting() {
		return "Message from the helper";
	}
}

Как вы видите, мы просто создали класс со статичной функцией. Для того чтобы можно было использовать эту функцию класс должен быть загружен в модуль.
Внесем изменения в 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;
JLoader::register('modHelloWorldHelper', JPATH_BASE.'/modules/mod_helloworld/helper.php');
require JModuleHelper::getLayoutPath('mod_helloworld', $params->get('layout', 'default'));

В 10 строке мы загружаем наш класс из помощника. Конечно мы могли бы использовать функцию require(), но использование JLoader дает дополнительные преимущества, такие как отложенная загрузка (класс не загружается до тех пор, пока в нем не появится необходимость). Первым аргументом в JLoader::register указывается имя класса, а вторым аргументом путь к файлу, содержащему этот класс. JPATH_BASE – константа, определенная в Joomal, которая всегда указывает на корневой каталог, куда установлена Joomla.

Внесем необходимые изменения в файл шаблона вывода модуля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><?php echo $params->get('greeting', JText::_('MOD_HELLOWORLD_GREETING_DEFAULT')); ?></p>
<p><?php echo modHelloWorldHelper::getGreeting(); ?></p>

В 13 строке мы добавили вызов нашей вспомогательной функции, которая в новом параграфе выведет дополнительный текст к приветствию.

Нам осталось внести необходимые изменения в XML файл описания модуля mod_helloworld.xml, для того, чтобы помощник копировался при установке модуля (строка 21):

<?xml version="1.0" encoding="utf-8"?>
<extension type="module" version="2.5.0" method="upgrade">
	<name>MOD_HELLOWORLD</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>MOD_HELLOWORLD_XML_DESCRIPTION</description>
	<!-- Обратите внимание на тэг  files: в нем содержится информация, о том какие файлу нужно копировать в каталог модуля -->
	<files>
		<filename module="mod_helloworld">mod_helloworld.php</filename>
		<filename>mod_helloworld.xml</filename>
		<folder>tmpl</folder>
		<folder>language</folder>
		<filename>helper.php</filename>
	</files>
	<!-- Описание параметров модуля -->
	<config>
		<fields name="params">
			<fieldset name="basic">
				<field
					name="greeting"
					type="text"
					default="MOD_HELLOWORLD_GREETING_DEFAULT"
					label="MOD_HELLOWORLD_GREETING_LABEL"
					description="MOD_HELLOWORLD_GREETING_DESC"
				/>
			</fieldset>
		</fields>
	</config>
</extension>

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

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

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


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

Professional Responsive Joomla Templates