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

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

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

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

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

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

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

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

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

Программное удаление полей и групп из сущности Config Pages

Февраль 12, 2019 г.

Я уже рассказывал ранее как программно можно обновить данные в сущности config_pages. А здесь покажу как программно можно выполнить удаление полей и групп (созданных модулем field_group). Config Pages использует Field API, поэтому удаление полей ...

Читать

node_save в hook_node_insert

Апрель 13, 2021 г.

Рассмотрим технику того, как выполнить node_save во время hook_node_insert. Проблема в том, что во время данного хука мы еще находимся в транзакции и выполнить сохранение ноды прямо тут коде функции - не получится. Т.е. следующий код работать не ...

Читать

Ошибка запуска Cron в Drupal 7

Апрель 16, 2020 г.

Если запуск Cron в Drupal 7 постоянно выдаёт такую ошибку - "Cron run failed.", как исправить ситуацию? Подобная статья у меня уже была, но посвященная аналогичной проблеме в Drupal 6. Решение точно такое же - нужно удалить из базы данных ...

Читать

Добавление условий во views программно

Март 31, 2019 г.

Модуль Views - мощный инструмент в копилке друпалера. Конструктор позволяет создавать условия, перекрывающие большую часть потребностей в практических ...

Читать
 

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

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



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