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

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

"Помошник" (Helper) - вспомогательные файл для модуля, в котором можно оперировать данными. Например,  в нем можно получать данные из БД или оперировать какими-то другими данными. В данном случае этот файл будет просто возвращать значение "Hello World"

helper.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.
defined('_JEXEC') or die('(@)|(@)');

class modHelloworldHelper
{
	public static function getList(&$params)
	{
		$html = 'Hello World';
		
		return $html;
	}
	
}

 Данный файл подключается в точке входа

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.
defined('_JEXEC') or die('(@)|(@)');

// Подключаем файл помошника
require_once dirname(__FILE__).'/helper.php';
// Выполняем getList метод из помошника
$list = modHelloworldHelper::getList($params);

require JModuleHelper::getLayoutPath('mod_helloworld', $params->get('layout', 'default'));

Теперь в макете вывода можно использовать объект или переменную $list. В данном случае это просто переменная, поэтому просто выведем ее.

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.
defined('_JEXEC') or die('(@)|(@)');

echo $list;
?>

Не забываем добавлять этот файл в 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>MOD_HELLOWORLD_XML_DESCRIPTION</description>
 
		<!-- Обратите внимание на атрибут folder, он указывает из
				 какой директории будут копироваться файлы  -->
        <files>
                <filename module="mod_helloworld">mod_helloworld.php</filename>
                <filename>mod_helloworld.xml</filename>
				<filename>index.html</filename>				
				<filename>helper.php</filename>
				<folder>tmpl</folder>
        </files>
		<config>
			<fields name="params">
				<!-- Основные параметры для модуля -->
				<fieldset name="basic">
					<field name="text" type="text"
						label="MOD_HELLOWORLD_TEXT_FIELD_LABEL"
						description="MOD_HELLOWORLD_TEXT_FIELD_DESC" />	
				</fieldset>
				<!-- Дополнительные параметры для модуля -->
				<fieldset name="advanced">
					<field name="layout" type="modulelayout"
						label="JFIELD_ALT_LAYOUT_LABEL"
						description="JFIELD_ALT_MODULE_LAYOUT_DESC" />				
				</fieldset>
			</fields>
		</config>
		<!-- Файлы локализации -->
		<languages folder="language">
			<language tag="ru-RU">ru-RU/ru-RU.mod_helloworld.ini</language>
			<language tag="ru-RU">ru-RU/ru-RU.mod_helloworld.sys.ini</language>
		</languages>		
</extension>
Вложения:
mod_helloworld_part4.zip[ ] (943) Загрузок

8 

Комментарии   

 
0 Alex
10.09.2012 19:37
Спасибо тебе, хороший человек, Николай! Все понятно. В результате у меня получился простенький, но вполне выполняющий свои функции модуль нестандартного меню, которое может редактировать владелец сайта без необходимости трогать верстку и шаблон.
Дай еще совет, где бы еще ума набраться про всякие джумлавске штучки типа _JEXEC и т.п. (с учетом знания основ ПХП).
Ответить
 
 
+4 Николай
23.11.2012 05:43
joomla-book.ru/development
Вот тут хорошая инфа, изучайте.
Ответить
 
 
-5 Александр
11.10.2015 22:52
За что спасибо просто тупая статья
Ответить
 
 
0 Гість
24.12.2016 23:06
Для неразвитых возможно тупая
Ответить
 

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


Защитный код
Обновить