Создание XML-файла компонента - Host

advertisement
Создание XML-файла компонента
Пакет компонента, как и модуля, состоит как минимум из двух файлов — XML- и
PHP-файла. В большинстве случаев понадобится еще и третий файл, реализующий
функции интерфейса администратора.
Нужно отметить, что поскольку компонент — более сложный тип расширения, то и на
его разработку понадобится значительно больше времени. Как и в случае с модулем,
разработку компонента начнем с XML-файла.
XML-файл компонента очень похож на XML-файл модуля. Но в то же время, в нем есть
дополнительные секции. Отличается он от XML-файла модуля, во-первых, типом
расширения, указанным в секции install:
<?xml version="1.0" encoding="windows-1251"?> <install
version="1.5.0"> <name>mycomponent</name>
ПРИМЕЧАНИЕ
При разработке XML-файла обязательно обратите внимание на кодировку. Если вы
используете кодировку Windows-1251, обязательно укажите ее в заголовке XML-файла,
1 / 12
Создание XML-файла компонента
иначе получите ошибку при установке компонента.
Во-вторых, XML-файл компонента отличается от XML-файла модуля наличием секции
администратора (для компонента она практически обязательна):
<administration>
<menu>Мой компонент</menu>
<files folder="admin">
<filename component="com_mycomponent">mycomponent.php</filename>
</files>
</administration>
В секции menu задается название компонента для отображения в меню Компоненты.
Далее следует секция files, аналогичная основной секции files. Даже если у вашего
компонента нет интерфейса администратора, обязательно создайте секцию
administration, иначе компонент не зарегистрируется в меню Компоненты, и вы не
сможете узнать, установлен он или нет.
2 / 12
Создание XML-файла компонента
Данная секция Administration очень примитивна даже для нашего примитивного
модуля. Поэтому рассмотрим дополнительные возможности. Наверное, вам хотелось бы
указать пиктограмму для вашего компонента в меню Компоненты:
<menu img="components/com_mycomponent/images/my.рng">Мой
компонент</menu>
Конечно, файл my.png нужно "прописать" в секциях media и files (см. ниже):
<media folder="aditiin" destination="com_mycomponent/images">
<filename>images /my. png< /filename>
</media>
Для особо сложных компонентов можно указать секцию подменю
<submenu>:
<submenu>
3 / 12
Создание XML-файла компонента
<menu link="option=com__mycomponent& task=l">KoMamia K/menu>
<menu link="option=com_mycoraponentSamp;task=2">KoMamia 2</menu>
<menu link="option=com_mycomponentSamp;task=3">K0Mamia 3</menu>
</submenu>
Обратите внимание на то, что символ & должен в обязательном порядке быть заменен
HTML-эквивалентом &аmр.
Теперь подробнее рассмотрим секцию files. Файлы интерфейса администратора
обычно расположены в каталоге admin. Данный каталог должен существовать в
ZIP-архиве пакета расширения.
<files folder="admin">
<filename>admin .mycomponent .php</filename>
<filename>images /my. png</filename>
4 / 12
Создание XML-файла компонента
</files>
Языковые файлы компонента, если вы решите их создавать, прописываются так:
<languages folder="admin">
<language tag="en-GB">en-GB.com_mycomponent.ini</language> <language
tag="ru-RU">ru-RU.com_mycomponent.ini</language> </languages>
Вернемся к отличиям XML-файла компонента. В нем могут быть секции, определяющие
действия при установке (installfile) и удалении компонента (uninstallfile):
<installfile>installer.php</installfile> <uninstallfile>uninstaller.php</uninstallfile>
Довольно часто при установке нужно создать дополнительные таблицы, необходимые
для работы компонента:
<install>
5 / 12
Создание XML-файла компонента
<sql>
<file driver="mysql" charset="utf8">install.sql</file>
<file driver="mysql">install.sql</file>
</install>
<uninstall>
<sql>
<file driver="mysql" charset="utf8">uninstall.sql</file>
<file driver="mysql">uninstall. sql</file>
</uninstall>
Если предусмотрены языковые константы для пользовательской части компонента, их
описывают в секции languages, лежащей за пределами секции administration:
6 / 12
Создание XML-файла компонента
<languages>
<language tag="en-GB">en-GB.com_mycomponent.ini</language> <language
tag="ru-RU">ru-RU.com_mycomponent.ini</language>
</languages>
Полный код XML-файла компонента представлен в листинге 9.4.
Листинг 9.4. XML-файл компонента
<?xml version="1.0" encoding="windows-1251"?> <install
version="1.5.0"> <name>mycomponent</name>
<creationDate>Oct 2008</creationDate>
<author>Denis Kolisnichenko</author>
7 / 12
Создание XML-файла компонента
<authorEmail> dhsilabs@graail.com Этот e-mail адрес защищен от спам-ботов, для его
просмотра у Вас должен быть включен Javascript </authorEmail>
<authorUrl>http://www.dkws.org.ua</authorUr1>
<license>GNU/GPL</license>
<!— Версия компонента, а не Joomla —>
<version>l.4.0</version>
<description>
Описание компонента (допускается использование тегов HTML) </description>
<!— PHP-файлы инсталлятора отсутствуют, но есть файлы с
SQL-кодом, который нужно выполнить при установке и удалении компонента. Обычно
при установке компонента создается необходимая дополнительная таблица (оператор
CREATE TABLE), а при удалении компонента зта таблица удаляется (оператор DROP
TABLE) —>
<install>
8 / 12
Создание XML-файла компонента
<sql>
•Cfile driver="mysql" charset="windows-1251">install. sql</file>
</install>
<uninstall>
<sql>
<file driver="mysql" charset="windows-1251">uninstall. sql</file>
</uninstall>
<languages>
<language tag="en-GB">en-GB.com_mycomponent.ini</language>
<language tag="ru-RU">ru-RU.com_mycomponent.ini</language>
</languages>
9 / 12
Создание XML-файла компонента
<files>
<filename>mycomponent.php</filename> <filename>my.png</filename>
</files>
<media destination="com_mycomponent"> <filename>my. png< /filename>
</media> <administration>
<menu img="components/comjnycomponent/my.png">My component</menu>
<files folder="admin">
<filename>admin .mycomponent. php</filename> <filename>my. png< /filename> </files>
<languages folder="admin">
<language tag="en-GB">en-GB.com_mycomponent.ini</language> <language
tag="ru-RU">ru-RU.com_mycomponent.ini</language>
</languages>
<media folder="admin" destination="com_mycomponent/images">
10 / 12
Создание XML-файла компонента
<filename>my. png< /filename> </media> </administration>
</install>
В соответствии с этим XML-файлом структура каталога с нашим компонентом будет
такова:
admin <DIR>
admin.mycomponent.php
en-GB.com_mycomponent.ini my.png ru-RU.com_mycomponent.ini
mycomponent.php
my.png
en-GB.com_mycomponent.ini
11 / 12
Создание XML-файла компонента
ru-RU.com_mycomponent.ini
install.sql
uninstall.sql
12 / 12
Download