Пример: конфигурация плагина¶
В предыдущем примере мы увидели, как определить схему плагина и/или темы.
Теперь посмотрим, как предложить параметры конфигурации для плагина или темы, которые будет показывать плагин Admin.
Если вы хотите, чтобы у плагина (или темы) были параметры, настраиваемые прямо из интерфейса админки, нужно заполнить файл blueprints.yaml формами.
Например, вот файл archives.yaml плагина Archives:
Это настройки плагина по умолчанию. Без плагина Admin для настройки этих параметров пользователю нужно скопировать этот файл в папку /user/config/plugins/ и редактировать значения там.
Предоставив правильно оформленный файл blueprints.yaml, вы можете позволить пользователю менять настройки из интерфейса админки. При сохранении настройки автоматически записываются в /user/config/plugins/archives.yaml (или в config/themes, если это тема). Структура начинается так:
Здесь начинается нужная нам часть. Каждому полю в файле archives.yaml нужен соответствующий элемент формы, например:
Переключатель
Список
Текст
Корневой элемент (в этих примерах enabled, date_display_format, limit) — это имя параметра. Дополнительные компоненты каждого поля определяют, как это поле отображается. Например, его тип (type), размер (size), отображаемая метка (label) и необязательная полезная подсказка, появляющаяся при наведении (help). default и placeholder позволяют задать значения по умолчанию и улучшить то, как поле выглядит для пользователя.
Остальные поля могут меняться в зависимости от типа поля. Например, типу поля select требуется список options.
К вложенным параметрам можно обращаться через точечную нотацию (например, order.dir).
Плагин Admin определяет множество других типов полей, которые можно использовать, в plugins/admin/themes/grav/templates/forms/fields.
Важно отметить: если form.validation установлен в strict, как в примере с плагином Archives, нужно добавить схемы форм для всех параметров, иначе при сохранении появится ошибка.
Если же вы хотите разрешить настраивать в админке лишь несколько полей, а не все, установите form.validation в loose.