Корзина 0 позиций
на сумму 0 ₽
+7 991 416 82 91
Время работы:
Пн-Вс 10-19

Конструктор модулей для сайтов на битрикс

Модуль "Конструктор модулей для сайтов на битрикс" предназначен для программистов, разработчиков в среде 1С-Битрикс Управление сайтом.
Цель данного решения: минимизировать операции по соблюдению правил и схем при создании собственных модулей и сосредоточится непосредственно на разработке основных потребительских функций модуля.
Автоматизирует рутинные операции, особенно с языковыми файлами, на которые уходит зачастую больше времени, чем на основные функции.
Сильно актуально для мульти-язычных сайтов.

Задачи, которые решает модуль:
1. Автоматическое создание полной структуры файлов и папок модуля и компонента к нему (Битрикс Управление Сайтом).
2. Проверка, редактирование lang файлов.
3. Быстрая смена названия партнера и названия модуля.
4. Сборка полного архива или архива обновлений для МаркетПлейс Битрикс.

Порядок установки модуля штатный, по следующему сценарию:
1. Оформить заказ на этом сайте. Бесплатно. На почту придет ссылка на архив. Скачать и распаковать архив в папку /bitrix/modules/
2. Далее запустить в административной части  установку модуля.
3. По окончании работы мастера установки модуль появится в списке настроек и + несколько страниц для работы над проектами.

Модуль имеет:
а) Страницу настроек:


В меню Настройки продукта >> Настройки модулей>> Конструктор модулей для сайтов на Битрикс

На этой странице все настройки по умолчанию для создания модуля уже сделаны и позволят сразу изготовить модуль, который уже
можно установить штатным способом из раздела Marketplace>>Установленные решения.

б) Рабочая страница модуля, в которой производятся все действия по изготовлению нового (своего) модуля.
Страница находится в меню: Настройки>>Модули. Изготовление



После установки, модуль сразу работоспособен и можно сгенерировать собственный модуль за 3 минуты, который будет иметь нужную структуру и способность инсталлироваться и деинсталлироваться штатными средствами Битрикс Управление Сайтом (в дальнейшем БУС).
При этом, конечно, никаких полезных функций он пока не будет выполнять. Это нужно будет сделать самостоятельно- насытить полезным кодом сгенерированные заготовки.

Полезной особенностью модуля является наличие подсказок по языковым (lang) файлам, где и каком месте интерфейса видно какое-нибудь конкретное сообщение. Эти подсказки есть как на странице настроек модуля, так и на странице изготовления своего(нового, разрабатываемого) модуля.


Порядок работы с модулем.
1. На рабочей странице модуля Настройки>>Модули. Изготовление создать новый проект.

2. Заполнить все необходимы поля, руководствуюсь подсказками на первой вкладке "Основные параметры".

3. Сохранить проект. При сохранении проекта генерация нового модуля не происходит. Только сохраняются исходные данные для генерации. Количество проектов не ограничено.

4. На второй вкладке "Изготовление модуля" нажать кнопку "Создать структуру папок модуля". Внимание!!! Если модуль с таким же названием в латинице и с таким же название партнёра в латинице уже существует, то он будет перезаписан. Соответствующая подсказка на этой вкладке есть. После отработки Вы увидите список сгенерированных папок и файлов. Их так же можно посмотреть в файловом менеджере на Вашем хостинге.

5. Следующий шаг - это Ваша самостоятельная работа по наполнению файлов, заготовок классов, функций кодом, который будет выполнять полезные функции в соответствии с задачами Вашего модуля и компонента. Наличие или отсутствие компонента, определяется в настройках на первой вкладке. Модуль может сгенерировать только один компонент. Сейчас пока так.
Рекомендации:
- в языковых (lang) сообщениях код сообщения должен начинаться с названия модуля в латинице в верхнем регистре.
Примерно так - GetMessage("MY_MODUL_.....").
Это не обязательно. Но. Облегчит заполнение и редактирование языковых файлов в дальнейшем. Я сделал такой подход -в коде при реализации полезных функций, заполняется конструкция GetMessage("MY_MODUL_....."), сам файл в папке /lang/ можно не заполнять и вообще не искать по папкам где он должен лежать, а заполнить его на  3-й вкладке "Действия с готовым модулем". Да, подход не идеальный, но я отказался от способа искать в коде русские фразы и заменять их на вызовы GetMessage в пользу большей предсказуемости и стабильности результата.
- При написании кода в именах переменных не использовать название партнера и модуля даже в подстроке(латиница, конечно). В названиях классов обязательно должна быть подстрока с названием либо модуля, либо партнёра, либо и то и другое(латиница). Такое правило обеспечит возможность автоматической замены партнера или(и) модуля, в том случае, если при разработке заранее не известны эти параметры или если вдруг по какой то организационной причине нужно быстро внести новые названия на стадии, когда модуль и компонент уже полностью готовы и нет желания "перелопачивать" все файлы, а потом вылавливать ошибки.
Алгоритм здесь простой -  во всех файла заменяются все вхождения названий модуля и партнера на новые(латиница). Можно это правило и не соблюдать, но тогда придется отказаться от такой возможности быстрой смены названий.

