Схема настроек плагина
Обновлено
Плагин может добавить свои настройки на страницу настроек формы — отдельной вкладкой. Как и блоки в карточке заявки, они описываются декларативно: плагин отдаёт схему, приложение рисует.
Точка расширения — хук 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' => 'Не выбрана воронка']
Такую кнопку стоит делать каждому плагину, который зависит от внешних настроек. Смысл тот же, что и у проверки каналов: пользователь получает ответ на «почему не работает» сам, до первой настоящей заявки.
Замена шаблонов плагина в теме
Всё, что плагин рисует на витрине, тема может переопределить своими шаблонами — не трогая файлы плагина. Так лента отзывов или шаги квиза приводятся к оформлению темы и переживают обновление плагина.