Сегодня обратились в поддержку, по поводу не корректного удаления пакета расширений Joomla. Я задался вопросом, а как собственно правильно должен выглядеть пакет установки расширения Joomla. Полез в документацию и хочу поделиться, на мой взгляд, ценной информацией.
Для чего нужен пакет установки Joomla?
Сейчас расширения Joomla обычно состоят из набора расширений: модули, плагины, компоненты, библиотеки. Устанавливать весь этот набор по отдельности не удобно, гораздо проще загрузить один архив в инсталлятор Joomla, а он уже все установит, так как надо. Собственно для этого и были придуманы пакеты. Обычно они обозначаются как pkg_ .
Теперь маленькая ремарка. Раньше я воспринимал, установочный пакет, только с точки зрения удобной установки расширений Joomla, с сегодняшнего дня я его еще и воспринимаю, как инструмент удобного удаления расширений Joomla.
Дальше будет немного официальной документации с моими комментариями.
Представим, что у нас есть директория с расширениями:
-- pkg_helloworld.xml -- packages <dir> |-- com_helloworld.zip |-- mod_helloworld.zip |-- lib_helloworld.zip |-- plg_sys_helloworld.zip |-- tpl_helloworld.zip
Над ней мы кладем фаил pkg_helloworld.xml - helloworld - это имя пакета, в котором и содержится вся информация по установке расширения.
<?xml version="1.0" encoding="UTF-8" ?>
<extension type="package" version="1.6">
<name>Hello World Package</name>
<author>Hello World Package Team</author>
<creationDate>May 2012</creationDate>
<packagename>helloworld</packagename>
<version>1.0.0</version>
<url>http://www.yoururl.com/</url>
<packager>Hello World Package Team</packager>
<packagerurl>http://www.yoururl.com/</packagerurl>
<description>Example package to combine multiple extensions</description>
<update>http://www.updateurl.com/update</update>
<files folder="packages">
<file type="component" id="helloworld" >com_helloworld.zip</file>
<file type="module" id="helloworld" client="site">mod_helloworld.zip</file>
<file type="library" id="helloworld">lib_helloworld.zip</file>
<file type="plugin" id="helloworld" group="system">plg_sys_helloworld.zip</file>
<file type="template" id="helloworld" client="site">tpl_helloworld.zip</file>
</files>
</extension>
Вот так выглядит фаил pkg_helloworld.xml
Что в этом файле важно?
<extension type="package" version="1.6"> - это тип расширения пакет.
<packagename>helloworld</packagename> - собственно само название пакета оно должно совпадать с названием файла pkg_helloworld.xml, то есть правильное название helloworld.
Теперь перейдем к самому телу пакета установки:
<files folder="packages">
<file type="component" id="helloworld" >com_helloworld.zip</file>
<file type="module" id="helloworld" client="site">mod_helloworld.zip</file>
<file type="library" id="helloworld">lib_helloworld.zip</file>
<file type="plugin" id="helloworld" group="system">plg_sys_helloworld.zip</file>
<file type="template" id="helloworld" client="site">tpl_helloworld.zip</file>
</files>
На что тут стоит обратить внимание:
<files folder="packages"> - если папка с расширениями называется "packages", если она называется по другом, то следовательно название надо изменить, если же ее нет, xml установки лежит в одном уровне с расширениями для установке то вся конструкция будет выглядеть вот так:
<files>
<file type="component" id="helloworld" >com_helloworld.zip</file>
<file type="module" id="helloworld" client="site">mod_helloworld.zip</file>
<file type="library" id="helloworld">lib_helloworld.zip</file>
<file type="plugin" id="helloworld" group="system">plg_sys_helloworld.zip</file>
<file type="template" id="helloworld" client="site">tpl_helloworld.zip</file>
</files>
Теперь об самих расширениях:
<file type="component" id="helloworld" >com_helloworld.zip</file>
Обязательно надо указать тип расширения "type" - в данном примере этот тип это "component".
Так же следует указать id расширения, его вы можете найти в xml самого расширения, которое устанавливаете.
Специфические параметры для плагинов:
Для плагинов требуется указать группу расширения group="system".
После того как вы все сделали правильно, вы можете как установить все расширения одной операцией, так и удалить все установленные расширения, удалив просто пакет установки расширения.