6. После того, как модуль готов, можно переходить к 3-й вкладке "Действия с готовым модулем".
Там всё интуитивно понятно. Формируются архивы для отправки в marketplace

Дополнительно.
В модуле есть 6 событий
1. До начала архивирования сборки обновления
OnBeforeUpdateArchivCreate

Входные переменные <путь к папке с файлами, подготовленными для архивации в /bitrix/tmp/код партнёра.код модуля/>,  <номер версии>, <полный массив настроек со страницы проекта>

2. После архивирования сборки обновления
OnAfterUpdateArchivCreate

Входные переменные <путь к папке с файлами, подготовленными для архивации в /bitrix/tmp/код партнёра.код модуля/>,  <номер версии>, <полный массив настроек со страницы проекта>

3. До начала архивирования полной версии
OnBeforeFullArchivCreate
Входные переменные <путь к папке с файлами, подготовленными для архивации в /bitrix/tmp/код партнёра.код модуля/>,  <полный массив настроек со страницы проекта>

4. После архивирования полной версии
OnAfterFullArchivCreate
Входные переменные <путь к папке с файлами, подготовленными для архивации в /bitrix/tmp/код партнёра.код модуля/>,  <полный массив настроек со страницы проекта>

5. Полный архив. До начала подготовки списка файлов для архивации. То есть в папке /bitrix/tmp/код партнёра.код модуля/ еще ничего нет, либо находится предыдущий архив.
OnBeforeFullListCreate
Входные переменные <полный массив настроек со страницы проекта>

5. Архив обновления, то есть файлов, в которых произошли изменения. До начала подготовки списка файлов для архивации. То есть в папке /bitrix/tmp/код партнёра.код модуля/ еще ничего нет, либо находится предыдущий архив.
OnBeforeUpdateListCreate
Входные переменные <полный массив настроек со страницы проекта>


Пример кода для init.php
<?
AddEventHandler("directoriya.modulcreator", "OnBeforeUpdateArchivCreate", "updateDO");
AddEventHandler("directoriya.modulcreator", "OnAfterUpdateArchivCreate", "updatePosle");

AddEventHandler("directoriya.modulcreator", "OnBeforeFullArchivCreate", "fullDO");
AddEventHandler("directoriya.modulcreator", "OnAfterFullArchivCreate", "fullPosle");

AddEventHandler("directoriya.modulcreator", "OnBeforeUpdateListCreate", "updateListDO");
AddEventHandler("directoriya.modulcreator", "OnBeforeFullListCreate", "fullListDO");

function updateDO($f,$v) {
    file_put_contents($_SERVER['DOCUMENT_ROOT']."/11.txt", "updateDO ".$v.": ".print_r($f , true)."\r\n", FILE_APPEND);
}
function updatePosle($f,$v) {
    file_put_contents($_SERVER['DOCUMENT_ROOT']."/11.txt", "updatePosle ".$v.": ".print_r($f , true)."\r\n", FILE_APPEND);
}
function fullDO($f) {
    file_put_contents($_SERVER['DOCUMENT_ROOT']."/11.txt", "fullDO ".print_r($f , true)."\r\n", FILE_APPEND);
}
function fullPosle($f) {
    file_put_contents($_SERVER['DOCUMENT_ROOT']."/11.txt", "fullPosle ".print_r($f , true)."\r\n", FILE_APPEND);
}
function updateListDO($output_ms) {
  //что то делать
}
function fullListDO($output_ms) {
   //что то делать
}

?>

Краткий видео-обзор модуля "Конструктор Модулей".





Конструктор модулей для сайтов на битрикс

Войти Регистрация
Корзина 0 позиций
на сумму 0 ₽