Просмотров: 27769
Дата последнего изменения: 23.10.2023
Сложность урока:
3 уровень - средняя сложность. Необходимо внимание и немного подумать.
4
5
Модуль Mpbuilder позволяет начинать разработку модуля как «с нуля», так и выпускать обновление уже готового модуля для Marketplace.
Шаг 1. Создание модуля из скрипта
На первом шаге заполняются необходимые информация:
- Заполняются группы полей данные о разработчике и данные о новом модуле;
Внимание! Код партнера должен строго соответствовать тому, что выводится в карточке партнера. Код модуля заполняется латиницей. Название и описание будут выводиться в списке модулей. Все это подробно описано в
документации для разработчиков.
- Опция Переписать существующие файлы означает, что необходимо перезаписать информацию, если такой модуль уже установлен в системе;
- При необходимости в группе настроек Компоненты модуля выбираются компоненты для включения в дистрибутив создаваемого модуля, т.е они должны быть установлены на текущей установке в папке
/bitrix/components/
. Эти компоненты будут скопированы в папку /install/
нового модуля. При установке автоматически скопируются из этой папки в /bitrix/components/
, и соответственно удалятся при деинсталляции.
Внимание! Все пользовательские компоненты должны находиться в папке
/bitrix/components/
. Системные компоненты находятся в папке
/bitrix/components/bitrix/
, содержимое которой обновляется системой обновлений и не должно изменяться пользователями. Об это подробно описано в
документации по созданию компонентов 2.0.
- Если у модуля имеются административные страницы, то с помощью кнопки Обзор... можно их включить в дистрибутив, они попадут в папку
/admin/
нового модуля. При установке будут созданы ссылки на эти страницы в папке /bitrix/admin/
. Кроме того, они появятся в основном административном меню.
- Для перехода к следующему шагу служит кнопка Продолжить, после нажатия которой модуль появится в списке решений, и можно продолжать его разработку уже в ядре:
![](/images/dev_full/moduls/mpbuilder/mpbuilder_step01_list.png)
Шаг 2. Выделение языковых фраз
На данном шаге происходит:
- Сканирование всех php-файлов модуля, если в коде нового модуля имеются кириллические символы, то выводится список этих страниц.
Система автоматически определяет кодировку utf8 или cp1251. В дальнейшем скрипты будут автоматически перекодированы в кодировку сайта (а перед архивацией - в cp1251, как требует документация).
- Языковые фразы сохраняются в соответствующий lang-файл, а вместо фраз в код страниц модуля вставляется вызов GetMessage. В качестве ключа используется транслитерация исходной фразы - это позволяет в автоматическом режиме создавать понятные ключи:
![](/images/dev_full/moduls/mpbuilder/mpbuilder_step02_1.png)
Будьте осторожны! В процессе такой работы исходный файл переписывается. При разборе учитывается html, php, js, css, \.
- Языковой файл создается автоматически:
![](/images/dev_full/moduls/mpbuilder/mpbuilder_step02_2.png)
- Если файл был редактирован, то новые фразы дописываются в конец.
- Если фразы были в исходном файле (или ранее по коду), то они используются повторно.
- Если ключи совпадают, в конце дописывается цифра.
- Для скриптов папки
/admin/
в самое начало скрипта дописывается код подключения ядра, если не был найден. Это необходимо для работы языковых функций.
Таким образом, скрипт можно постоянно дорабатывать и применять выделение фраз повторно.
Примечание: Шаги 2-4 можно повторять сколько угодно раз в процессе разработки и обновления модулей.
Шаг 3. Создание архива
На данном шаге:
Примечание: Шаги 2-4 можно повторять сколько угодно раз в процессе разработки и обновления модулей.
Шаг 4. Сборка обновления
Данный шаг автоматизирует сборку обновлений любого модуля: все файлы модуля, измененные после даты, которая хранится в install/version.php
, попадают в архив обновления. Также сборка обновлений проверяет дату изменения файлов в установленных компонентах, копирует их в папку модуля, затем помещает в архив с обновлением. В обновлении лежит файл updater.php, который обновляет компоненты на сайтах клиентов. Перекодировка файлов из cp1251 в utf8 и обратно происходит автоматически.
![](/images/dev_full/moduls/mpbuilder/mpbuilder_step04.png)
- Если включить опцию Обновить дату и версию в ядре модуля, то исходный файл модуля будет переписан и следующие обновления будут собираться от текущей версии.
- В поле Описание обновления добавляется текстовая информация по изменениям в обновлении.
- В поле Скрипт обновления updater.php добавляется сам пользовательский скрипт обновления. По умолчанию в этом поле дан пример скрипта.
- После нажатия кнопки Продолжить будет создан архив с обновлением
/bitrix/tmp/<модуль>/<версия_модуля>.tar.gz
, который необходимо будет загрузить в карточке партнера Marketplace.
Примечание: Шаги 2-4 можно повторять сколько угодно раз в процессе разработки и обновления модулей.