Обновление кастомизатора в 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. В любой момент можно воспользоваться этой папкой для перехода на новую версию кастомизатора.
Изменения в новом кастомизаторе
В новом кастомизаторе все файлы хранятся в одной папке
/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.
Last updated
Was this helpful?