Пользовательский поиск по Drupal сайтам.
Loading

Webforms темизация

Для кого-то этот пост окажется очевидным, но кому-то возможно поможет.

]]>Webform]]> - замечательный модуль Drupal позволяющий настраивать формы для отправки сообщений с сайта. 

Но в стандартном варианте само сообщение набранное на сайте в почтовое сообщение не входит. Давайте исправим эту несправедливость.

Можно пойти 2-мя путями:

Наиболее правильный - переопределение функции webform_mail_fields в своей теме. Для этого в папке темы создаем файл template.php (если по какой-то причине его у Вас еще там нет). Далее добавляем туда новую функцию. Я намеренно упустил функцию t(). Если у Вас многоязычный сайт.

function ИмяВашейТемы_webform_mail_fields($cid, $value, $node, $indent = "")
{
//Предворительно при настройке
//Формируем текст отсылаемого сообщения.
$msg = chr(10) . 'Заявка с сайта' . chr(10);
$msg .= 'ФИО: ' . $value[_fio] . chr(10);
$msg .= 'Почта: ' . $value[email] . chr(10);
$msg .= 'Контактный телефон: ' . $value[tel] . chr(10);
$msg .= 'Когда связаться: ' . $value[_kogda] . chr(10);
$msg .= 'Сообщение:' . chr(10) . $value[_zhelaet] . chr(10) . chr(10) . chr(10);

//$msg .= '<pre>'. check_plain(print_r( $value, 1)) .'</pre>';

return $msg;
}

 Для настройки (темизации) отправляемых с сайта сообщений берем из модуля файл webform-mail.tpl.php и коприруем его в нашу рабочую тему и ... начинаем колдовать менять.

При темизации по умолчанию можно использовать следующие переменные:

 

  •  $form_values: Массив переменных введенных Вами в форму. Например вы добавили свое поле fio, тогда значение поля будет находится в элементе массива $form_values[submitted_tree][fio]. (для анализа массивов не забываем строчку print '<pre>'. check_plain(print_r($form_values)) .'</pre>';)
  •  $node: текущая нода (так же можно разобрать с помощью print_r).
  •  $user: Текущий пользователь, заполнивший форму.
  •  $ip_address: IP адрес пользователя.
  •  $sid: уникальный номер заполненной формы.
  •  $cid: (практическое применение этого поля я не понял).

Пример стандартного webform-mail.tpl.php

 
<?php print t('Submitted on @date', array('@date' => format_date(time(), 'small'))) ?>
<?php if ($user->uid): ?> <?php print t('Submitted by user: @username [@ip_address]', array('@username' => $user->name, '@ip_address' => $ip_address)) ?>
<?php else: ?>
<?php print t('Submitted by anonymous user: [@ip_address]', array('@ip_address' => $ip_address)) ?>
<?php endif; ?>  
<?php print t('Submitted values are') ?>:  
<?php
  // Print out all the Webform fields. This is purposely a theme function call
  // so that you may remove items from the submitted tree if you so choose.
  // unset($form_values['submitted_tree']['element_key']);
  print theme('webform_mail_fields', 0, $form_values['submitted_tree'], $node);
?>  
<?php print t('The results of this submission may be viewed at:') ?>
<?php print url('node/'. $node->nid .'/submission/'. $sid, array('absolute' => TRUE)) ?>  

С постовым такого роста....:

Если вы живете в Курске и надумали сделать свой сайт, то специально для Вас разработка и создание сайтов в курске