Создание опросов и обратной связи в Drupal с помощью модуля Webform

Очень часто на Drupal ru возникают вопросы, о том как создать форму контактов (или что-либо подобное). В поставке Drupal идет отличный модуль Contact, который реализует эту форму, а так же общение между пользователями сайта, Этот модуль используется на моем блоге (пока), а так же, если не ошибаюсь, на самом Drupal ru, но сегодня мы поговорим о модуле Webform. Он позволяет создавать опросы, страницы контактов, и многое другое. На одном из сайтов посвященных Drupal даже продают за $100 сборку простого магазина с использованием webform.
Для начала его нужно установить, думаю с этим у вас проблем не возникнет. После установки у нас появляются 2 новых страницы на вкладке Administer: Webforms (Content management) — на которой отображаются все созданные Webforms, и Webform (Site configuration) — страница с основными настройками.

drupal-lesson-webform-1.jpg

На первой пока пусто, зайдем на вторую, посмотрим что тут можно изменить.

Available components — выбираем какие компоненты будут доступны при создании форм.

Markup — добавляет произвольный HTML (или даже PHP при желании).
Date — Выбор даты.
Time — Выбор времени.
Textarea - поле для ввода текста.
Pagebreak - элемент разбивает форму на страницы.
Grid — сетка из радио кнопок.
Hidden — скрытое поле, в нем можно хранить нужную нам информацию.
Fieldset — позволяет группировать поля.
Textfield - строка для ввода текста.
Email - поле для ввода почтового адреса.
File - позволяет пользователям прикреплять к форме файлы.
Select — позволяет добавлять чекбоксы, радио-кнопки.

Default e-mail values:
From address — адрес с которого придет письмо с результатами.
From name — имя отправителя.
Default subject — Тема письма.

Advanced options:
Allow cookies for tracking submissions — разрешить использовать cookies, для предотвращения повторного заполнения формы пользователем.
Default export format — формат экспорта по умолчанию.
Default export delimiter — разделитель записей при экспорте по умолчанию.
Submission access control — как контролировать доступ: по ролям, или не контролировать.
Webforms debug — нужно ли вести лог.

Работать с webform можно и без этих настроек. Давайте попробуем создать свой Webform.
Кликните на «Create content → Webform», в меню navigation.

drupal-lesson-webform-2.jpg

Страница добавления webform во многом схожа со страницей добавления ноды (которой webform по сути и является).

drupal-lesson-webform-3.jpg

Menu settings — при создании webform, можно сразу создаить пункт меню на нее ссылающийся.

Webform Settings
Title — заголовок (обязательный параметр).
Description — описание.
Confirmation message or redirect URL — если введете сообщение, то оно будет показано пользователю после заполнения webform, если ссылку, то по ней пользователь будет перекинут.

Webform access control — какие роли имеют доступ к форме.

Webform mail settings:
E-mail to address — почтовый адресс, на который будут направляться результаты заполнения webform, можно оставить пустым, а можнос ввести несколько через запятую.
E-mail from name, E-mail from address, E-mail subject — по умолчанию равны значениям вбитым на странице webform, но для каждого отдельного опроса (webform), можно вбить свои, или указать, чтоб их значения были равны какому-нибудь полю опроса.

Webform advanced settings:
Show complete form in teaser — показывать ли полную форму в тизере.
Limit the number of submissions a user may send within a specified time period — позволяет указать сколько раз пользователь может заполнить опросник за определенный промежуток времени. По умолчанию — без ограничения.

На рисунке заданно, что пользователь может заполнять форму 3 раза в час.

drupal-lesson-webform-4.jpg

Submit button text — проивольный текст для кнопки submit.
Additional Validation — с помощью PHP, можно задать дополнительные параметры проверки.
Additional Processing — после проверки, с помощью PHP, можно произвести дополнительную обработку данных.

Остальные настройки повторяют настройки у стандартных нод.

Создадим свой опрос, вбив в title произвольный текст, и сохранив. Я назвал его «123».

drupal-lesson-webform-5.jpg

После сохранения видим 5 кнопок:
View — показать готовый опрос.
Edit - редактировать.
Results — результаты.

Мы находимся в разделе Edit, он делится на 2:
Configuration — первая страница, с которой мы попали на эту.
Form components — тут мы находимся. На этой странице происходит добавление полей к опросу.

Добавим несколько полей. Я добавил поля: file, Markup, Pagebreak, textfield. У каждого из этих полей есть свои настройки, их я описывать не буду, так как их много, и они различны.

drupal-lesson-webform-6.jpg

После сохранения эта форма станет доступна на странице webforms. Так же для нее можно создать пункт меню, или вывести ее на главную, поставив соответствующую галочку на странице настроек.

Теперь давайте попробуем создать форму обратной связи.
Создаем новый опрос, в title вбиваем «Обратная связь» и сохраняем.
Я добавил 3 поля к этому webform:
Имя - типа textfield.
E-mail — типа email.
Сообщение — типа textarea.

drupal-lesson-webform-7.jpg

Сохраняем, и получаем готовую форму обратной связи. Единственное что было бы неплохо добавить, дак это капчу, для не зарегистрированных пользователей. Для этого устанавливаем captcha, и заходим на страницу «Administer → User management → CAPTCHA», там нужно установить галочку Add CAPTCHA administration links to forms.

drupal-lesson-webform-8.jpg

После этого, капча станет доступна на странице опроса.

drupal-lesson-webform-9.jpg

Кликаем по ссылке «Place a CAPTCHA here for untrusted users»

drupal-lesson-webform-10.jpg

в «Challenge type», нам нужно указать какой тип капчи будет выводиться пользователю. После выбора типа капчи, и сохранения, незарегистрированные пользователи (если разрешить им доступ к webform) увидят

drupal-lesson-webform-11.jpg

Спасибо за внимание -)

6454