Система оповещений об обновлениях расширений

С момента выхода Joomla! 2.5, система оповещения об обновлениях доступна для расширений Joomla и для сторонних расширений. В этой статье мы рассмотрим, как использовать стандартную систему оповещения для всех расширений, но не для шаблонов.

Войдя на сайт в качестве администратора, можно увидеть две иконки Joomla! и расширений, которые показывают текущий статус.
Для того, чтобы лучше разобраться в примере, предположим, что мы работаем над системным плагином. Для использования системы оповещений, поработаем в трех направлениях:

  • Файл расширения манифест (добавление тегов);
  • Файл обновления манифеста (из наброска);
  • Номера версий
 <updateservers> 
<server
type="extension"
priority="1"
name="System - Detector">
http://alikonweb.it/update/plg_system_detector_update.xml</server>
</updateservers>

Описание тега updateserver очень простое, т.к. составлено из одного или более тегов server. Если проанализировать тег детально, можно увидеть, что он состоит из следующих атрибутов: тип, название и приоритет. Возможные значения для атрибута «тип»: (collection,extension). Как вы поняли, "collection" – это файл манифест. Тег server назначает URL для обновления файла манифест, т.е. ссылку, где хранится информация об обновлении: версия, дата и другие параметры расширения. Чтобы получить более подробную информацию, прочитайте официальную документацию.

Файл обновления манифеста

 <update>
<name>System - Detector</name>
<element>detector</element>
<client>0</client>
<type>plugin</type>
<folder>system</folder>
<version>1.0.0</version>
<downloads>
<downloadurl type="full" format="zip">
http://alikonweb.it/update/plg_system_detector0.zip
</downloadurl>
</downloads>
<targetplatform name="joomla" version="2.5"/>
</update>
<update>
<name>System - Detector</name>
<element>detector</element>
<client>0</client>
<type>plugin</type>
<folder>system</folder>
<version>1.0.1</version>
<downloads>
<downloadurl type="full" format="zip">
http://alikonweb.it/update/plg_system_detector1.zip
</downloadurl>
</downloads>
<targetplatform name="joomla" version="2.5"/>
</update>
</updates>

По причине того, что он находится в обновлениях и тэгах обновления, можно увидеть тесную связь с тегом манифеста расширения. Название тега, элемента и папки должны совпадать. Важный тег – downloadURL определяет местонахождение пакета с обновлением для расширения.

Номера версий

Метод, который используется для задания номеров версий в Joomla - "PHP-standardized version number strings", такой же, как и в текущей версии Joomla! 2.5.6. Для задания номеров расширений нужно использовать этот же метод. В примере, приведенном выше, я использовал значение 1.0.0 для тэга версий. В примере с обновлением манифеста есть два тэга обновления. Первый относится к версии 1.0.0, а второй – к версии 1.0.1. Таким образом, каждая новая версия расширения получит новый тег обновления для файла обновления манивеста.

Как это работает

Предположим, что после установки нового расширения, его версия выглядит, как 1.0.0. Мы включили систему оповещения об обновлениях в Joomla!, которая будет работать с обновлениями наших расширений тоже. Если у нашего расширения появилось обновление, например, 1.0.1. Для работы оповещения нужно добавить тег в файл обновления манифеста.

При входе на сайт в качестве администратора, на иконке красным цветом будет отображен номер версии (5 вверху справа), который оповещает о номере расширения, для которого доступно обновление. При нажатии на иконку, вы попадете в меню менеджера расширений. Поставьте галочку перед расширением и нажмите на кнопку «обновить». Вот и все.

Более подробная информация в официальном руководстве:

Оригинал статьи

 

Как организовать праздник для будущей мамы