The Joomla! Community Magazine™

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

Written by | Monday, 01 October 2012 00:00 | Published in 2012 October
Со времени Joomla! 2.5, система уведомлений об обновлениях теперь может использоваться не только Joomla, но и сторонними расширениями. В данной статье мы увидим, как использовать систему уведомлений об обновлениях Joomla для всех расширений, кроме шаблонов.

Когда вы зайдете в администраторскую часть вашего сайта, вы увидите две иконки - для Joomla! и расширений, которые проинформируют вас о текущем статусе.

Для простоты будем считать, что мы работаем над системным плагином. Чтобы использовать систему уведомлений об обновлениях, мы должны работать на трех фронтах:

  • Манифест расширения (нужно добавить теги)
  • Манифест обновления (нужно создать новый)
  • Номера версий

Манифест расширения

В манифесте расширения мы должны будем вставить тег updateservers:

<updateservers> 
<server
type="extension"
priority="1"
name="System - Detector">
http://alikonweb.it/update/plg_system_detector_update.xml
</server>
</updateservers>

Как вы можете видеть, определение тега updateservers очень простое - он состоит из одного или более тегов server. Если мы проанализируем содержимое тега server, он состоит из следующих атрибутов: type, name и priority. Возможные значения для атрибута type являются collection или extension. Как вы уже заметили, "collection" используется для Joomla, поэтому, для нас мы будем использовать "extension". Атрибут name должен иметь то же самое значение, которое было в теге name в файле манифеста расширения. Тег server определяет URL манифеста обновления, то есть, места, где можно найти информацию об обновлении: версию, дату, и т.д. для вашего расширения.

Для более детальной информации прочитайте официальную документацию: файл манифеста расширения (на английском).

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

<updates>
<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>

Внутри тегов updates и update вы можете увидеть структуру, похожую на теги манифеста расширения. Теги name, element и folder должны быть идентичны. Важным тегом является downloadURL, который определяет, где искать пакет для обновления расширения.

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

Метод, используемый Joomla для номеров версий - это "Стандартные PHP строки с номерами версий", как в текущей версии Joomla!, major.minor.release 2.5.6. Поэтому наши расширения должны использовать такой же метод. В вышеприведенном примере я использовал значение 1.0.0 для тега version.

Может быть вы заметили, что в примере манифеста обновления два тега update. Первый определяет версию 1.0.0, второй - версию 1.0.1, так что для каждой новой версии нашего расширения мы будем добавлять новый тег update к файлу манифеста обновления.

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

После установки нового расширения для "обновления в один клик", допустим версия была 1.0.0. Теперь мы включили систему уведомления об обновлениях Joomla! для работы и с обновлениями нашего расширения.

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

Когда вы зайдете как администратор, вы увидите красное число на иконке (число 5 в правом верхнем углу), которое показывает число расширений, для которых найдены обновления. Кликните на нем, и вы перейдете в меню Менеджера Расширений. Проверьте расширения, нажмите на update, и все готово.

Для более детальной информации по данной теме обратитесь к официально документации (на английском):

Оригинальная статья, автор Nicola Calgano

Read 3480 times
Tagged under Russian

Language Switcher

Current Articles

Recommend us on Google+