Выбор адресата в webform

17 May, 2014

Возникла как-то необходимость отправлять данные webform на разные адреса, в зависимости от выбора отдела в выпадающем списке. Ну нет проблем.

Идем в настройки формы, добавляем поле для выбора адресата с типом 'элементы списка', в значениях поля указываем емайлы и названия отделов (можно указать несколько адресов через запятую без пробелов)

webform adresat

Затем идем в 'Настройка оповещений', и добавляем получателей. В 'значение компонента' выбираем только что созданное поле с выбором адресатов.

webform adresat

Недостаток такого подхода в том, что адреса светятся в разметке, и без проблем доступны всяким роботам, собирающим емайлы для рассылки спама.

webform adresat

Если адреса очень хочется скрыть от роботов, то можно это сделать с помощью хука 'webform_submission_presave':

<?php
/**
* Implements hook_webform_submission_presave().
* Изменяем значения email-адресов в форме контактов (скрытие от роботов)
*/
function yourtheme_webform_submission_presave($node, &$submission) {
  if (
$node->nid == YOU_NODE_ID) {
     
// отдел маркетинга
     
if ($submission->data[1]['value'][0] == 'marketing') {
       
$submission->data[1]['value'][0] = [email protected]';
      }
     
// отдел продаж
     
elseif ($submission->data[1]['value'][0] == 'sales') {
         
$submission->data[1]['value'][0] = [email protected]';
      }
     
// отдел сервиса
     
elseif ($submission->data[1]['value'][0] == 'service') {
         
$submission->data[1]['value'][0] = [email protected]';
      }
     
     
//Make sure you include the intended recipients, otherwise this can end up causing duplicate sends.
     
webform_submission_send_mail($node, $submission$submission->data[1]['value'][0]);
  }
}
?>

Помещаем данный код в template.php своей темы и редактируем на свой вкус. Недостаток этого метода именно в том, что при любых изменениях придется звать программиста и править функцию.
Я в итоге не стал скрывать адреса, и вроде бы спама особо на том проекте нет.

Если кому интересно, страница обсуждения данного вопроса с кучей комментариев на d.org (затронуты 6 и 7 друпал): https://drupal.org/node/273806

Теги: 

Добавить комментарий

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.