Разработка ботов
Размещение
Класс бота является расширением стандартного Bot_Controller и размещается по пути, указанному при создании бота в центре администрирования, согласно стандартам оформления кода и размещения файлов.
Описание полей
У бота может быть определенный набор полей для настройки поведения. Для этого бот должен содержать метод getFields()
, содержащий в себе описание набора полей. Поля передаются в виде массива определенной структуры:
$this->_fields = array( 'comment' => array( 'caption' => 'Комментарий', 'type' => 'textarea', 'value' => FALSE, 'obligatory' => TRUE ), 'responsible' => array( 'caption' => 'Ответственный', 'type' => 'checkbox', 'value' => TRUE, 'obligatory' => FALSE ), 'subject' => array( 'caption' => 'Тема', 'type' => 'input', 'value' => FALSE, 'obligatory' => TRUE ), 'text' => array( 'caption' => 'Текст', 'type' => 'wysiwyg', 'value' => FALSE, 'obligatory' => TRUE ), 'employees' => array( 'caption' => 'Дополнительные получатели', 'type' => 'users', 'obligatory' => FALSE ), 'user' => array( 'caption' => 'Дополнительный получатель', 'type' => 'user', 'obligatory' => FALSE ), 'status' => array( 'caption' => 'Статус', 'type' => 'dropdown', 'options' => array( 0 => array( 'value' => 'Опция 1', 'color' => '#ccc' ), 1 => array( 'value' => 'Опция 2', 'color' => '#eee' ), ), 'value' => FALSE, 'obligatory' => TRUE, 'divAttr' => 'form-group col-12 col-sm-6' ), );
Атрибут | Описание |
caption | Заголовок поля |
type | Тип поля.
|
value | Значение поля. Может принимать TRUE|FALSE. Например, для типа checkbox. |
obligatory | Обязательность заполнения. |
options | Массив опций для типа dropdown. |
divAttr | Указание классов родительскому div-у. |
При сохранении настроек бота, они будут преобразованы в json-формат. Для получения настроек используется:
$aSettings = json_decode($this->_oBot_Module->json, TRUE);
Доступность бота
У каждого бота обязателен метод available()
, в котором задаются условия условия доступности бота, возвращая TRUE
или FALSE
.
Не нашли ответ на свой вопрос в документации? Направьте обращение в службу поддержки или онлайн чат.