Используйте программу обновления Joomlaː Добавление автоматического обновления - Часть 5

  1. Требования к разработке модуля Joomla
  2. Средство обновления Joomla
  3. Структура файлов модуля Joomla
  4. Редактирование файла mod_foo.xml
    1. Итоговый файл mod_foo.xml
  5. Создание файла foo_update.xml
    1. Итоговый файл foo_update.xml
  6. Протестируйте обновление вашего модуля Joomla 4
  7. Коммерческие Модули для Joomla 4
  8. Заключение

Старт! Честный VDS/VPS, на котором «Лунная База» живет уже 20+ лет

Задумываетесь о том, чтобы поднять свой pet-проект, сайт клиента или настроить окружение для разработки? Уже пора подумать, где арендовать железо.

Лунная База хостится на FirstVDS более 20 лет. Мыслей о том, чтобы перебраться на другой хостинг, не было ни разу (хотя опыт работы с другими вариантами, конечно, есть).

Бывали разные ситуации, но они бывают на любом железе. Главное, что нужно понять: здесь нет маркетинговой шелухи и сказок про «мы всё сделаем за вас». Если вы берете VDS — вам дают полный root, возможность накатить любую ОС и не лезут в ваши конфиги.

Если в саппорт написать с вопросом по вашему коду и получить ответ: «Читайте документацию и разбирайтесь сами» или «Обратитесь к профильному специалисту» — это не повод обижаться. Это повод углубить свои знания в DevOps и сайтостроении! Бегите от тех, кто пообещает: «Мы всё чиним и настраиваем абсолютно бесплатно!». Никто никогда не работает «по доброте душевной» в ущерб себе, а бесплатный сыр в администрировании обычно заканчивается сломанной базой данных.

Что по факту: Гибкое масштабирование ядер и RAM, экономия по сравнению с физическими серверами и адекватная панель ispmanager, если она вам нужна.



Требования к разработке модуля Joomla.

Вам нужна Joomla! 4.x для этого урока (на момент написания этой статьи в настоящее время версия Joomla! 4.0.0-alpha6-dev)

Средство обновления Joomla.

Первое, что нужно сделать, это прочитать Руководство по управлению обновлениями компонентов с помощью Joomla 2.5 - Часть 1, чтобы получить представление о том, как работает процесс обновления в Joomla. Несмотря на то, что он написан для Joomla 2.5, процесс не изменился. Также прочитайте о Развертывании сервера обновлений - это то, что мы будем реализовывать в этом руководстве.

Структура файлов модуля Joomla.

Мы создадим/изменим следующие файлы:

  • mod_foo.xml
    • Единственный способ обновить существующий модуль - это добавить сервер обновлений, например http://www.example.com/foo_update.xml - в XML-файл.
  • foo_update.xml
    • Когда нам нужно создать XML-файл для сервера обновлений, например, http://www.example.com/foo_update.xml, чтобы сообщить Joomla о наличии обновления.

Редактирование файла mod_foo.xml.

Чтобы добавить наш сервер обновлений, нам нужно вставить следующие строки в ваш XML-файлː

<updateservers>
    <server type="extension" priority="1" name="[PROJECT_NAME]">https://www.example.com/mod_foo.xml</server>
</updateservers>

Итоговый файл mod_foo.xml.

Полный файл mod_foo.xml выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<extension type="module" version="4.0" client="site" method="upgrade">
    <name>MOD_FOO</name>
    <creationDate>[DATE]</creationDate>
    <author>[AUTHOR]</author>
    <authorEmail>[AUTHOR_EMAIL]</authorEmail>
    <authorUrl>[AUTHOR_URL]</authorUrl>
    <copyright>[COPYRIGHT]</copyright>
    <license>GNU General Public License version 2 or later; see LICENSE.txt</license>
    <version>1.0</version>
    <description>MOD_FOO_XML_DESCRIPTION</description>
    <namespace>Joomla\Module\Foo</namespace>
    <files>
        <filename module="mod_foo">mod_foo.php</filename>
        <folder>tmpl</folder>
        <folder>Helper</folder>
        <folder>language</folder>
        <filename>mod_foo.xml</filename>
    </files>
    <updateservers>
        <server type="extension" priority="1" name="[PROJECT_NAME]">https://www.example.com/mod_foo.xml</server>
    </updateservers>
    <config>
        <fields name="params">
            <fieldset name="basic">
                <field
                    name="domain"
                    type="url"
                    label="MOD_FOO_FIELD_URL_LABEL"
                    filter="url"
                />
            </fieldset>
            <fieldset name="advanced">
                <field
                    name="layout"
                    type="modulelayout"
                    label="JFIELD_ALT_LAYOUT_LABEL"
                    class="custom-select"
                />
                <field
                    name="moduleclass_sfx"
                    type="textarea"
                    label="COM_MODULES_FIELD_MODULECLASS_SFX_LABEL"
                    rows="3"
                />
                <field
                    name="cache"
                    type="list"
                    label="COM_MODULES_FIELD_CACHING_LABEL"
                    default="0"
                >
                    <option value="1">JGLOBAL_USE_GLOBAL</option>
                    <option value="0">COM_MODULES_FIELD_VALUE_NOCACHING</option>
                </field>
                <field
                    name="cache_time"
                    type="number"
                    label="COM_MODULES_FIELD_CACHE_TIME_LABEL"
                    default="0"
                />
                <field
                    name="cachemode"
                    type="hidden"
                    default="itemid"
                >
                    <option value="itemid"></option>
                </field>
            </fieldset>
        </fields>
    </config>
