Как использовать [представление: значения] в шаблоне электронной почты в веб-формах


9

У меня включен модуль версии Webform 7.x-4.0-alpha6.

У меня есть узел Webform с 20 компонентами формы. Я добавил одно электронное письмо в настройках электронной почты и создал шаблон электронной почты, в котором использовал токен: [submission: values] .

Затем я тестирую веб-форму, отправив сообщение. Проблема в том, что [submission: values] распечатывает значения компонентов очень простым способом, без разрывов и точек с запятой, чтобы сделать разницу между заголовком и значением для каждого компонента. Что-то вроде:

Name Jhon
Addresss Myaddress 12 
CP 19932
....

Наличие 20 компонентов делает письмо полностью нечитаемым

Мой вопрос: есть ли способ (токен) напечатать их лучше, по крайней мере, добавив точку с запятой между заголовком и значением и сделав заголовок жирным ? или положить вывод в таблицу?

    Name: Jhon
    Addresss: Myaddress 12 
    CP: 19932

Я знаю, что могу распечатать компоненты отдельным способом, используя токены: [webform: {component} -title] для заголовка и [webform: {component} -value] для значения

И тогда я могу их стилизовать. Но это трата времени, так как мне нужно, чтобы все компоненты были показаны в шаблоне электронной почты

Обновление: я нашел этот модуль, но он мне не помог: http://drupal.org/project/webform_tokens

Ответы:


10

У меня нет такой проблемы, но я знаю, как получить специальные значения из веб-формы.

Токены Webform из представленных данных. Включает значение и метку поля. Замените " ?" на " Ключ поля ". Добавить " :nolabel" только для значения.

Таким образом, вы можете использовать [submission:values:?:nolabel], где ?находится ключ поля вашего компонента.

 Name: [submission:values:name:nolabel]
 Address: [submission:values:address:nolabel]

Для меня результат такой же, как и для [submission:values]:

Имя: Катя
Адрес: Москва, Россия :)

Версия веб-формы: 7.x-4.0-alpha6 (7404).

Модуль Webform Tokens не нужен.

Обновить

Если вы используете почту HTML, ярлыки выводятся через theme_form_element_labelи выглядят как <label>Title</label>\n.

Вы можете переопределить webform-submission.tpl.php. Скопируйте этот файл в тему для рендеринга электронных писем admin/config/system/mailsystem.
Чтобы добавить, :я предлагаю просто изменить рендер-массив:

if ($format == 'html') {
  foreach ($renderable as $i => $item) {
    if (is_array($item) && !empty($item['#title'])) {
      $renderable[$i]['#title'] .= ':';
    }
  }
}

print drupal_render_children($renderable);

Но вы можете вывести замены полностью самостоятельно.


2
То, что вы сказали, является допустимым вариантом, но я должен повторить этот набор строк 20 раз. Я ищу одну строку для вывода всех 20 компонентов одновременно.
Chefnelone

@chefnelone Я обновил свой ответ.
Калабро

Я думаю, что вы близки, но ... Я просто использую функцию dpm для массива $ renderable, и внутри нет $ item ['# title']. Может быть, вы находитесь на веб-форме версии 3. Я использую бета6 версии 4. Посмотрите мой
снимок

1
Ваш код правильный. Я просто вкладываю компоненты веб-формы, и мне нужно изменить эту строку, if (is_array($item) && !empty($item['#title'])) {чтобы она работала.
Chefnelone


0

Также обратите внимание, что если вы используете компонент Grid , вам нужно вызвать этот токен как с ключом поля, так и с ключом вопроса. Сетки часто используются, например, если вы проводите опрос и просите людей оценить что-либо по шкале 1-3, используя переключатели для каждой строки, например:

Образец вопроса:

Оцените следующее с 1 = высокий, 3 = самый низкий

+---------------+-----+-----+-----+
|   Breweries   |  1  |  2  |  3  |
+---------------+-----+-----+-----+
| Lighthouse    | [o] | [o] | [o] |
| Phillips      | [o] | [o] | [o] |
| Whistler      | [o] | [o] | [o] |
+---------------+-----+-----+-----+

Чтобы распечатать значение ответа только на вопрос 2, вы должны использовать:
Пиво. Вопрос 2 имел значение: [submission: values: my_beer_field: phillips]

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.