web-dev-qa-db-ja.com

グループモジュールを使用しているときに、新しいノードが追加された後にすべてのグループメンバーにメールを送信する方法

Group モジュールを使用して1つのグループを作成しました。そのグループには、1つのノードタイプと3つのメンバーがあります。

そのノードタイプの新しいノードを追加するたびに、グループメンバーに確認メールを送信したい。どうやってやるの?

メモ

1

グループモジュールのみを使用する

Group モジュールは、D7の Organic Groups モジュールの今後の代替案であり、現在利用できるのはベータ版のみです。 備考グループ、コミュニティ、およびCo モジュール(= GCC)は、もう1つの代替手段です(D7の公式リリース付き) 。

Groupモジュールは興味深い代替手段のようですが、これまでのところ、ドキュメントは(もしあれば)多くはありません。

入手可能な最良のドキュメントは、そのソースを読むことです。そうすることで、その Group Invite サブモジュール "group membersがグループに人々を招待することを許可することを学びました "、これは適切なメールをトリガーします。もちろん、これはこれらの招待状を送信したいユーザーが既にグループメンバーであることを意味します。しかし、この「関数」は実際にはあなたが探しているようではありません(ここでの私の回答に対する追加コメントに従って)。

代わりに、「新しいノードが作成されたときに特定のグループのグループメンバーに電子メールを送信する」必要があります。これを行うには、質問を3つのサブ質問(=タスク)に絞り込み、 Rules モジュールを使用してこれを実装してみます。

ルールモジュールも使用

ルールイベント

それは簡単で、多かれ少なかれ標準的なものです:新しいノードが作成されたとき

ルール条件

これはあなたのチャレンジ1です:「作成されたノードのノードタイプが何らかのグループに属している」場合のみ。

ルールアクション

ルールの「コンポーネント」を作成して電子メールを送信します(だれでもできますよね?)このようなコンポーネントの典型的なサンプルを次に示します(ルールのエクスポート形式で、コピーと貼り付けを介して独自の環境にインポートするだけです)。

{ "rules_send_email_notification" : {
    "LABEL" : "Send eMail notification",
    "PLUGIN" : "action set",
    "OWNER" : "rules",
    "REQUIRES" : [ "rules" ],
    "USES VARIABLES" : { "user_to_notify" : { "label" : "User to be notified", "type" : "user" } },
    "ACTION SET" : [
      { "mail" : {
          "to" : [ "user-to-notify:mail" ],
          "subject" : "New node was added",
          "message" : "New node was added for content type ...",
          "from" : "[site:mail]",
          "language" : [ "" ]
        }
      }
    ]
  }
}

明らかに、SubjectおよびContentメールのレビュー/チューニングが必要な場合がありますが、他のFromを使用することもできます。電子メールID。

これはあなたのChallenge 2です:そのようなeMailの「To」コンテンツ、つまりグループのすべてのメンバーのすべてのeMail IDを作成します。これが、上記のルールコンポーネントのuser-to-notify:mailの値です。

カスタムルールを記述します

上記の課題1と2に対処するには、基本的に2つのことを行うカスタムモジュールを記述します。

ルールに関連するコーディングサンプルをさらに探す場合は、 Rules URL引数 モジュールを確認することをお勧めします。これについての引用は次のとおりです(プロジェクトページから、ここに太字のマークアップが追加されています)。

...は、URL引数に基づいて2つのルール条件を提供します。

  • uRL引数が存在するかどうかを確認します。
  • uRL引数の値を比較します。

また、URL引数の値をルールの新しい変数として利用できるようにするactionも提供します。

新しく提供されたルールのアクションと条件は、ルール構成インターフェースの「URL引数」条件とアクショングループにあります。

使用方法の例については、 問題番号1686360のコメント# を参照してください。これは、「RLに量を渡す、つまり、site/content/node-title? amount = 10または/ node-title?= amount:1 "。

3
Pierre.Vriens

Rules モジュールをインストールして有効にします。これで、admin/config/workflow/rulesパスにすでに作成された非アクティブなルールがあることがわかります。このルールを有効にするだけで完了です。

1
Yatendra Singh