Оригинал статьиОригинал статьи (английский)
http://dev.joomla.org/component/option,com_jd-wiki/Itemid,/id,modules:hello_world/Сама статья укороченная, не стал писать вводные тексты, а только то, что мне кажется важным.
Файловая структура:В основном используется четыре файла для написания модулей:
- mod_helloworld.php — это главный файл для модуля. Используется для инициации, вызова помощника для сбора различных данных, загрузка темплея, который выводит результат работы.
- mod_helloworld.xml — этот файл содержит информацию о модуле. Он определяет файлы, которые нужны для инсталяции и специфические настройки модуля.
- helper.php — этот файл содержит класс-помощник, который собирает всю информацию (обычно из базы данных или других мест)
- tmpl/default.php — это темплей модуля. Он показывает все собранные данные и генерирует ХТМЛь, в нужном виде.
Создаём mod_helloworld.phpmod_helloworld.php выполняет три функции:
- загружает helper.php
- вызывает нужные методы класса-помошника
- загружает файл темплея.
<?php
/**
* Hello World! Module Entry Point
*
* @package Joomla.Tutorials
* @subpackage Modules
* @link http://dev.joomla.org/component/option,com_jd-wiki/Itemid,31/id,tutorials:modules/
* @license GNU/GPL, see LICENSE.php
* mod_helloworld is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
*/
// zawita ot prjamogo dostupa
defined( '_JEXEC' ) or die( 'Restricted access' );
// tol'ko odin raz zagruzit' fajl s klassom-pomownikom
require_once( dirname(__FILE__).DS.'helper.php' );
// vypolnit' metod getHello() klassa-pomownika modHelloWorldHelper
$hello = modHelloWorldHelper::getHello( $params );
require( JModuleHelper::getLayoutPath( 'mod_helloworld' ) );
?>
Создание helper.phpСоздание tmpl/default.php
<?php
<?php echo $hello; ?>
Создание mod_helloworld.xml
<?xml version="1.0" encoding="utf-8"?>
<install type="module" version="1.5.0">
<name>Hello, World!</name>
<author>John Doe</author>
<version>1.5.1</version>
<description>A simple Hello, World! module.</description>
<files>
<filename module="mod_helloworld">mod_helloworld.php</filename>
<filename>index.html</filename>
<filename>helper.php</filename>
<filename>tmpl/default.php</filename>
<filename>tmpl/index.html</filename>
</files>
<params>
</params>
</install>
Маленькая добавкаВ каждую папку, которую мы создаём надо добавлять index.html, чтобы нельзя было просмотреть содержание папок при их прямом вызове.
<html><body bgcolor="#FFFFFF"></body></html>
P.S. Кириллица в коде в виде уникода отображается, пришлось писать транслитом.