|
Пакет компонента, как и модуля, состоит как минимум из двух файлов — 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-файла, иначе получите ошибку при установке компонента.
Во-вторых, XML-файл компонента отличается от XML-файла модуля наличием секции администратора (для компонента она практически обязательна):
<administration>
<menu>Мой компонент</menu>
<files folder="admin">
<filename component="com_mycomponent">mycomponent.php</filename>
</files>
</administration>
В секции menu задается название компонента для отображения в меню Компоненты. Далее следует секция files, аналогичная основной секции files. Даже если у вашего компонента нет интерфейса администратора, обязательно создайте секцию administration, иначе компонент не зарегистрируется в меню Компоненты, и вы не сможете узнать, установлен он или нет.
Данная секция 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>
<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>
</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>
<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:
<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>
<authorEmail>
Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript
Этот 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>
<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>
<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">
<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
ru-RU.com_mycomponent.ini
install.sql
uninstall.sql
|