web-dev-qa-db-ja.com

ルールとVBOで単一のメールを送信するにはどうすればよいですか?

VBOで編集するノードのビューがあります。このノードを作成者でフィルタリングします。このノードを編集する場合、ルールを使用して作成者にメールを送信しますが、VBOを使用して複数のノードを編集すると問題が発生します。実際、ルールはノードと同じ数のメールを送信します。

ビューでフィルター処理した作成者に電子メールを1つだけ送信するにはどうすればよいですか?

私はDrupal 7.を使用します。

更新:使用しているが機能しないルールを追加しました

{ "rules_send_mail_to_owner" : {
"LABEL" : "Send Mail to Owner",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"REQUIRES" : [ "rules", "rules_i18n" ],
"ON" : { "node_update--prenotazione" : { "bundle" : "prenotazione" } },
"DO" : [
  { "variable_add" : {
      "USING" : { "type" : "list\u003Cuser\u003E" },
      "PROVIDE" : { "variable_added" : { "variable_added" : "Added variable" } }
    }
  },
  { "list_add" : {
      "list" : [ "variable-added" ],
      "item" : [ "node:field-proprietario" ],
      "unique" : "1"
    }
  },
  { "LOOP" : {
      "USING" : { "list" : [ "variable-added" ] },
      "ITEM" : { "list_item" : "Current list item" },
      "DO" : [
        { "mail" : {
            "to" : "[email protected]",
            "subject" : "Prova notifica LCS",
            "message" : "Questa \u00e8 una prova\r\n[node:field-proprietario]\t",
            "from" : "[email protected]",
            "language" : [ "" ]
          }
        }
      ]
    }
  }
]
}
}
1
kb8

これはあなたが求めていることをするための青写真です:

  • 「ユーザーのリスト」として定義する新しい変数を作成します(後でこのリストを使用して「このリストをループする」に使用できます。 )。
  • (既存のルール内の)「電子メールの送信」を「アイテムをリストに追加」(新しい変数で作成したリストを使用)へのアクションに置き換えます。その際、「[ENFORCE UNIQUENESS]」をtrueに設定して、「アイテムがまだ含まれていない場合にのみリストに追加するようにします "(私がどこに行くのか見てください?).
  • 最後に、新しい変数の値には、uniqueユーザーのリストが含まれます。そのため、別のルールループを(最後に)追加して、そのリスト内の各ユーザーを反復処理します。そして、この追加のルールループで何ができるかを推測してください。確かに、各ユーザーにメールを送信します。また、各ユーザーはそのリストに1回しか含まれていないため、受信する電子メールは1つだけです。

簡単、いいえ

2
Pierre.Vriens