Создание шаблонов форм

:bookmark: Это руководство объясняет, как использовать шаблоны форм для структурирования контента в Discourse.>
:person_raising_hand: Требуемый уровень пользователя: Администратор

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

Примечание: Если вам нужны шаблоны, которые работают скорее как рекомендации, чем как структурированная форма, рассмотрите возможность использования шаблонов тем.

Включение шаблонов форм

Вы можете включить шаблоны форм в разделе Предстоящие изменения, установив параметр Включить шаблоны форм в значение «Все».

Создание шаблонов форм

Создавать и управлять шаблонами форм можно, перейдя в раздел Администрирование > Внешний вид > Шаблоны форм (/admin/customize/form-templates).

Чтобы создать шаблон формы:

  1. Нажмите кнопку Новый шаблон.

  1. Введите внутреннее имя шаблона в поле Имя шаблона.

  2. Используйте кнопки в верхней части страницы для добавления различных полей в форму и настройки их атрибутов (подробности ниже). Многие из этих опций являются стандартными типами полей формы (например, флажок, короткий ответ, выпадающий список и т. д.), но есть и несколько специфических полей:

    • Селектор группы тегов: Пользователи могут выбрать один или несколько тегов из определённой группы.

    • Ответ в формате Markdown: Пользователи могут добавлять контент непосредственно в мини-версию редактора. Это идеально подходит, когда участникам нужно вводить Markdown напрямую, например код, или требуется поддержка форматирования, предоставляемого богатым редактором.

  3. Добавьте необходимые правила валидации для ваших полей. Нажмите кнопку Валидация для получения ключей (также приведены ниже).

  4. Нажмите кнопку Предпросмотр, чтобы убедиться, что всё отображается корректно.

  5. Нажмите кнопку Сохранить.

Атрибуты полей

Общие атрибуты для всех типов полей:

  • label: Видимое имя поля
  • placeholder: Вспомогательный текст, отображаемый в пустых полях (поле ввода, текстовое поле, выпадающий список, множественный выбор)
  • description: Дополнительный контекст или инструкции, отображаемые под полем.

Специфические атрибуты для загрузки файлов:

  • file_types: Список разрешённых расширений файлов, разделённый запятыми (например, .jpg, .png, .pdf)
  • allow_multiple: Булево значение, указывающее, могут ли пользователи загружать несколько файлов

Атрибуты для выпадающего списка и множественного выбора:

  • none_label: Текст, отображаемый, когда ни один вариант не выбран
  • choices: Массив доступных вариантов

Атрибуты селектора группы тегов:

  • tag_group: (свойство поля верхнего уровня) Название группы тегов, из которой будут заполняться варианты
  • none_label: Текст, отображаемый, когда ни один вариант не выбран
  • multiple: Булево значение, указывающее, могут ли пользователи выбирать несколько тегов (по умолчанию в базовой структуре установлено значение true)

Варианты валидации

Ключ Тип Описание
required boolean Требует заполнения поля для отправки формы.
minimum integer Для текстовых полей указывает минимальное количество разрешённых символов.
maximum integer Для текстовых полей указывает максимальное количество разрешённых символов.
pattern regex; string Для текстовых полей — регулярное выражение, определяющее допустимый ввод.
type string Для полей ввода можно указать ожидаемый тип ввода (text, email, date, number, url, tel, color, password)

Добавление шаблонов форм в категорию

После создания шаблона:

  1. Перейдите в категорию, где вы хотите использовать шаблон.
  2. Нажмите кнопку :wrench: для редактирования категории.

  1. Переключите кнопку Расширенные настройки (если используется новый упрощённый дизайн категорий).
  2. Перейдите на вкладку Шаблон.
  3. Включите переключатель Шаблон формы.
  4. Выберите шаблон формы в выпадающем меню.
  5. Нажмите кнопку Сохранить категорию.

Если к категории назначено несколько шаблонов, пользователи увидят выбор шаблона при создании тем.

Опыт использования участниками

Создание тем с использованием шаблонов форм

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

Предварительное заполнение значений формы

Поля формы можно предварительно заполнить с помощью параметров URL, соответствующих идентификаторам полей. Например: /new-topic?software-version=2.4.1&severity=Critical

Это полезно при создании ссылок на создание тем с уже заполненными определёнными полями.

1 лайк

Как выглядят шаблоны регулярных выражений и какой вариант регулярных выражений ожидается? Я попробовал следующие, и все они прошли, хотя я этого не ожидал:

  • 2[6-9][0-1][0-9][0-3][0-9] со значением 180918;
  • /2[6-9][0-1][0-9][0-3][0-9]/ со значением 180918;
  • /2[6-9][0-1][0-9][0-3][0-9]/ со значением 12;