web-dev-qa-db-ja.com

webformブロックが送信されたら、ノードの作成者とサイト管理者にメールを送信します。

これは私が無料のブログのために私のウェブサイトに到達しようとするシナリオです:

  1. 作成されたユニバーサル webformContact authorwith fieldsnameemailおよびtextこれはブロックとして表示(webformをブロックとして表示)の下に表示すべてのブログノードタイプ。

  2. 読者がこのブロックを送信すると、送信された値はブログ投稿の著者(node author)、サイト管理者(me)および送信者(reader)メールに送信することもできます。

ウェブフォームを含む可能な解決策はありますか?そうするためのモジュールの最適な組み合わせは何ですか?Webフォームでない場合(私はいくつかのWebフォームソリューションを好みます)

更新:Webform 4.xの場合、トークン[current-page:node:author:mail]を「E-mail to address "E-mails"タブのあなたはより多くの詳細を見つけることができます このチュートリアルで私が書いた

1
Jasom Dotnet

最良の解決策(IMHO)は実際には機能しません。 Tokens モジュールを使用し、適切なトークンを使用して受信者フィールドに入力できるはずです。例:_[node:author:mail]_

ただし、Webフォームは独自の%somethingトークンをサポートしているように見え、これらは現在のユーザーとWebフォームID(ノードのIDではない)にのみ関連しています読まれている)。

したがって、代わりに、サイトの不可避のカスタムモジュールを記述し、 hook_mail_alter() を使用してToアドレスを変更します。

私が読んだ(そして今は失ってしまった)別のリソースは、Webフォームの受信者を「[email protected]」のような簡単に認識できるものに設定することを提案しました。

次に、hook_mail_alter()関数で、

  1. フォームのIDを確認し、
  2. 現在の投稿の著者を取得し、
  3. そのユーザーのメールアドレスを取得し、
  4. 受信者で使用します。 (あなたが好きなように、管理者とポスターとともに)
2