Новое требование к листингу: все расширения, загруженные в JED после 10 января 2017 года, должны использовать систему обновлений Joomla. Это поможет гарантировать, что владельцы сайтов всегда будут уведомлены о появлении новой версии любых установленных ими расширений. Поддержание обновлений в актуальном состоянии имеет решающее значение для безопасности веб-сайта.
В это руководство мы включаем краткую информацию о том, как внедрить систему обновлений Joomla для бесплатных и платных расширений. Всем разработчикам рекомендуется посетить документацию Joomla для получения дополнительной информации или проверить, как другие расширения уже внедрили систему обновлений.
Не забудьте проверить, используют ли ваши расширения Joomla! Update System.
Одна из самых мощных функций Joomla! есть возможность расширить его с помощью сторонних расширений. Чтобы поддерживать эти расширения в актуальном состоянии, система обновлений Joomla позволяет быстро автоматизировать процесс проверки всех установленных расширений и их обновления из диспетчера расширений.
С точки зрения разработчика, расширения через манифест расширения связаны с источником и каналом доступных обновлений.
Для доставки обновлений существует два основных варианта использования: бесплатное расширение или платное расширение. Первый случай прост: обновления могут распространяться напрямую через тот же поток загрузки, что и первоначальная загрузка. В случае платного расширения, поскольку обновления ограничиваются действительными подписками/членством, в процесс обновления должен быть интегрирован метод его проверки.
В следующих главах мы описываем наиболее распространенные методы распространения обновлений расширений.
<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>
<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 распространяется так же, как и стороннее расширение. Поскольку оно обновляется так же, как и стороннее расширение, оно является идеальным ориентиром для реализации системы обновлений: https://github.com/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">https://raw.githubusercontent.com/joomla-extensions/weblinks/master/manifest.xml</server> </updateservers> </extension>
Распространенная проблема, когда Joomla не обнаруживает новую версию в определении целевой платформы.
Пожалуйста, проверьте это:
https://raw.githubusercontent.com/joomla-extensions/weblinks/master/manifest.xml
Полезные ссылки:
Этот случай аналогичен бесплатному расширению. Однако требуется дополнительная проверка, чтобы проверить, имеет ли пользователь право на получение обновления. Эта проверка выполняется онлайн и должна поддерживаться системой разработчика расширений.
Чтобы идентифицировать пользователя, обновляющего свою систему, в Joomla есть дополнительный параметр extra_query
в таблице #__update_sites
. Этот параметр будет добавлен к объявленному URL-адресу загрузки, предоставляя возможность принять или отклонить загрузку.
Вы можете управлять параметром extra_query
в соответствии с вашими требованиями, и Joomla не накладывает никаких ограничений на информацию в поле. Он должен быть допустимым как параметр URL.
Akeeba Release System и Akeeba Subscriptions — это расширения, которые разработчик расширений Akeeba реализует для управления своими собственными расширениями. Это бесплатные альтернативы вашей собственной системе выпуска.
В этом контексте идентификатор загрузки (dlid) должен быть определен в расширении, которое будет обновляться, и храниться в поле extra_query. Например: dlid=1234567890123456789012.
Когда менеджер обновлений Joomla вызывает ваш сайт для загрузки обновления, он включает идентификатор загрузки. Akeeba ARS и Subs работают вместе, чтобы проверить членство и дать правильный ответ.