Для разработчиков

Схема настроек плагина

Обновлено

Плагин может добавить свои настройки на страницу настроек формы — отдельной вкладкой. Как и блоки в карточке заявки, они описываются декларативно: плагин отдаёт схему, приложение рисует.

Точка расширения — хук backend_form_settings_tabs, схема лежит в ключе settings_schema.

Типы полей

ТипЧто это
switchПереключатель
inputОднострочное поле
textareaМногострочное поле
selectСписок
checkboxФлажок
checkКнопка проверки — не настройка, см. ниже

Списки, которые подгружаются с сервера

У списка есть два дополнительных ключа:

  • options_url — варианты запрашиваются у сервера, ответ вида {options: [{value, label}]}. Нужен, когда список зависит от данных установки: воронки CRM, источники тикетов, склады.
  • depends_on — имя настройки-родителя. При её изменении варианты перезапрашиваются с параметром ?<depends_on>=<значение>, а выбранное значение сбрасывается.

Связка options_url + depends_on даёт зависимые списки: выбрали воронку — подгрузились её этапы.

Сохранение

Настройки сохраняются автоматически. Приложение принимает и плоское значение, и пару «значение + тип».

Кнопка проверки

Тип check — не настройка, а кнопка. Она ничего не хранит, и приложение пропускает её при загрузке и сохранении: иначе пустое «значение» кнопки затирало бы одноимённый ключ в базе.

'crm_check' => [
    'type'        => 'check',
    'label'       => 'Проверить',
    'description' => 'Смотрит CRM, источник и воронку. Сделку не создаёт.',
    'check_url'   => $app_url . '?plugin=crmdeals&module=backend&action=check',
],

Действие получает POST с form_id и отвечает тем же видом, что и проверка встроенных каналов уведомлений:

['success' => true,  'message' => 'Всё настроено', 'details' => []]
['success' => false, 'error'   => 'Не выбрана воронка']

Такую кнопку стоит делать каждому плагину, который зависит от внешних настроек. Смысл тот же, что и у проверки каналов: пользователь получает ответ на «почему не работает» сам, до первой настоящей заявки.

Замена шаблонов плагина в теме

Всё, что плагин рисует на витрине, тема может переопределить своими шаблонами — не трогая файлы плагина. Так лента отзывов или шаги квиза приводятся к оформлению темы и переживают обновление плагина.