Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 0 Ответов
  • 2394 Просмотров
*

Ptolemej

  • Захожу иногда
  • 52
  • 6 / 0
mod_helloworld туториал
« : 17.03.2008, 20:06:54 »
Оригинал статьи
Оригинал статьи (английский)
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.php
mod_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

Код
<?php
/**
 * Helper class for Hello World! module
 *
 * @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' );

class modHelloWorldHelper
{
    /**
     * Retrieves the hello message
     *
     * @param array $params An object containing the module parameters
     * @access public
     */   
    function getHello( $params )
    {
        return 'Hello, World!';
    }
}
?>


Создание tmpl/default.php

Код
<?php // no direct access
defined( '_JEXEC' ) or die( 'Restricted access' ); ?>
<?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. Кириллица в коде в виде уникода отображается, пришлось писать транслитом.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться