Разработка ботов

Размещение

Класс бота является расширением стандартного 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 Тип поля.
  • textarea - текстовое поле
  • checkbox - флажок
  • input - поле ввода
  • wysiwyg - визуальный редактор
  • user - выбор сотрудника
  • users - выбор нескольких сотрудников
  • dropdown - список
value Значение поля. Может принимать TRUE|FALSE. Например, для типа checkbox.
obligatory Обязательность заполнения.
options Массив опций для типа dropdown.
divAttr Указание классов родительскому div-у.

При сохранении настроек бота, они будут преобразованы в json-формат. Для получения настроек используется:

$aSettings = json_decode($this->_oBot_Module->json, TRUE);

Доступность бота

У каждого бота обязателен метод available(), в котором задаются условия условия доступности бота, возвращая TRUE или FALSE.

Не нашли ответ на свой вопрос в документации? Направьте обращение в службу поддержки или онлайн чат.