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

На первой пока пусто, зайдем на вторую, посмотрим что тут можно изменить.
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.

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

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 раза в час.

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

После сохранения видим 5 кнопок:
View — показать готовый опрос.
Edit - редактировать.
Results — результаты.
Мы находимся в разделе Edit, он делится на 2:
Configuration — первая страница, с которой мы попали на эту.
Form components — тут мы находимся. На этой странице происходит добавление полей к опросу.
Добавим несколько полей. Я добавил поля: file, Markup, Pagebreak, textfield. У каждого из этих полей есть свои настройки, их я описывать не буду, так как их много, и они различны.

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

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

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

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

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

Спасибо за внимание -)
Если возникли какие-то вопросы, можете задать их на форуме.
- RemaGe's blog
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии



Комментарии
Скриншоты лучше делать в png,
By xjunkiex (не проверено) on 26 Ноя 2009 at about 20:31.Скриншоты лучше делать в png, текст более читаемый получается.
За уроки спаисбо!
И вам спасибо за совет) В
By RemaGe on 26 Ноя 2009 at about 20:50.И вам спасибо за совет) В следующем уроке попробую применить)
Эх я думал следующий урок
By VzmiXX (не проверено) on 26 Ноя 2009 at about 21:32.Эх я думал следующий урок бкдет добавлениевидео на сайт )
Про видео, было в видео про
By RemaGe on 27 Ноя 2009 at about 03:25.Про видео, было в видео про CCK -)
Да смотрел я 6 урок,
By VzmiXX (не проверено) on 27 Ноя 2009 at about 19:40.Да смотрел я 6 урок, конкретно не нашёл.
К уроку прилагается скринкаст
By RemaGe on 27 Ноя 2009 at about 19:42.К уроку прилагается скринкаст (видео-урок), там в конце есть пример, как закачивать на сайт видео.
Доброго времени! я вот с
By Неизвестный (не проверено) on 30 Ноя 2009 at about 14:28.Доброго времени! я вот с локалхоста отправляю и мне по мимо сообщения что форма отправлена выдает еще такое: You have already submitted this form. View your previous submissions. что это и как с эти боротся?
Переведите) Это значит что вы
By RemaGe on 30 Ноя 2009 at about 15:58.Переведите) Это значит что вы уже раз ответили на форму. Судя по всему вы выставили ограничение, на количество ответов, и свой ответ уже сделали. Либо удалите его, либо уберите ограничение.
Спасибо!
By azon (не проверено) on 01 Дек 2009 at about 00:11.Спасибо!
Евгений не могли бы Вы
By Неизвестный (не проверено) on 10 Дек 2009 at about 17:28.Евгений не могли бы Вы сделать урок по SEO в поисковиках где не ткнешь Drupall
попадаешь на Ваш сайт, поделитесь пожалуйста опытом. И еще хотелось
бы видеть побольше таких уроков 8. Drupal - Урок восьмой - Еще немного про модуль Views. Работаем с Exposed filters и Arguments.
У меня уже был пост о
By RemaGe on 10 Дек 2009 at about 18:05.У меня уже был пост о seo-модулях для Drupal. В остальном оптимизация ничяем не отличается от оптимизации других сайтов.
SEO-оптимизацией этого блога почти не занимаюсь. Думаю, поисковики мен любят за большое количество тематических ссылок.
Я почему-то все больше и
By ramblike (не проверено) on 14 Дек 2009 at about 18:44.Я почему-то все больше и больше начинаю любить Rambler. А вы?
Почему то вебформа не хочет
By Maxo (не проверено) on 17 Дек 2009 at about 16:48.Почему то вебформа не хочет отправлять письма.
вот что выдает:
Forbidden
You don't have permission to access / on this server.
Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.
Apache/1.3.33 Server at AppStuff Port 80
Где ковырятся то нужно?(
Спасибо.
"На одном из сайтов
By Kati (не проверено) on 28 Янв 2010 at about 14:02."На одном из сайтов посвященных Drupal даже продают за $100 сборку простого магазина с использованием webform."
Это где это такое продают??
http://idrupal.ru/pay/legkii-
By RemaGe on 28 Янв 2010 at about 15:07.na-baze-drupal-6x-platnaya-sborka
добрый день вам! классная
By kvn (не проверено) on 31 Янв 2010 at about 17:31.добрый день вам!
классная статья, я все сделал, только вот вопрос, можно ли сделать так, чтобы вебформа отправляла все что было заполнено в форме на мой е-майл? а то шлет ссылку, по ссылке идешь и админом читаешь то что юзверь заполнял. не очень удобно. да и догадываюсь, что это не очень благоприятно сказывается на загрузке моей БД и сервера.
С уважением...
упс, сорри.. ступил. Доглядел
By kvn (не проверено) on 31 Янв 2010 at about 17:38.упс, сорри.. ступил. Доглядел место для галок e-mail. Если других заинтересует - скажу, что, если хотите, чтобы вам данные веб-формы приходили на почту ставьте галки в момент выбора поля. ставьте Mandatory, если хотите, чтобы поле было обзяательным к заполнению..
у меня вопрос остался, можно отключить создание сабмишенов? мне вполне достаточно почты..
С уважением..
По моему нельзя. Почта
By RemaGe on 31 Янв 2010 at about 17:40.По моему нельзя. Почта опциональна, сабмишены нет.
Спасибо, друх!
By Weasel (не проверено) on 23 Июл 2010 at about 20:11.Спасибо, друх!
эх, жаль...как не хочется
By kvn (не проверено) on 31 Янв 2010 at about 17:49.эх, жаль...как не хочется лезть в пхп код евойный :(.. спасибо за ответ...
Оно так сильно мешает? Я не
By RemaGe on 31 Янв 2010 at about 17:54.Оно так сильно мешает? Я не парюсь)
хочется, чтобы было все как
By kvn (не проверено) on 31 Янв 2010 at about 18:02.хочется, чтобы было все как можно оптимальнее.. люблю работать в комфорте:) кстати, спасибо, что зашли, может ошибку какую или глюк накопаете - поделитесь, пожалуйста, буду признателен :)
Добрый день! Прошу помощи в
By виктор (не проверено) on 25 Фев 2010 at about 11:59.Добрый день!
Прошу помощи в разрешении одного вопроса!
Все сделал как указано в уроке. Поставил формы... на сайте заполняю формы, отправляю письмо, а на почтовый ящик приходит следующее:
Submitted on (тут дата указывается)
Submitted by anonymous user: [тут указывается ip заполнявшего форму]
Submitted values are:
The results of this submission may be viewed at:
http://www.probuhgalter.ru/node/179/submission/3
как быть?
что не так сделал?
А что не так? Все нормально
By RemaGe on 25 Фев 2010 at about 13:21.А что не так? Все нормально
плизз...ответы на почту!
By виктор (не проверено) on 25 Фев 2010 at about 12:17.плизз...ответы на почту!
При создании вебформы (заявка
By prince999 on 06 Апр 2010 at about 17:52.При создании вебформы (заявка на добавление в каталог организаций) столкнулся с глупейшей проблемой. Все введенные данные нормально отправляются, но вместо подтверждения выскакивает белый экран. Есть подозрение что 403 ошибка. Подскажите где копать?))
Сложный вопрос, может памяти
By RemaGe on 07 Апр 2010 at about 13:15.Сложный вопрос, может памяти не хватает, может еще чего.
Создаю сайт гимназии.
By SVA on 07 Апр 2010 at about 21:51.Создаю сайт гимназии. Хотелось бы сотварить виртуальную приемную директора. Что-то типа этого http://gymn10.minsk.edu.by/main.aspx?uid=53270. Как это можно реализовать с помощью Webform. Направьте на путь истинный, плз.
Данных в уроке достаточно для
By RemaGe on 08 Апр 2010 at about 02:01.Данных в уроке достаточно для создания такой формы.
Форму я создал без проблем.
By SVA on 08 Апр 2010 at about 10:40.Форму я создал без проблем. Меня итересует, как на одной странице разместить и форму и вопросы с ответами?
Такой функционал проще будет
By RemaGe on 09 Апр 2010 at about 13:31.Такой функционал проще будет реализовать в связке Views+ CCK.
Как вариант можно поискать готовый модуль, наверняка кто-нибудь уже сделал.
А как можно сделать чтобы не
By Серж on 11 Апр 2010 at about 23:38.А как можно сделать чтобы не отображалась дата и кто создал на форме? А то не могу обнаружить параметр этот(.
По моему это можно убрать в
By RemaGe on 12 Апр 2010 at about 17:25.По моему это можно убрать в настройках темы. Как вариант темизировать.
Точно, нашел в настройках
By Серж on 12 Апр 2010 at about 23:23.Точно, нашел в настройках темы, спасибо за помощь)
спасибо,отличный урок.
By bulinat on 16 Апр 2010 at about 11:13.спасибо,отличный урок.
А где информация о PHPMail? И
By Роман (не проверено) on 18 Апр 2010 at about 01:03.А где информация о PHPMail? И о модулях которые помогут доставить почту?
спасибо за отличную статью!!!
By Sergey (не проверено) on 21 Апр 2010 at about 14:00.спасибо за отличную статью!!! весь день просидел над формами пытаясь понять как они работают, но пока не нашел вашу статью - ничего не понял...
есть два вопроса:
1. как бы сделать для каждой формы уникальный дизайн? например, засунуть все созданные поля в таблицу, разбив примерно так:
Имяполе с именемEmailполе для email
ну и т.д.
2. добавить эту форму уже к существующей странице и только одной?
Заранее спасибо, даже если ответа не будет...
Добрый. у меня капчи нету.
By Dmitry (не проверено) on 17 Май 2010 at about 23:48.Добрый. у меня капчи нету. для этого нужно доставлять ещё модуль?
Да, модуль называеться
By FoX on 18 Май 2010 at about 11:32.Да, модуль называеться CAPTCHA
Не могли бы дополнить данный
By chess_ (не проверено) on 11 Июн 2010 at about 15:26.Не могли бы дополнить данный урок , чтобы можно было отправлять с формы на почту?
пытаюсь уже давно на Drupal не получается ...
Добрый день. Подскажите,
By komandor43 on 23 Июн 2010 at about 15:28.Добрый день.
Подскажите, пожалуйста, по настройке почты. С сайта не уходит почта. Модуль контакты.
Сообщение:
warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in D:\Site\PD\includes\mail.inc on line 193.
PHP.INI
[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25
Нужно ли использовать дополнительно модуль smtp или что-то подобное?
Или нужно настраивать почту на сервере?
Значит по последнему.... если
By chess_ (не проверено) on 23 Июл 2010 at about 11:29.Значит по последнему.... если у Вас сервер свой на ubuntu или debian, то
настраиваем Sendmail
Чтобы php умел отправлять письма, проделываем следующие операции.
Код:
# file: /etc/php5/apache2/php.ini [раскомментируем и изменим строку]
sendmail_path = /usr/sbin/exim4 -t
Для конфигурации Exim4 (по умолчанию в качестве Mail Transfer Agent используется именно он) существует пакет exim4-config. Воспользоваться им можно так:
Код:
debian:~# dpkg-reconfigure exim4-config
После этого вам начнут задавать вопросы. На первый (Общий тип почтовой конфигурации) отвечаем:
интернет-сайт; прием и отправка почты напрямую, используя SMTP
А далее жмем Enter до конца настройки. Теперь все должно работать.
по настройке php, что написано выше прочел тут (не я автор)
http://forum.antichat.ru/showthread.php?t=186926
дальше я установил модуль SMTP Authentication Supporhttp://drupal.org/project/smtp http://drupal.org/project/phpmailer http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php5_6/
качал отседова
внимательно читаем инструкцию по установке!!! \sites\sites\all\modules\smtp\install.txt
там написано создать директорию sites/all/modules/smtp/phpmailer/
туда скачать и распаковать содержимое модуля
тут я качал
затем в директорию sites/all/modules/smtp/phpmailer закинуть файлики
class.phpmailer.php и class.smtp.php
я скачал их тут
затем в Главная » Администрирование » Настройка сайта » SMTP Authentication Support
настраиваем все остальное, в поле "E-mail from address:" желательно вписать тоже самое что и в "SMTP Username".
собсно поле данных манипуляций почта начала ходить с формы "контакты" , попробую на WEB form - отпишу.
вопрос кстати поднимался уже на форуме , остался без ответа.
нормально работает и в
By chess_ (не проверено) on 23 Июл 2010 at about 14:50.нормально работает и в Webform
Вдохновили меня на создание
By Alex&r (не проверено) on 25 Июл 2010 at about 00:23.Вдохновили меня на создание формы с этим модулем. В итоге на Друпал.ру образовался вопрос по поводу переадрессации после заполнения. На всякий дам ссылку, вдуг кому-то пользу принесет.http://www.drupal.ru/node/47655 Сейчас же вот какой вопрос. Понадобилось создать список (single). Битый час подставляю значения, а он выдает все в одну строку и все тут. Как заполнить поле с вариантами, чтобы список все-таки стал списком? Спасибо!
Поясню, а то шарады какие-то
By Alex&r (не проверено) on 25 Июл 2010 at about 01:57.Поясню, а то шарады какие-то получились. Нужно создать "Выпадающий список" с помощью поля типа select
А как можно добавить поле,
By Drupik (не проверено) on 06 Авг 2010 at about 22:44.А как можно добавить поле, чтобы можно было выбрать КОМУ отправлять сообщение 0 отдел продаж, администрация, склад, техподдержка и т.д. (соотвественно под каждого вбиты будут адреса)?
Благодарю!
Столкнулся с такой
By Timur (не проверено) on 13 Сен 2010 at about 11:35.Столкнулся с такой проблемой...
Добавил на сайт модуль webform, включил его.
Но при создании ноды типа webform, настроек Webform Settings и Webform advanced settings и им подобных, не появляются.
Вообще Webform у меня ничем не отличается от типа материла Page. Никаких форм добавления полей нет.
Что я делаю не так, подскажите пожалуйста(((...
Timur, внимательно еще раз
By mak-vardugin (не проверено) on 13 Сен 2010 at about 13:09.Timur, внимательно еще раз посмотрите видео, вначале создается пустая форма а потом она редактируется, глядишь и нужные кнопки появятся: )
Эх...в том то и дело...При
By Timur (не проверено) on 14 Сен 2010 at about 22:15.Эх...в том то и дело...При редактировании "нужные кнопки" не появляются...у меня получается что Page ничем не отличается от Webform...
Тимур, +1. Та же проблема.
By Идеалист (не проверено) on 15 Сен 2010 at about 11:02.Тимур,
+1. Та же проблема. Скачивал версию 6.x-3.2.