Создание XML-файла компонента Пакет компонента, как и модуля, состоит как минимум из двух файлов — XML- и PHP-файла. В большинстве случаев понадобится еще и третий файл, реализующий функции интерфейса администратора. Нужно отметить, что поскольку компонент — более сложный тип расширения, то и на его разработку понадобится значительно больше времени. Как и в случае с модулем, разработку компонента начнем с XML-файла. XML-файл компонента очень похож на XML-файл модуля. Но в то же время, в нем есть дополнительные секции. Отличается он от XML-файла модуля, во-первых, типом расширения, указанным в секции install: <?xml version=&quot;1.0&quot; encoding=&quot;windows-1251&quot;?> <install version=&quot;1.5.0&quot;> <name>mycomponent</name> ПРИМЕЧАНИЕ При разработке XML-файла обязательно обратите внимание на кодировку. Если вы используете кодировку Windows-1251, обязательно укажите ее в заголовке XML-файла, 1 / 12 Создание XML-файла компонента иначе получите ошибку при установке компонента. Во-вторых, XML-файл компонента отличается от XML-файла модуля наличием секции администратора (для компонента она практически обязательна): <administration> <menu>Мой компонент</menu> <files folder=&quot;admin&quot;> <filename component=&quot;com_mycomponent&quot;>mycomponent.php</filename> </files> </administration> В секции menu задается название компонента для отображения в меню Компоненты. Далее следует секция files, аналогичная основной секции files. Даже если у вашего компонента нет интерфейса администратора, обязательно создайте секцию administration, иначе компонент не зарегистрируется в меню Компоненты, и вы не сможете узнать, установлен он или нет. 2 / 12 Создание XML-файла компонента Данная секция Administration очень примитивна даже для нашего примитивного модуля. Поэтому рассмотрим дополнительные возможности. Наверное, вам хотелось бы указать пиктограмму для вашего компонента в меню Компоненты: <menu img=&quot;components/com_mycomponent/images/my.рng&quot;>Мой компонент</menu> Конечно, файл my.png нужно &quot;прописать&quot; в секциях media и files (см. ниже): <media folder=&quot;aditiin&quot; destination=&quot;com_mycomponent/images&quot;> <filename>images /my. png< /filename> </media> Для особо сложных компонентов можно указать секцию подменю <submenu>: <submenu> 3 / 12 Создание XML-файла компонента <menu link=&quot;option=com__mycomponent&amp; task=l&quot;>KoMamia K/menu> <menu link=&quot;option=com_mycoraponentSamp;task=2&quot;>KoMamia 2</menu> <menu link=&quot;option=com_mycomponentSamp;task=3&quot;>K0Mamia 3</menu> </submenu> Обратите внимание на то, что символ & должен в обязательном порядке быть заменен HTML-эквивалентом &аmр. Теперь подробнее рассмотрим секцию files. Файлы интерфейса администратора обычно расположены в каталоге admin. Данный каталог должен существовать в ZIP-архиве пакета расширения. <files folder=&quot;admin&quot;> <filename>admin .mycomponent .php</filename> <filename>images /my. png</filename> 4 / 12 Создание XML-файла компонента </files> Языковые файлы компонента, если вы решите их создавать, прописываются так: <languages folder=&quot;admin&quot;> <language tag=&quot;en-GB&quot;>en-GB.com_mycomponent.ini</language> <language tag=&quot;ru-RU&quot;>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=&quot;mysql&quot; charset=&quot;utf8&quot;>install.sql</file> <file driver=&quot;mysql&quot;>install.sql</file> </install> <uninstall> <sql> <file driver=&quot;mysql&quot; charset=&quot;utf8&quot;>uninstall.sql</file> <file driver=&quot;mysql&quot;>uninstall. sql</file> </uninstall> Если предусмотрены языковые константы для пользовательской части компонента, их описывают в секции languages, лежащей за пределами секции administration: 6 / 12 Создание XML-файла компонента <languages> <language tag=&quot;en-GB&quot;>en-GB.com_mycomponent.ini</language> <language tag=&quot;ru-RU&quot;>ru-RU.com_mycomponent.ini</language> </languages> Полный код XML-файла компонента представлен в листинге 9.4. Листинг 9.4. XML-файл компонента <?xml version=&quot;1.0&quot; encoding=&quot;windows-1251&quot;?> <install version=&quot;1.5.0&quot;> <name>mycomponent</name> <creationDate>Oct 2008</creationDate> <author>Denis Kolisnichenko</author> 7 / 12 Создание XML-файла компонента <authorEmail> [email protected] Этот 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=&quot;mysql&quot; charset=&quot;windows-1251&quot;>install. sql</file> </install> <uninstall> <sql> <file driver=&quot;mysql&quot; charset=&quot;windows-1251&quot;>uninstall. sql</file> </uninstall> <languages> <language tag=&quot;en-GB&quot;>en-GB.com_mycomponent.ini</language> <language tag=&quot;ru-RU&quot;>ru-RU.com_mycomponent.ini</language> </languages> 9 / 12 Создание XML-файла компонента <files> <filename>mycomponent.php</filename> <filename>my.png</filename> </files> <media destination=&quot;com_mycomponent&quot;> <filename>my. png< /filename> </media> <administration> <menu img=&quot;components/comjnycomponent/my.png&quot;>My component</menu> <files folder=&quot;admin&quot;> <filename>admin .mycomponent. php</filename> <filename>my. png< /filename> </files> <languages folder=&quot;admin&quot;> <language tag=&quot;en-GB&quot;>en-GB.com_mycomponent.ini</language> <language tag=&quot;ru-RU&quot;>ru-RU.com_mycomponent.ini</language> </languages> <media folder=&quot;admin&quot; destination=&quot;com_mycomponent/images&quot;> 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