web-dev-qa-db-ja.com

ルールを使用してノードにフラグを付けたすべてのユーザーにメールを送信するにはどうすればよいですか?

ノードにフラグを付けたすべてのユーザーにノードに関する新しいコメントがある場合、メールを送信する必要がありますか?どうすればよいですか?

フラグは「フォロー」と呼ばれ、コンテンツタイプは「ブログ」です。

6
Nigel Waters

エクスポートされたコードは、フラグモジュールを使用して、フラグタイプを「フォロー」としてブログコンテンツタイプに添付することを前提としています。

要約として:

  • ルールイベントを「ブログコメントタイプの新しいコメントを保存した後」に設定します。
  • 条件をなしのままにします。
  • アクションを設定
    • ステップ1:「ノードにフラグを設定したユーザーを取得する」とフラグを設定したすべてのユーザーを取得します。
    • step2:リストをループします。
      • ステップ2.1:メールを送信する

これは、要件に従って構成された私のルールのエクスポートです。

{ "rules_email_on_blog_comment" : {
    "LABEL" : "Email On Blog Comment",
    "PLUGIN" : "reaction rule",
    "TAGS" : [ "blog", "email" ],
    "REQUIRES" : [ "flag", "rules", "comment" ],
    "ON" : { "comment_insert--comment_node_blog" : { "bundle" : "comment_node_blog" } },
    "DO" : [
      { "flag_fetch_users_node" : {
          "USING" : { "flag" : "follow", "node" : [ "comment:node" ] },
          "PROVIDE" : { "users" : { "users" : "Users who flagged" } }
        }
      },
      { "LOOP" : {
          "USING" : { "list" : [ "users" ] },
          "ITEM" : { "list_item" : "Current list item" },
          "DO" : [
            { "mail" : {
                "to" : "[list-item:mail]",
                "subject" : "New Comment",
                "message" : "There is a new comment on the flagged blog post",
                "from" : "[site:mail]",
                "language" : [ "" ]
              }
            }
          ]
        }
      }
    ]
  }
}
7
arpitr