Пользовательский PHP
С помощью данного функционала вы можете создавать свои собственные функции и классы, которые можно использовать в поле PHP Код или в PHP коде в автоматизации. Таким образом, выполняя различные интеграции со сторонними сервисами, вы не будет дублировать повторяющийся код для нескольких сущностей.
Создание кода
Перейдите на страницу "Настройки / Пользовательский PHP" и нажмите на кнопку "Создать". У вас есть возможность создавать несколько страниц с кодом и страницы могут быть сгруппированы по папкам.
В поле "PHP код" введите ваш код. После сохранения записи, введенный код будет автоматически включатся в приложение.
Обратите внимание: перед сохранением кода выполняется проверка на ошибки, таким образом вы не можете добавить нерабочий код в приложение.
Для удобства работы с редактором были добавлены горячие клавиши:
F11 - разворачивает редактор во весь экран
CRTL+S - сохраняет код
Применение на практике
Предположим, что нам нужно отправлять сообщение в Телеграм при добавлении новой задачи, но только если статус задачи "Новый" и тип "Срочный". Стандартные правила отправки сообщений с данной задачей не справятся, так как в правилах можно применить только одно условие.
Шаг 1: Создаем необходимые глобальные переменные
Шаг 2: создаем функцию для отправки сообщения. В поле "PHP" код вводим следующий код:
function telegram_send_message($message) { global $alerts; $params=[ 'chat_id' => VAR_TELEGRAM_CHAT_ID, 'text' => strip_tags($message,'<b><i><a><code><pre>'), 'parse_mode' => 'HTML', 'disable_web_page_preview' => 'true', ]; $ch = curl_init("https://api.telegram.org/bot" . VAR_TELEGRAM_BOT_TOKEN ."/sendMessage"); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, ($params)); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_TIMEOUT, 10); $result = curl_exec($ch); curl_close($ch); $result = json_decode($result,true); if(isset($result['error_code']) and is_object($alerts)) { $alerts->add('Telegram Error: ' . $result['error_code'] . ' ' . $result['description'],'error'); } }
Шаг 3: В автоматизации действий создаем процесс для сущности "Задачи" и в опции "Расположение кнопки" устанавливаем:
Выполнить процесс после добавления записи
.
Шаг 4: добавляем действие для процесса "выполнить php скрипт" и в опции "PHP код" вводим необходимые нам условия для отправки сообщения в Телеграм:
Шаг 5: проверяем работу кода.
В результате, функцию telegram_send_message
мы можем применить для любой сущности, где необходима отправка сообщения в Телеграм.