ウェブフォームのメールテンプレートで[submission:values]を使用する方法


9

Webform 7.x-4.0-alpha6バージョンモジュールを有効にしています。

20個のフォームコンポーネントを持つWebformノードがあります。メール設定にメールを1つ追加し、トークンを使用するメールテンプレート[submission:values]を作成しました。

次に、メッセージを送信するWebフォームをテストします。問題は、[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

私はそのような問題はありませんが、Webフォームから特別な値を取得する方法を知っています。

送信されたデータからのWebformトークン。値とフィールドラベルが含まれます。「?」を「フィールドキー」に置き換えます。:nolabel値だけに「」を追加します。

だから、あなたは使用することができる[submission:values:?:nolabel]場所、?あなたのコンポーネントのフィールドのキーです。

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

私にとって結果はと同じです[submission:values]

名前:ケイト
アドレス:モスクワ、ロシア:)

Webformバージョン: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のコンポーネントすべてを一度に出力する1行を探しています。
chefnelone

@chefnelone回答を更新しました。
kalabro

あなたは近いと思いますが... $ renderable配列にdpm関数を使用しているだけで、$ item ['#title']は含まれていません。Webフォームバージョン3を使用している可能性があります。私はバージョン4 beta6を使用しています。私のキャプチャを見て:content.screencast.com/users/chefnelone/folders/Snagit/media/...
chefnelone

1
あなたのコードは正しいです。それは単にWebformコンポーネントをネストしているだけであり、機能if (is_array($item) && !empty($item['#title'])) {させるためにこの行を変更する必要があります。
chefnelone

1

WebフォームのHTMLオプションとして電子メール送信を使用します

これは、MIMEメールモジュールとメールシステムモジュールをインストールしてからadmin/config/content/webform、[ 形式]に移動して[ 形式]を[ HTML ]に設定した場合に使用できます


0

また、グリッドコンポーネントを使用している場合は、フィールドキーと質問キーの両方でそのトークンを呼び出す必要があることにも注意してください。グリッドは、たとえば調査を行っているときに、各行に次のようなラジオボタンを使用して、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]でした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.