Формирование одиночного чекбокса в Drupal 7 Webform

В Webform для Drupal 7 нет отдельного типа элемента, который отвечал бы за одиночный чекбокс. Если возникает задача добавить в форму знакомую всем галочку «Согласие на обработку персональных данных», то стандартного решения в виде поля checkbox вы не найдёте.

Чекбокс в конструеторе webform реализуется использованием элемента типа Select (элементы списка), который необходимо настроить особым образом, чтобы он преобразовался в одиночный чекбокс.

Рассмотрим процесс на примере поля получения согласия пользователя. В параметрах списка значений этому полю добавляют единственную строку в формате ключ|метка, где ключом выступает служебное значение, а меткой — текст, отображаемый пользователю. Для нашего случая это будет строка:

Ключевой этап — включение возможности множественного выбора. Без этого, Webform стремится отобразить его как радиобаттон. Если же указать, что для него допускаются множественные значения, то элемент будет отрендерён уже в виде чекбокса. Именно эта настройка превращает элемент в одиночную галочку.

В настройках отображения отключают все дополнительные галочки в группе «Отображение» и указывают, что метка поля не должна выводиться — для этого в параметре Label display выбирают «No». Поле в таком виде остаётся без внешней надписи, а пользователю показывается только сама галочка с текстом из добавленной строки параметров.

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

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

Мало букафф? Читайте есчо !

Еще один пример работы с EntityFieldQuery

Декабрь 23, 2020 г.

Время от времени продолжаю кодить под drupal 7, публикую еще один пример для работы EntityFieldQuery, на этот раз с фильтром по полю типа term reference. Основная логика точно такая же как и при работе с data полями (где у нас хранятся тексты или ...

Читать

Как рендерить отдельные поля элемента field collections

Январь 31, 2019 г.

Модуль field_collection всю свою историю существования (аж 2010 года) проходит в статусе beta версии. Тем не менее многие разработчики используют его в своих проектах. На текущий момент это версия 7.x-1.0-beta13. Хотя FC - это ещё один entity, ...

Читать

Вывод строки запроса построенного в db_select

Апрель 11, 2019 г.

Конструктор запросов db_select позволяет абстрагироваться от движка базы данных. Если запрос довольно сложный, то на этапе тестирования может потребоваться, что называется, убедиться в том, что конечный запрос на языке SQL к базе именно тот, что вы ожидаете. ...

Читать

Изменить текст no-results во views программно

Февраль 5, 2020 г.

Drupal views позволяют сконфигурировать сообщение на случай если результат запроса пуст и нельзя срендерить какой либо контент для данного представления. Данная опция находится во вкладке 'advanced' вашего представления. Но в данной статье я покажу ...

Читать
 

Комментарии к «Формирование одиночного чекбокса в Drupal 7 Webform»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: