Набор модулей для Webform

Опубликовано admin - вт, 08/25/2015 - 22:37

Полезные модули

Собственно сам модуль Webform
Webform Ajax — для отправки форм без перезагрузки страницы;
Webform Hints — для отображения плэйсхолдеров (требует Form Defaults jQuery plugin для поддержки старых браузеров);
Insert Block — для вывода формы в тексте ноды (есть еще Block Filter, но не заработал с Ajax);
Webform Confirm Email Address | Webform Confirmation — подтверждение введенного email;
CAPTCHA Webform Bridge — добавление на формы каптчи (патч для корректной работы с Ajax).

Модули для добавления полей в форму:
Webform HTML Textarea — textarea (в том числе и с CKEditor'ом);
Webform Phone Number — валидация телефонных номеров.

Проблемы

Ошибка The submitted from address (=?UTF-8.....) is not valid при попытке отправить оповещение из вебформы.
Решается сменой имени отправителя в настройках оповещений об отправке формы на более короткое: /node/<NODE_ID>/webform/emails/<EMAIL_ID>

Сниппеты

function THEME_NAME_form_webform_client_form_FORM_ID_alter(&$form, &$form_state) {
   //Если форма отображается на странице определенной ноды:
   if (arg(0) == 'node' && is_numeric(arg(1))){
      switch (arg(1)) {
         case NODE_ID:
            //Изменить текст на кнопке отправки формы
            $form['actions']['submit']['#value'] = 'Текст на кнопке';
            //Добавить классы для кнопки отправки формы
            $form['actions']['submit']['#attributes']['class'][] = 'some_class';
            //Обязательно заполнить поле webform_email
            $form['submitted']['webform_email']['#required'] = 1;
            //Изменить сообщение об успешной отправке формы
            $form['#node']->webform['confirmation'] = 'Текст';
            break;
      }
      //Добавить ссылку на страницу откуда была отправлена форма в поле FIELD_ALIAS
      $node = node_load(arg(1));
      $form['submitted']['FIELD_ALIAS']['#default_value'] = l($node->title, 'node/'.arg(1));
   }
}
Теги
Яндекс.Метрика