Обновление кастомизатора в 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. Проверить код на наличие старых функций и заменить их на новые функции (см. далее).

Изменение API кастомизатора

Код кастомизатора был полностью переписан, и все старые функции стали недоступны:

  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 по мере необходимости.

Last updated