Создание собственных расширений - Host

advertisement
Создание собственных расширений
В этой главе...
-
О том, как создать модуль и компонент
Установка созданных нами расширений
Проблемы при установке расширений
Работа с базой данных средствами Joomla
Языковые файлы, создание многоязычных расширений
Опять о типах расширений
Как мы уже знаем, в Joomla существуют расширения трех типов: модули, компоненты и
плагины. Модули используются для вывода информации и организации минимального
взаимодействия с пользователем. На странице сайта может отображаться несколько
модулей. Компонент используется для организации взаимодействия с пользователем и
занимает всю центральную часть страницы. На странице сайта может быть только один
компонент.
Плагины же работают на более низком уровне и обрабатывают данные, передающиеся
из Joomla в браузер пользователя и обратно.
В этой книге мы поговорим о создании модулей и компонентов. Создание плагинов,
учитывая всю сложность этого процесса, выходит за рамки этой книги.
1/8
Создание собственных расширений
Мы не будем рассматривать основы РНР, а весь материал в этой главе будет
рассчитан на то, что вы полностью владеете этим языком программирования. Если это
не так, в любом книжном магазине вы без проблем найдете книжку по РНР (в том числе
и мою).
Разработка модуля
Структура модуля
Модуль состоит как минимум из двух файлов: служебного XML-файла и файла кода
(PHP-файл). Первый файл содержит всю информацию о модуле, а также инструкции
относительно установки модуля в системе. Второй файл содержит непосредственно сам
PHP-код модуля.
Опять о типах расширений
Как мы уже знаем, в Joomla существуют расширения трех типов: модули, компоненты и
плагины. Модули используются для вывода информации и организации минимального
взаимодействия с пользователем. На странице сайта может отображаться несколько
модулей. Компонент используется для организации взаимодействия с пользователем и
занимает всю центральную часть страницы. На странице сайта может быть только один
компонент.
Плагины же работают на более низком уровне и обрабатывают данные,
передающиеся из Joomla в браузер пользователя и обратно.
2/8
Создание собственных расширений
В этой книге мы поговорим о создании модулей и компонентов. Создание плагинов,
учитывая всю сложность этого процесса, выходит за рамки этой книги.
Мы не будем рассматривать основы РНР, а весь материал в этой главе будет
рассчитан на то, что вы полностью владеете этим языком программирования. Если это
не так, в любом книжном магазине вы без проблем найдете книжку по РНР (в том числе
и мою).
Разработка модуля
Структура модуля
Модуль состоит как минимум из двух файлов: служебного XML-файла и файла кода
(PHP-файл). Первый файл содержит всю информацию о модуле, а также инструкции
относительно установки модуля в системе. Второй файл содержит непосредственно сам
PHP-код модуля.
Разработка служебного XML-файла
Создайте каталог mod_mymodule. В него мы поместим оба файла нашего модуля.
3/8
Создание собственных расширений
Первым делом нужно разработать XML-файл. В большинстве случаев он будет
стандартным — вам нужно будет только изменять имя модуля и имя PHP-файла. В
листинге 9.1 приведен типичный XML-файл модуля.
Листинг 9.1. Файл mod_mymodule. xml
<?xml version="1.0" encoding="utf-8"?>
<install type="module" version="1.5.0">
<name>My Module</name>
<author>Denis Kolisnichenko</author>
<copyright>(C) 2008 Denis Kolisnichenko</copyright>
<creationDate>Oct 2008</creationDate>
<authorEmail>dhsilabs@mail.ru</authorEmail>
<authorUrl>www.dkws.org.ua</authorUrl>
<description>My first module</description> <version>l.0.0</version> <files>
4/8
Создание собственных расширений
<filename module="mod_mymodule">mod_mymodule .php</filename> </files>
<params>
<param name="your_name" type="text" default="Denis"
label="Your Name" description="Your name" /> </params> </install>
Проанализируем содержимое XML-файла. Первая строка обязательна для всех
XML-файлов. Вы можете разве что указать другую кодировку. Вторая строка говорит о
том, что наше расширение — модуль (type="module") и для его установки
нужна версия Joomla 1.5.0 или выше:
<install type="module" version="1.5.0">
Далее следует стандартная информация о модуле:
-
название — name;
разработчик — author;
156 Глава 9
дата создания — creationDate;
информация об авторских правах — copyright;
"координаты" автора — authorEmail, authorUrl;
описание модуля — description;
версия — version.
Блок files описывает файлы модуля, у нас всего один файл:
<files>
<filename module="mod_mymodule">mod_mymodule .php</filename> </files>
5/8
Создание собственных расширений
В блоке params описываются параметры модуля, которые можно будет изменить с
помощью интерфейса администратора. Каждый параметр описывается с помощью тега
param. Вам нужно указать следующие атрибуты этого тега:
-
name — имя параметра в сценарии;
type — тип параметра (текст в данном случае);
default — значение по умолчанию;
label — подпись параметра в интерфейсе администратора;
description — описание параметра (можно не указывать).
Секцию <install> нужно обязательно закрыть:
</install>
Разработка РНР-файла
Теперь можно приступить к созданию файла mod_mymodule.php — это главный файл
модуля, содержащий его исходный код. Наш модуль будет предельно прост, но, тем не
менее, он демонстрирует основные принципы создания модулей для Joomla. Модуль
попросту будет выводить строку: Hello, <Имя>.
Код нашего модуля представлен в листинге 9.2.
ЛИСТИНГ 9.2. Код файла mod_mymodule.php
<?php
// прямой доступ запрещен
6/8
Создание собственных расширений
defined( '_JEXEC ) or die ( 'Restricted access1 ) ;
// получаем значение
SUserName = $params->get('your_name', 0);
// Выводим строку
echo "<strong>" . JText::_('Hello, ') . SUserName . "</strong>.";
Создание собственных расширений 157
Теперь рассмотрим основные моменты нашего простого модуля. Если определена
константа JEXEC, модуль выполняется вместе с Joomla, если же такой константы нет,
значит, модуль запущен непосредственно (например, злоумышленником), и поэтому мы
должны прервать выполнение такого РНР-кода.
Получить значение параметров модуля, установленных в окне Менеджер модулей,
можно с помощью метода get объекта $params:
$UserName = $params->get('your_name', 0);
7/8
Создание собственных расширений
Все, что нам осталось — это просто сделать вывод. Я рекомендую обычные фразы,
например Send (Отправить), Save (Сохранить), выводить через статический класс Jtext:
тогда Joomla автоматически переведет их на выбранный пользователем язык
интерфейса.
8/8
Download