Como usar [envio: valores] no modelo de email nos Webforms


9

Eu tenho o módulo de versão Webform 7.x-4.0-alpha6 ativado.

Eu tenho um nó Webform com 20 componentes de formulário. Adicionei um email na Configuração de email e criei o modelo de email em que usei o token: [envio: valores] .

Depois, testo o formulário da web enviando uma mensagem. O problema é que [envio: valores] imprime os valores dos componentes de maneira muito clara, sem quebra de linha, sem ponto e vírgula para fazer a diferença entre o título e o valor de cada componente. Algo como:

Name Jhon
Addresss Myaddress 12 
CP 19932
....

Ter 20 componentes torna o email completamente ilegível

Minha pergunta é: Existe uma maneira (um token) para imprimi-los de uma maneira melhor, pelo menos adicionando um ponto e vírgula entre o título e o valor e tornando o título em negrito ? ou colocando a saída em uma tabela?

    Name: Jhon
    Addresss: Myaddress 12 
    CP: 19932

Sei que posso imprimir os componentes de maneira separada usando os tokens: [webform: {component} -title] para o título e [webform: {component} -value] para o valor

E então eu posso estilizá-los. Mas isso é perda de tempo, pois preciso que todos os componentes sejam mostrados no modelo de email

Atualização: Encontrei este módulo, mas não me ajuda: http://drupal.org/project/webform_tokens

Respostas:


10

Não tenho esse problema, mas sei como obter valores especiais do formulário da web.

Tokens de formulário da Web a partir de dados enviados. Inclui o valor e o rótulo do campo. Substitua o " ?" pelo " Field Key ". Anexe " :nolabel" apenas ao valor.

Então, você pode usar [submission:values:?:nolabel], onde ?está a chave de campo do seu componente.

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

Para mim, o resultado é o mesmo que para [submission:values]:

Nome: Kate
Endereço: Moscow, Russia :)

Versão do formulário da Web: 7.x-4.0-alpha6 (7404).

O módulo Webform Tokens não é necessário.

Atualizar

Se você estiver usando correio HTML, os rótulos serão exibidos via theme_form_element_labele se parecerão <label>Title</label>\n.

Você pode substituir webform-submission.tpl.php. Copie esse arquivo para o tema para renderização dos emails admin/config/system/mailsystem.
Para adicionar :, sugiro apenas modificar a matriz de renderização:

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

print drupal_render_children($renderable);

Mas você pode produzir substituições totalmente você mesmo.


2
o que você disse é uma opção válida, mas tenho que repetir essa linha definida 20 vezes. Estou procurando uma linha para produzir todos os 20 componentes de uma só vez.
Chefnelone

@chefnelone Atualizei minha resposta.
kalabro

Eu acho que você está perto, mas ... Eu apenas uso a função dpm para o array renderizável $ e não há $ item ['# title'] dentro. Talvez você esteja no webform versão 3. Estou usando a versão 4 beta6. Olhe minha captura: content.screencast.com/users/chefnelone/folders/Snagit/media/...
chefnelone

11
Seu código está correto. Só estou aninhando os componentes do formulário da web e precisarei alterar essa linha if (is_array($item) && !empty($item['#title'])) {para fazê-lo funcionar.
Chefnelone

1

Use a opção Enviar email como HTML do formulário da web.

Está disponível se você instalar os módulos Mime Mail e Mail System e , em seguida, acessar admin/config/content/webforme definir o formato como HTML .


0

Observe também que, se você estiver usando um componente Grid , precisará chamar esse token com a chave de campo e a chave de pergunta. As grades geralmente são usadas se você estiver fazendo uma pesquisa, por exemplo, e pedindo às pessoas que classifiquem algo em uma escala de 1 a 3, usando botões de opção para cada linha, como:

Exemplo de pergunta:

Classifique o seguinte com 1 = alto, 3 = mais baixo

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

Para imprimir o valor da resposta da pergunta 2, você usaria:
Cerveja O valor da pergunta 2 era: [envio: valores: my_beer_field: phillips]

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.