Cómo usar [envío: valores] en la plantilla de correo electrónico en formularios web

9

Tengo habilitado el módulo de versión Webform 7.x-4.0-alpha6.

Tengo un nodo de formulario web con 20 componentes de formulario. Agregué un correo electrónico en Configuración de correo electrónico y creé la plantilla de correo electrónico donde utilicé el token: [envío: valores] .

Luego pruebo el formulario web enviando un mensaje. El problema es que [envío: valores] imprime los valores de los componentes de una manera muy simple, sin línea de corte, sin punto y coma para marcar la diferencia entre el título y el valor de cada componente. Algo como:

Name Jhon
Addresss Myaddress 12 
CP 19932
....

Tener 20 componentes hace que el correo electrónico sea completamente ilegible

Mi pregunta es: ¿hay alguna forma (un token) de imprimirlos de una mejor manera, al menos agregando un punto y coma entre el título y el valor, y haciendo que el título aparezca en negrita ? o poner la salida en una tabla?

    Name: Jhon
    Addresss: Myaddress 12 
    CP: 19932

Sé que puedo imprimir los componentes de forma separada usando los tokens: [webform: {component} -title] para el título y [webform: {component} -value] para el valor

Y luego puedo diseñarlos. Pero esto es una pérdida de tiempo, ya que necesito que todos los componentes se muestren en la plantilla de correo electrónico.

Actualización: encontré este módulo pero no me ayuda: http://drupal.org/project/webform_tokens

chefnelone
fuente

Respuestas:

10

No tengo ese problema, pero sé cómo obtener valores especiales del formulario web.

Fichas de formulario web de los datos enviados. Incluye el valor y la etiqueta del campo. Reemplace el " ?" con la " Clave de campo ". Agregue " :nolabel" solo por el valor.

Entonces, puede usar [submission:values:?:nolabel], dónde ?está la clave de campo de su componente.

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

Para mí el resultado es el mismo que para [submission:values]:

Nombre: Kate
Dirección: Moscú, Rusia :)

Versión del formulario web: 7.x-4.0-alpha6 (7404).

El módulo de tokens de formulario web no es necesario.

Actualizar

Si está utilizando correo HTML, las etiquetas se envían a través de theme_form_element_labely se ven como <label>Title</label>\n.

Puedes anularlo webform-submission.tpl.php. Copie este archivo al tema para representar los correos electrónicos de admin/config/system/mailsystem.
Para agregar :, sugiero solo modificar la matriz de renderizado:

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

print drupal_render_children($renderable);

Pero puede generar sustituciones completamente usted mismo.

kalabro
fuente
2
lo que dijiste es una opción válida, pero tengo que repetir esta línea establecida 20 veces. Estoy buscando una línea para generar los 20 componentes a la vez.
chefnelone
@chefnelone Actualicé mi respuesta.
kalabro
Creo que estás cerca, pero ... Solo uso la función dpm para la matriz $ renderable y no hay $ item ['# title'] dentro. Quizás esté en la versión 3 del formulario web. Estoy usando la versión 4 beta6. Mira mi captura: content.screencast.com/users/chefnelone/folders/Snagit/media/…
chefnelone
1
Tu código es correcto Es solo que estoy anidando los componentes del formulario web y tendré que cambiar esta línea if (is_array($item) && !empty($item['#title'])) {para que funcione.
chefnelone
1

Utilice la opción Enviar correo electrónico como HTML del formulario web.

Esto está disponible si instala los módulos Mime Mail y Mail System , luego vaya admin/config/content/webformy configure el Formato en HTML .

Prem Patel
fuente
0

También tenga en cuenta que si está utilizando un componente Grid , debe llamar a ese token con la tecla de campo y luego la tecla de pregunta. Las cuadrículas se usan a menudo si estás haciendo una encuesta, por ejemplo, y le estás pidiendo a la gente que califique algo en una escala de 1-3, usando botones de radio para cada fila, como:

Pregunta de muestra:

Clasifique lo siguiente con 1 = alto, 3 = más bajo

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

Para imprimir el valor de la respuesta de la pregunta 2, usaría:
El valor de la pregunta 2 de Beer fue: [envío: valores: my_beer_field: phillips]

PWM
fuente