Печать

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

"Помошник" (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>Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.</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>
Интересная статья? Поделись ей с другими: