Новости и анонсы

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

Joomla

Новвовведение: начиная с 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

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

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

Уведомление о доступных обновлениях - Система Обновлений Joomla
Уведомление о доступных обновлениях
Сообщение об успешной установке обновления - Joomla Update System
Сообщение об успешной установке обновления

Новое требование 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: согласие с политикой Системы Обновлений Joomla!
Страница расширения на JED: согласие с политикой Системы Обновлений Joomla!
Форма редактирования расширения на JED: требование Системы Обновлений Joomla
Форма редактирования расширения на JED: требование Системы Обновлений Joomla
Форма с предупреждением о том, что расширении не используется Система Обновлений Joomla<
Форма с предупреждением о том, что расширении не используется Система Обновлений Joomla

Как лучше всего выполнять требования по добавлению НДС в случае продажи электронных товаров и услуг?

В некоторых случаях необходимо добавлять НДС при продаже цифрового товара или услуги, однако подобные аспекты лежат за пределами полномочий JED. Этот вопрос лежит целиком на плечах разработчика.

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

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

Полезные ссылки по теме:

В статье использовано изображение с сайта Freepik

Оригинальная статья:
Eugene Sivokon
Предприниматель, менеджер проектов, Joomla-энтузиаст. Занимаюсь созданием сайтов с 2002 года. Координатор нескольких Joomla проектов. Обожаю путешествовать, интересуюсь историей и изучаю иностранные языки.

Заработок в сети

  • Sape - биржа ссылок