4213 Андрей Барткевич 6 Февраля 2017



Joomla Update System новые требования

Новвовведение: начиная с 10 января 2017 года все расширения, публикуемые на JED, должны использовать Систему Обновлений Joomla (Joomla Update System). Это поможет владельцам сайтов получать оповещения о выходе новых версий расширений, используемых на сайте. Наличие свежих версий расширений поможет улучшить безопасность вашего сайта.

Из соображений тактичности, расширения, уже размещённые в JED и не соответствующие новым требованиям, не будут сняты с публикации. Вместо при клике в кнопку Download, появится pop up окошко с предупреждением о том, что данное расширение не поддерживает систему обновлений и должно обновляться в ручном режиме.

Ниже мы расскажем, как внедрить Систему Обновлений Joomla (Joomla Update System) в ваше расширение.

Что такое Система Обновлений Joomla? (Joomla Update System)

 Начиная с версии 1.6, в Joomla была внедрена система обновлений для актуализации расширений. Пользователи могут видеть оповещения о новых версиях расширений и обновлять их прямо из панели администрирования. Joomla Update System управляется Менеджером Расширений. Подробнее об этом можно прочитать здесь.

joomla-update-system1.png


Уведомления об обновлениях

Система Обновлений Joomla предоставляет удобный способ для обновления установленных расширений, кроме того, она внедряет систему оповещений от разработчика расширения, информирующий пользователя о доступности новых версий. Таким образом, администраторы будут оповещены и смогут обновить расширение из админки несколькими кликами.
joomla-update-system2.png

joomla-update-system3.png

Новое требование JED

 После 10 января 2017 года все расширения, загружаемые в JED, должны использовать Систему Обновлений Joomla. Это поможет владельцам сайтов получать оповещения о доступности обновлений установленных расширений. Это поможет использовать на сайте актуальные версии расширений и, тем самым, улучшить безопасность сайта.

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

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

Интеграция Системы Обновлений Joomla в бесплатные расширения

Для обеспечения подобной интеграции Системе Обновлений Joomla потребуется специальный тег в манифесте расширения, который устанавливает URI для публикации доступных обновлений:

Определение сервера обновлений

Для использования данного функционала сервер обновлений должен быть установлен в манифесте расширения.

<extension>
<...>
 <updateservers>
     <server type="collection">http://example.com/list.xml</server>
     <server type="extension" priority="2" name="My Extension's Updates">http://example.com/extension.xml</server>
 </updateservers>
 </extension>

Обновления XML файла

Тип сервера расширений даёт разработчикам возможность объявлять манифест расширения для получения обновлений из манифеста одиночного расширения.
<update>
     <name>Joomla! 1.7</name>
     <description>Joomla! 1.7 CMS</description>
     <element>joomla</element>
     <type>file</type>
     <version>1.7.0</version>
     <infourl title="Joomla!">http://www.joomla.org/</infourl>
     <downloads>
          <downloadurl type="full" format="zip">
http://joomlacode.org/gf/download/frsrelease/15279/66552/Joomla_1.6.5_to_1.7.0_Package.zip
</downloadurl>
     </downloads>
     <tags>
          <tag>stable</tag>
     </tags>
     <maintainer>Sam Moffatt</maintainer>
     <maintainerurl>http://sammoffatt.com.au</maintainerurl>
     <section>Testing</section>
     <targetplatform name="joomla" version="1.6"/>
 </update>  
 

Пример использования: компонент Joomla weblinks

Как известно, бывший ранее составной частью Joomla компонент ссылок (com_weblinks) на данный момент распространяется как стороннее расширение и обновляется по принципу стороннего расширения. Данный компонент - отличный пример внедрения системы обновлений: joomla-extensions/weblinks

weblinks/src/pkg_weblinks.xml

 <updateservers>
          <!-- Note: No spaces or linebreaks allowed between the server tags -->
          <server type="extension" name="Web Links Update Site"><a href="https://raw.githubusercontent.com/joomla-extensions/weblinks/master/manifest.xml</server>" rel="nofollow" target="_blank" >https://raw.githubusercontent.com/joomla-extensions/weblinks/master/manifest.xml</server></a>
      </updateservers>
</extension>

Как показано на примере манифеста выше, обновлеения расширения распространяются из XML файла, который настраивается вручную. Если вы планируете создать потоки с XML обновлениями из компонента-файлового репозитория, то ряд альтернативных решений можно найти на JED.

Ссылка:

Интеграция Системы Обновлений Joomla в коммерческие расширения

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

Для идентификации обновил ли пользователь свою систему, у Joomla есть дополнительный параметр extra_query в #__update_sites. Данный параметр должен быть добавлен в объявленном URL для скачивания, предоставляя пользователю возможность принять или отказаться от скачивания обновления.

Вы можете управлять extra_query в соответствии со своими требованиями и Joomla не накладывает никаких ограничений в области информации. Поле должно быть валидным как параметр URL.

Пример реализации: Akeeba Release System и Akeeba Subscriptions

Разработчик компонентов Akeeba Release System и Akeeba Subscriptions использует данные продукты для продажи своих расширений. Оба продукта являются бесплатными альтернативами для создания собственной системы релизов.

В данном контексте Download ID (dlid) должен быть определён в расширении, информация о котором обновляется и хранится в поле extra_query. Например: dlid=1234567890123456789012.

Когда Менеджер Обновлений Joomla обращается к вашему сайту с целью обновления, он включает в себя Download ID. Компоненты Akeeba Release System и Akeeba Subscriptions работают совместно и осуществляют проверку валидности подписки пользователя и возвращают правильный ответ.

Несколько слов относительно сторонних Систем Обновлений

Сторонние системы обновлений, созданные для обеспечения безопасного и удобного способа обновлений, схожи с Системой Обновлений Joomla и выполняют те же требования. Однако, поскольку нашей целью является централизация информации об обновлениях в расширениях, Область обновлений (Update area), а затем и сторонняя система обновлений должны предоставлять Менеджеру Обновлений Joomla инфорацию о доступности версии. Пользователям необязательно посещать сайт каждого расширения для того, чтобы проверить статус расширения.

Примеры скриншотов:

jed-download-req-2017.png

Страница расширения на JED: согласие с политикой Системы Обновлений Joomla!



Рейтинг:

Поделится с друзьями:

Вы можете оставить свой комментарий:


98

материалов о web-разработке

1345

читателей нашего блога

15

городов и стран

96

разработанных проектов