Обновление кастомизатора в 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. 1.
    Скопировать папку /opt/itgrix_bx/customizer.dist/ в /opt/itgrix_bx/customizer/.
  2. 2.
    Убедиться, что в /opt/itgrix_bx/customizer/Settings.php прописаны нужные конфиг и лог.
  3. 3.
    Поменять в конфиг-файле /etc/itgrix_bx/config.json путь к исполняемому файлу кастомизатора в поле customizer.program_path , - теперь это /opt/itgrix_bx/customizer/customize.php.
  4. 4.
    Скопировать код пользовательских кастомизаций из /opt/itgrix_bx/custom/ в новые файлы кастомизаций в /opt/itgrix_bx/customizer/actions/. За исключением кастомизации process_record_file_path.php, - в ней существенно доработанная кастомизация по умолчанию (конвертация записей разговоров в mp3). Рекомендуем использовать и настроить новый код вместо старого.
  5. 5.
    Проверить код на наличие старых функций и заменить их на новые функции (см. далее).

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

Код кастомизатора был полностью переписан, и все старые функции стали недоступны:
  1. 1.
    message()
  2. 2.
    getConfig()
  3. 3.
    myQuery()
  4. 4.
    getDB()
Вместо них теперь нужно использовать функции соответственно:
  1. 1.
    $this->logDebug() (или logInfo, logWarn, logError в зависимости от желаемого уровня логирования). Данная функция в отличие от message() принимает только один аргумент - строку с сообщением. Если нужно вывести в лог несколько разнотипных значений, нужно сначала сделать из них одно строковое значение.
  2. 2.
    Utils::getConfig() - использование аналогичное старому, плюс возможность обработать ошибку.
  3. 3.
    Utils::mysqlClcQuery() - использование аналогичное старому, плюс возможность обработать ошибку.
  4. 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 modified 5mo ago