</extension>

Итак, теперь, когда Joomla знает, где искать обновления для нашего расширения, давайте создадим специальный файл, чтобы протестировать наш процесс. Но сначала нам нужно создать файл foo_update.xml. До сих пор мы описывали только сервер обновлений. Мы пока не знаем, есть ли обновление. В файле foo_update.xml мы указываем, когда будет опубликована новая версия и откуда ее можно загрузить.

Создание файла foo_update.xml.

Теперь нам нужно создать XML-файл по адресу http://www.example.com/foo_update.xml чтобы сообщить Joomla о наличии обновления.

Итоговый файл foo_update.xml.

Полный файл foo_update.xml выглядит следующим образом:

<?xml version="1.0" ?>
<updates>
    <update>
        <name>Foo</name>
        <description>This is mod_foo 1.0.1</description>
        <element>mod_foo</element>
        <type>module</type>
        <version>1.0.1</version>
        <downloads>
            <downloadurl type="full" format="zip">http://www.example.com/mod_foo_101.zip</downloadurl>
        </downloads>
        <maintainer>Joomla</maintainer>
        <maintainerurl>http://www.example.com</maintainerurl>
        <targetplatform name="joomla" version="4.0"/>
        <client>site</client>
    </update>
</updates>

После загрузки этого файла по адресу https://www.example.com/mod_foo.xml обновление будет отображаться в админке Joomla.

Протестируйте обновление вашего модуля Joomla 4.

Создайте копию модуля в том виде, в каком он есть сейчас. И давайте обновим номер версии до 1.0.1. Теперь вы можете заархивировать все файлы. После этого вы должны загрузить свой новый установочный пакет на URL-адрес http://www.example.com/mod_foo_101.zip . Теперь вы можете обновить свой модуль с помощью стандартного функционала обновления Joomla.

Коммерческие Модули для Joomla 4.

Обратите внимание, что в наших файлах мы ссылаемся на XML-файл обновлений расширений. И из этого xml-файла у нас есть место расположение для zip-файла модуля. Это означает, что если бы кто-то отследил это в обратном направлении, он мог бы найти физический источник zip-файла ваших модулей. Если вам это не нравится, вы можете найти решение по этой ссылкеː  https://github.com/joomla/joomla-cms/pull/15185 .

Заключение.

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

Каждое расширение должно использовать сервер обновлений. Особенно по соображениям безопасности.

Вы можете найти шаблоны здесьː

Примеры файлов для этого руководства можно найти здесьː


Вы читаете статью из небольшого цикла:
«Создание простого модуля для Joomla 4.x»

  1. «Вступление»
  2. «Разработка базового модуля для CMS Joomla 4 - Часть 1»
    1. «Тестирование и Отладка первой части написанного модуля для Joomla 4»
  3. «Разработка базового модуля для CMS Joomla 4 - Часть 2. Добавление вспомогательного класса, использование пространства имён.»
    1. «Тестирование и Отладка второй части написанного модуля для Joomla 4»
  4. «Разработка базового модуля для CMS Joomla 4 - Часть 3. Настройкаː Добавление параметров с помощью полей формы»
    1. «Тестирование и Отладка третьей части написанного модуля для Joomla 4»
  5. «Разработка базового модуля для CMS Joomla 4 - Часть 4. Использование сценария установки, обновления и удаления.»
  6. «Разработка базового модуля для CMS Joomla 4 - Часть 5. Добавление автоматического обновления расширения Joomla.»

Перевод с английского официальной документации Joomla 4:
https://docs.joomla.org/J4.x:Creating_a_Simple_Module

Самый честный хостинг за 20+ лет существования Лунной Базы

Задумываешься о том, чтобы поднять свой сайт в Интернете? Уже пора подумать о том, какой хостинг выбрать?

Лунная База хостится 20+ лет на firstDVS. При этом, мыслей о том, чтобы перебраться на другой хостинг не было. (Но, при этом есть опыт работы с другими вариантами.)

Бывали с firstDVS разные ситуации, но, они бывают на всех хостингах. Единственное, что тут важно понять, - это то, что никто ничего тебе не будет впаривать... Но, и работать за тебя тоже никто не станет. Если в саппорт ответили: «Читайте по ссылке и разбирайтесь сами...» или вообще «Обратитесь за помощью к специалисту», - это повод углубить свои знания в области сайтостроения, а не бежать к тем, что пообещают: «Мы всё чиним и всё делаем за своих клиентов абсолютно бесплатно!» Никто никогда ничего ни за кого "по доброте душевной" не делал, не делает и не будет делать!

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню