Сегодня я бы хотел остановиться на правилах составления файла объявлений, или xml-фалах, или установочном файле для CMS Joomla. Данный файл называют по разному, но суть у него одна. И в данной статье я хотел бы рассказать о предназначении данного файла и о правилах его составления. Ведь без данного файла Вы не создадите нормального шаблона, не сможете разработать хорошее расширение для Joomla.
В системе управления контентом Joomla есть один основной файл, который указывает Joomla, что перед ней находиться одно из расширений, будь-то шаблон, компонент, плагин или модуль. Данный файл содержит общую информацию об установке, а также параметры конфигурации расширения. Он имеет минимум различий для разных типов расширения. Этот файл называют файлом установки, или конфигурационным фалом, или просто xml файлом, или файлом объявления. Я в дальнейшем буду его называть xml файлом.
Итак, как мы выяснили основная функция xml файла - это предоставление Joomla информации об установке, параметров конфигурации расширения.
Теперь, давайте остановимся на правилах составления данного xml файла.
Название
xml файл должен называться также как и разрабатываемое расширение: <имя_расширения.xml> или <manifest.xml>
Корневой тег
Любое содержимое файла *.xml обязательно обрамляется тегами <extension> </extension>.
Этот тег распространяется на все расширения для CMS Joomla и допускает следующие атрибуты:
Мета данные
Следующие элементы могут быть использованы для вставки мета данных:
Файлы Front-End
В этой секции указываем файлы, которые необходимо скопировать. Например:
<files>
<folder>language</folder>
<filename>index.html</filename>
</files>
Раздел администрирования
Раздел администрирования определяется в <administration> и используется только для компонент, как только они могут относится или к сайту, или к администрированию.
Файлы Back-End
В этой секции указываем файлы, которые будут скопированы для Back-End. Эти файлы обязательно должны быть заключены в тег <files>, который в свою очередь должен находиться в секции <administration>. Например:
<administration>
...
Меню и подменю
Текст для меню заключается в тег <menu>, который в свою очередь заключается в тег <administration>. Подменю заключается в тег <submenu>. Пример:
<menu>COM_EXAMPLE</menu>
<submenu>
<menu link="anoption=avalue">COM_EXAMPLE_ANOPTION</menu>
</submenu>
Кроме, того каждый тег <menu> может иметь следующий атрибут:
Конфигурация
В теге <config> мы описываем параметры конфигурации данного компонента
SQL
Вы можете выполнять SQL запросы во время установки или удаления компонента в секциях <install> и <uninstall>. Пример:
<install>
<sql>
<file driver="mysql" charset="utf8">example.install.sql</file>
</sql>
</install>
<uninstall>
<sql>
<file driver="mysql" charset="utf8">example.uninstall.sql</file>
</sql>
</uninstall>
Файл скриптов
Файл скриптов может быть определен в секции <filescript>. Пример:
<scriptfile>example.script.php</scriptfile>
Сервера обновления
Сервера обновлений определяются в секции <updateservers>. Эта секция может содержать один или несколько элементов <server>, которые в свою очередь имеют следующие атрибуты:
Скачать примеры составленных xml фалов для Joomla можно по следующим ссылкам:
com_alpha.xml
mod_alpha.xml
plg_alpha.xml
templateDetails.xml
lng_xx-XX.xml
В системе управления контентом Joomla есть один основной файл, который указывает Joomla, что перед ней находиться одно из расширений, будь-то шаблон, компонент, плагин или модуль. Данный файл содержит общую информацию об установке, а также параметры конфигурации расширения. Он имеет минимум различий для разных типов расширения. Этот файл называют файлом установки, или конфигурационным фалом, или просто xml файлом, или файлом объявления. Я в дальнейшем буду его называть xml файлом.
Итак, как мы выяснили основная функция xml файла - это предоставление Joomla информации об установке, параметров конфигурации расширения.
Теперь, давайте остановимся на правилах составления данного xml файла.
Название
xml файл должен называться также как и разрабатываемое расширение: <имя_расширения.xml> или <manifest.xml>
Корневой тег
Любое содержимое файла *.xml обязательно обрамляется тегами <extension> </extension>.
Этот тег распространяется на все расширения для CMS Joomla и допускает следующие атрибуты:
Атрибут | Значение | Применяется в | Описание |
type | component module plugin template | Во всех расширениях | Этот атрибут описывает тип расширения для установки |
version | 1.6 1.7 | Во всех расширениях | Этот атрибут описывает версию CMS Joomla |
method | new upgrade | Во всех расширениях | Этот атрибут указывает, что расширение устанавливается или обновляется (по умолчанию значение new) |
client | site administrator | modules template | Этот атрибут указывает для каких клиентских приложений этот модуль доступен |
group | string | plugin | Название группы указывает для какой группы доступен данный плагин |
Мета данные
Следующие элементы могут быть использованы для вставки мета данных:
- <name> необработанное имя компонента (например: com_banners)
- <author> имя автора
- <creationDate> дата создания расширения
- <copyright> авторские права
- <license> лицензионное соглашение
- <authorEmail> email автора
- <authorUrl> адрес сайта автора
- <version> версия расширения
- <description> описание расширения
Файлы Front-End
В этой секции указываем файлы, которые необходимо скопировать. Например:
<files>
<folder>language</folder>
<filename>index.html</filename>
</files>
Раздел администрирования
Раздел администрирования определяется в <administration> и используется только для компонент, как только они могут относится или к сайту, или к администрированию.
Файлы Back-End
В этой секции указываем файлы, которые будут скопированы для Back-End. Эти файлы обязательно должны быть заключены в тег <files>, который в свою очередь должен находиться в секции <administration>. Например:
<administration>
...
<files>
<folder>language</folder>
<filename>index.html</filename>
</files>
…
</administration>Меню и подменю
Текст для меню заключается в тег <menu>, который в свою очередь заключается в тег <administration>. Подменю заключается в тег <submenu>. Пример:
<menu>COM_EXAMPLE</menu>
<submenu>
<menu link="anoption=avalue">COM_EXAMPLE_ANOPTION</menu>
</submenu>
Кроме, того каждый тег <menu> может иметь следующий атрибут:
Атрибут | Описание |
link | Пользователь переходит по ссылке, когда данный пункт меню нажат |
view | Имя представления для загрузки |
img | Путь к изображению 16x16 пикселей, появляется рядом с пунктом меню |
alt |
Конфигурация
В теге <config> мы описываем параметры конфигурации данного компонента
SQL
Вы можете выполнять SQL запросы во время установки или удаления компонента в секциях <install> и <uninstall>. Пример:
<install>
<sql>
<file driver="mysql" charset="utf8">example.install.sql</file>
</sql>
</install>
<uninstall>
<sql>
<file driver="mysql" charset="utf8">example.uninstall.sql</file>
</sql>
</uninstall>
Файл скриптов
Файл скриптов может быть определен в секции <filescript>. Пример:
<scriptfile>example.script.php</scriptfile>
Сервера обновления
Сервера обновлений определяются в секции <updateservers>. Эта секция может содержать один или несколько элементов <server>, которые в свою очередь имеют следующие атрибуты:
Атрибут | Значение | Описание |
type | extension collection | Тип сервера обновлений |
priority | integer | Приоритет сервера обновлений |
name | string | Имя сервера обновлений |
Скачать примеры составленных xml фалов для Joomla можно по следующим ссылкам:
com_alpha.xml
mod_alpha.xml
plg_alpha.xml
templateDetails.xml
lng_xx-XX.xml
Доброго времени суток!!!
ОтветитьУдалитьПробовал по вашим урокам создать шаблон, первый раз получилось. Теперь решил попробовать что-нибудь сотворить во второй раз, но появилась ошибка:
JInstaller: :Install: Файл уже существует Z:\home\localhost\www\111\templates\agrosnab\images
На диске нет данной папки. Заранее спасибо
Доброго времени суток, первое, что проверьте правильность составления xml-файла, а второе в базе данных Вашего сайта в таблице _extensions удалите запись, связанную с Вашим расширением.
ОтветитьУдалитьСпасибо, очень удобно и грамотно написано. Всё в одной статье и как раз что надо!
ОтветитьУдалитьВ базе данных нет ни единой записи связанной с расширением, есть еще пути решения? xml проверен вдоль и поперек, по идее все нормально
ОтветитьУдалитьпроблема на 90% в составлении файла xml. Возможно Вы добавили в xml строку добавления файла или папки, которой нет в Вашем шаблоне
УдалитьДа действительно в xml была проблема, где-то видел что в обозначении файлов помимо тегов еще берут картинки и css в теги и , что делать нельзя! убрал и все полетело :) Спасибо за помощь.
ОтветитьУдалить