web-dev-qa-db-ja.com

管理者以外による新しいコメントを管理者に通知するルールを作成するにはどうすればよいですか?

Rules を使用して、サイトに投稿された新しいコメントをすべての管理者ユーザーに通知します。

すべてのコメントに対して通知を機能させることはできますが、管理者以外によるコメントのみの通知に設定したいと思います。その後、管理者はコメントに対する独自の応答について通知されません。

ヒントはありますか?

:これを行いたいのは、管理者ロールのみを指定するだけです。非管理者ロールである新しいロールが多数追加されるためです。 。これにより、サイト管理者が新しいロールを追加するたびにルールを更新する必要がなくなります。

2
user842

あなたがやろうとしていることは非常に簡単です。あなたはアクティブで次のルールを持っていると思います:

イベント時コメントの公開後

(条件なし)

行う

ユーザーにメールを送信します(または通知方法にしたいものは何でも構いません。それは重要ではありません)。

必要なことは、それぞれのオプションをクリックして条件を追加することです。 [追加する条件]オプションで、次を選択する必要があります。"ユーザーはロールを持っている"で、[次へ]をクリックします。

次のページで、[ユーザー]オプションの"Published Comment Author"を選択し、管理者ロールを除くサイトのすべてのロールを選択します。残りは変更しないでください。

これで、管理者は非管理者からのみコメントの通知を受け取るようになります。

3
F1234k

以前の(そして受け入れられた)答えは、この質問に答えるためのかなり良い解決策です。しかし、いくつかの課題があります。

  • 質問には、「すべての管理者ユーザー」に通知する必要があると記載されています。これは、ユーザーに通知を送信することとはまったく同じではありません(承認された回答で提案されています)。
  • その後、新しいロールが追加された場合は、カスタムルールも更新する必要があります(忘れないでください...)。

そのため、答えの改善されたバージョンは、次のようなルールを使用することです(ルールのエクスポート形式)。

{ "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を使用してこのルールを自分のサイトにインポートします。この質問で要求されたとおりに機能させるために必要な調整はありませんが、自分のニーズに合わせてメールのタイトルと本文を調整する必要がある場合があります。

考えてみてください。このルールを有効にした後、何が起こるかは問題ではありません。つまり、新しいユーザーに管理者ロールも付与されるか、新しいロールが追加されます(質問の「」のように) 。サイトに対するそのような将来のすべての更新では、質問で要求されたビジネスロジックは、このカスタムルールに必要なメンテナンスなしで機能し続けます。

0
Pierre.Vriens