Group モジュールを使用して1つのグループを作成しました。そのグループには、1つのノードタイプと3つのメンバーがあります。
そのノードタイプの新しいノードを追加するたびに、グループメンバーに確認メールを送信したい。どうやってやるの?
メモ:
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 "。
Rules モジュールをインストールして有効にします。これで、admin/config/workflow/rulesパスにすでに作成された非アクティブなルールがあることがわかります。このルールを有効にするだけで完了です。