Comment on page
Обновление кастомизатора в 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
).- 1.Скопировать папку
/opt/itgrix_bx/customizer.dist/
в/opt/itgrix_bx/customizer/
. - 2.Убедиться, что в
/opt/itgrix_bx/customizer/Settings.php
прописаны нужные конфиг и лог. - 3.Поменять в конфиг-файле
/etc/itgrix_bx/config.json
путь к исполняемому файлу кастомизатора в полеcustomizer.program_path
, - теперь это/opt/itgrix_bx/customizer/customize.php
. - 4.Скопировать код пользовательских кастомизаций из
/opt/itgrix_bx/custom/
в новые файлы кастомизаций в/opt/itgrix_bx/customizer/actions/
. За исключением кастомизации process_record_file_path.php, - в ней существенно доработанная кастомизация по умолчанию (конвертация записей разговоров в mp3). Рекомендуем использовать и настроить новый код вместо старого. - 5.Проверить код на наличие старых функций и заменить их на новые функции (см. далее).
Код кастомизатора был полностью переписан, и все старые функции стали недоступны:
- 1.
message()
- 2.
getConfig()
- 3.
myQuery()
- 4.
getDB()
Вместо них теперь нужно использовать функции соответственно:
- 1.
$this->logDebug()
(илиlogInfo
,logWarn
,logError
в зависимости от желаемого уровня логирования). Данная функция в отличие от message() принимает только один аргумент - строку с сообщением. Если нужно вывести в лог несколько разнотипных значений, нужно сначала сделать из них одно строковое значение. - 2.
Utils::getConfig()
- использование аналогичное старому, плюс возможность обработать ошибку. - 3.
Utils::mysqlClcQuery()
- использование аналогичное старому, плюс возможность обработать ошибку. - 4.
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:
В кастомизаторе Itgrix_amo:
Подробное описание функций в
/opt/itgrix_bx/customizer/README
.В дальнейшем будут добавляться новые запросы в CRM по мере необходимости.