Обновление кастомизатора в Itgrix_bx-3.4.0 и Itgrix_amo-2.6.0
В версии Itgrix_bx (Битрикс24) 3.4.0 и Itgrix_amo (amoCRM) 2.6.0 кастомизатор существенно переработан. В результате старый код пользовательских кастомизаций может быть частично несовместим с новым кастомизатором. В данной статье описана корректная миграция пользовательских кастомизаций.
При обновлении с версии Itgrix_bx 3.3.5 на 3.4.0 и с Itgrix_amo 2.5.3 на 2.6.0 через скрипт update.sh
в папке модуля обновление кастомизатора не происходит. Поле customizer.program_path
в конфиг-файле также остаётся нетронутым.
Таким образом, старый кастомизатор и пользовательские кастомизации продолжат свою работу в новых версиях.
При обновлении новый кастомизатор появится в виде папки /opt/itgrix_bx/customizer.dist/
и/opt/itgrix_amo/customizer.dist
. В любой момент можно воспользоваться этой папкой для перехода на новую версию кастомизатора.
Изменения в новом кастомизаторе
Рассмотрим изменения для Itgrix_bx. Для Itgrix_amo всё то же самое, только пути будут содержать itgrix_amo
вместо itgrix_bx
.
В новом кастомизаторе все файлы хранятся в одной папке
/opt/itgrix_bx/customizer/
.Исполняемый файл (который прописан в конфиг-файле
/etc/itgrix_bx/config.json
в полеcustomizer.program_path
) теперь имеет путь/opt/itgrix_bx/customizer/customize.php
.Пользовательские кастомизации теперь располагаются в папке
/opt/itgrix_bx/customizer/actions/
.Добавился новый файл
/opt/itgrix_bx/customizer/Settings.php
, в котором прописаны пути к конфиг-файлу и логу модуля.В файле
/opt/itgrix_bx/customizer/README
подробно описаны функции, доступные в пользовательских кастомизациях.
Изменения в API кастомизатора рассмотрим далее.
Переход на новый кастомизатор
Прежде всего стоит сделать резервную копию старых пользовательских кастомизаций (/opt/itgrix_bx/custom/
) и кастомизатора (/opt/itgrix_bx/customizer.php
).
Скопировать папку
/opt/itgrix_bx/customizer.dist/
в/opt/itgrix_bx/customizer/
.Убедиться, что в
/opt/itgrix_bx/customizer/Settings.php
прописаны нужные конфиг и лог.Поменять в конфиг-файле
/etc/itgrix_bx/config.json
путь к исполняемому файлу кастомизатора в полеcustomizer.program_path
, - теперь это/opt/itgrix_bx/customizer/customize.php
.Скопировать код пользовательских кастомизаций из
/opt/itgrix_bx/custom/
в новые файлы кастомизаций в/opt/itgrix_bx/customizer/actions/
. За исключением кастомизации process_record_file_path.php, - в ней существенно доработанная кастомизация по умолчанию (конвертация записей разговоров в mp3). Рекомендуем использовать и настроить новый код вместо старого.Проверить код на наличие старых функций и заменить их на новые функции (см. далее).
Изменение API кастомизатора
Код кастомизатора был полностью переписан, и все старые функции стали недоступны:
message()
getConfig()
myQuery()
getDB()
Вместо них теперь нужно использовать функции соответственно:
$this->logDebug()
(илиlogInfo
,logWarn
,logError
в зависимости от желаемого уровня логирования). Данная функция в отличие от message() принимает только один аргумент - строку с сообщением. Если нужно вывести в лог несколько разнотипных значений, нужно сначала сделать из них одно строковое значение.Utils::getConfig()
- использование аналогичное старому, плюс возможность обработать ошибку.Utils::mysqlClcQuery()
- использование аналогичное старому, плюс возможность обработать ошибку.Utils::mysqliQuery()
- теперь запрос через php-mysqli аналогичен по использованию запросу через MySQL Command-Line Client (функцияUtils::mysqlClcQuery()
, бывшаяmyQuery()
). Не нужно использоватьgetDB()
с последующим вызовомmysqli_query()
. Всё это реализовано внутриUtils::mysqliQuery()
с обработкой результата или возможных ошибок. В случае если по каким-то причинам невозможно использовать запрос через php-mysqli, можно просто поменять в пользовательском коде название функцииmysqliQuery
наmysqlClcQuery
, их использование абсолютно одинаковое.
Более подробное описание функций в /opt/itgrix_bx/customizer/README
.
Новые функции кастомизатора
Одно из главных нововведений - поддержка запросов в CRM из пользовательских кастомизаций.
В кастомизаторе Itgrix_bx:
Bitrix::createTask()
- для создания задачи в Битрикс24.Bitrix::createLead()
- для создания лида в Битрикс24 (доступна с версии 3.4.2).
В кастомизаторе Itgrix_amo:
Amo::createTask()
- для создания задачи в amoCRM.Amo::createLead()
- для создания сделки в amoCRM.
Подробное описание функций в /opt/itgrix_bx/customizer/README
.
В дальнейшем будут добавляться новые запросы в CRM по мере необходимости.
Last updated