Rules を使用して、サイトに投稿された新しいコメントをすべての管理者ユーザーに通知します。
すべてのコメントに対して通知を機能させることはできますが、管理者以外によるコメントのみの通知に設定したいと思います。その後、管理者はコメントに対する独自の応答について通知されません。
ヒントはありますか?
注:これを行いたいのは、管理者ロールのみを指定するだけです。非管理者ロールである新しいロールが多数追加されるためです。 。これにより、サイト管理者が新しいロールを追加するたびにルールを更新する必要がなくなります。
あなたがやろうとしていることは非常に簡単です。あなたはアクティブで次のルールを持っていると思います:
イベント時コメントの公開後
(条件なし)
行う
ユーザーにメールを送信します(または通知方法にしたいものは何でも構いません。それは重要ではありません)。
必要なことは、それぞれのオプションをクリックして条件を追加することです。 [追加する条件]オプションで、次を選択する必要があります。"ユーザーはロールを持っている"で、[次へ]をクリックします。
次のページで、[ユーザー]オプションの"Published Comment Author"を選択し、管理者ロールを除くサイトのすべてのロールを選択します。残りは変更しないでください。
これで、管理者は非管理者からのみコメントの通知を受け取るようになります。
以前の(そして受け入れられた)答えは、この質問に答えるためのかなり良い解決策です。しかし、いくつかの課題があります。
そのため、答えの改善されたバージョンは、次のようなルールを使用することです(ルールのエクスポート形式)。
{ "rules_notify_admins_about_new_comments" : {
"LABEL" : "Notify admins about new comments",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"REQUIRES" : [ "rules", "comment" ],
"ON" : { "comment_insert" : [] },
"IF" : [
{ "NOT user_has_role" : {
"account" : [ "comment:author" ],
"roles" : { "value" : { "3" : "3" } }
}
}
],
"DO" : [
{ "mail_to_users_of_role" : {
"roles" : { "value" : { "3" : "3" } },
"subject" : "A new comment was posted for node with id [comment:node:nid] ...",
"message" : "This is to inform you that a new comment was added to the node with id [comment:node:nid] ... The comment can be found at [comment:url]"
}
}
]
}
}
このルールの詳細:
ルールUIを使用してこのルールを自分のサイトにインポートします。この質問で要求されたとおりに機能させるために必要な調整はありませんが、自分のニーズに合わせてメールのタイトルと本文を調整する必要がある場合があります。
考えてみてください。このルールを有効にした後、何が起こるかは問題ではありません。つまり、新しいユーザーに管理者ロールも付与されるか、新しいロールが追加されます(質問の「注」のように) 。サイトに対するそのような将来のすべての更新では、質問で要求されたビジネスロジックは、このカスタムルールに必要なメンテナンスなしで機能し続けます。