Content Moderation Notifications
DrupalのContent Moderationモジュールを通じてコンテンツがモデレーション状態間を遷移する際に、ユーザーにメール通知を送信します。
content_moderation_notifications
インストール
composer require 'drupal/content_moderation_notifications:8.x-3.8'
composer require 'drupal/content_moderation_notifications:8.x-3.4'
概要
Content Moderation Notificationsモジュールは、コンテンツがワークフロー状態遷移を経る際に自動メール通知を可能にすることで、DrupalコアのContent Moderation機能を拡張します。これは、チームメンバーがコンテンツのステータス変更について通知を受ける必要がある編集ワークフローにおいて不可欠です。
このモジュールにより、サイト管理者は特定のワークフロー遷移をターゲットとする複数の通知ルールを作成できます。通知は、特定のロールを持つユーザー(アクセス検証付き)、コンテンツ作成者、カスタムメールアドレス、またはエンティティ参照フィールドで参照されているユーザーに送信できます。このモジュールは、メールの件名、本文、アドホックメールフィールドでTwigテンプレートをサポートしており、条件ロジックやエンティティフィールドへのアクセスを含む強力なカスタマイズオプションを提供します。
アドホックメール以外のすべての受信者は、送信前にアクセス権限がチェックされ、ユーザーが閲覧可能なコンテンツの通知のみを受信することが保証されます。メールは受信者のプライバシーを保護するためにBCCヘッダーを使用して送信され、サイトのメールアドレスをオプションでプライマリ受信者として含めることができます。
Features
- 異なるワークフロー遷移に対して複数の通知ルールを作成
- 指定されたロールを持つすべてのユーザーに通知を送信(エンティティ閲覧アクセス検証付き)
- コンテンツ作成者に通知を送信
- カスタム/アドホックメールアドレスに通知を送信
- コンテンツのエンティティ参照フィールドで参照されているユーザーに通知を送信
- メールの件名、本文、アドホックメールアドレスフィールドでTwigテンプレートをサポート
- メールコンテンツでのTokenの置換をサポート(Tokenモジュールがインストールされている場合は強化)
- 削除せずに個々の通知を有効化/無効化
- Twigテンプレートでエンティティおよびユーザーコンテキスト変数にアクセス(エンティティのタイトル、バンドル、所有者情報、現在のユーザー情報)
- メール本文コンテンツのテキストフォーマット選択
- Drupalコアで定義されたすべてのContent Moderationワークフローをサポート
- 受信者のプライバシーのためのBCCベースのメール配信
- エンティティ同期中(例:マイグレーション)の通知スキップ
- 送信前に通知データをカスタマイズするためのAlter hook
Use Cases
編集レビューワークフロー通知
コンテンツがレビューのために提出されたときに編集者に通知する設定を行います。「レビューのために提出」遷移用の通知を作成し、編集者ロールを受信者として割り当て、Twig変数を使用してタイトル、作成者、コンテンツへの直接リンクなどのエンティティ詳細をメール本文に含めます。
公開時の作成者通知
コンテンツが公開されたときに作成者に通知します。「公開」遷移用の通知を作成し、「作成者にメールを送信」オプションを有効にし、Twigテンプレートを使用して公開URLを含むお祝いのメッセージを作成します。
部門別通知
コンテンツフィールドで参照されている部門マネージャーに通知を送信します。コンテンツタイプにユーザーエンティティ参照フィールド(例:field_department_manager)を追加し、「エンティティ参照ユーザーフィールド」セクションでこのフィールドを選択します。マネージャーは自動的に自分の部門のコンテンツ遷移の通知を受信します。
Twigによる動的受信者リスト
アドホックメールアドレスフィールドでTwigテンプレートを使用して、コンテンツフィールドの値に基づいて受信者を動的に決定します。例えば、参照エンティティのメールフィールドにアクセス: {{ entity.field_department.entity.field_manager_email.0.value }}
条件付きメールコンテンツ
メール本文でTwig条件文を使用して、コンテンツのプロパティに基づいてメッセージをカスタマイズします。例えば、緊急コンテンツに特別な指示を追加したり、コンテンツタイプに基づいて異なる情報を含めたりできます。
複数ステップの承認ワークフロー
複雑な承認ワークフローの各ステップに個別の通知を作成します。下書きからレビュー、レビューから法務、法務から最終承認、最終承認から公開までの遷移に対して、それぞれ適切なチームメンバーをターゲットとする個別の通知を設定します。
Tips
- Tokenモジュールを使用して、通知テンプレートで利用可能なトークンを簡単にブラウズして挿入できます
- ロールに送信する場合、コンテンツを閲覧できるユーザーのみが通知を受信します - これにより情報漏洩が防止されます
- サイトのメールアドレスはデフォルトでプライマリ受信者として使用されます。BCC受信者のみに通知を送信したい場合は、「サイトのメールアドレスを無効にする」をチェックしてください
- 利用可能なTwig変数には、entity(コンテンツ)、user(現在のユーザー)、およびentity.title、entity.bundle、entity.owner.emailなどの短縮プロパティが含まれます
- Twig条件文とエンティティフィールドを組み合わせて、動的でコンテキストに応じた通知コンテンツを作成できます
- テンプレートが正しくレンダリングされることを確認するために、本番環境にデプロイする前に開発環境で通知をテストしてください
- マイグレーション中やエンティティが同期中の場合、通知は送信されません - これは通知の大量発生を防ぐための意図的な動作です
Technical Details
Admin Pages 6
/admin/config/workflow/notifications
設定されたすべてのコンテンツモデレーション通知を表形式で一覧表示します。各行には、通知ラベル、関連するワークフロー、ステータス(有効/無効)、トリガーとなる遷移、受信するロール、作成者にメールが送信されるかどうか、およびアドホックメールアドレスが表示されます。各通知の編集、削除、有効化、無効化の操作を提供します。
/admin/config/workflow/notifications/add
新しいコンテンツモデレーション通知ルールを作成するフォーム。通知をトリガーするワークフロー遷移、受信者、およびオプションのTwigテンプレートを使用したメールコンテンツを設定します。
/admin/config/workflow/notifications/manage/{content_moderation_notification}
既存のコンテンツモデレーション通知ルールを変更するフォーム。追加フォームのすべてのフィールドが編集可能です。
/admin/config/workflow/notifications/manage/{content_moderation_notification}/delete
コンテンツモデレーション通知ルールを完全に削除するための確認フォーム。
/admin/config/workflow/notifications/manage/{content_moderation_notification}/enable
無効化された通知ルールを有効化するための確認フォーム。有効化されると、設定された遷移が発生したときにメールが送信されます。
/admin/config/workflow/notifications/manage/{content_moderation_notification}/disable
アクティブな通知ルールを無効化するための確認フォーム。無効化された通知は、再度有効化されるまでメールを送信しません。
権限 1
Hooks 1
hook_content_moderation_notification_mail_data_alter
通知が送信される前にメールデータを変更することをモジュールに許可します。このhookは、すべての受信者が収集された後、メールが送信される前に呼び出されます。
Security Notes 4
- アドホックメールアドレスはアクセスチェックを受けません - 注意して使用し、信頼できるアドレスのみを含めてください
- ロールベースの受信者は、通知を受信する前にエンティティ閲覧アクセスが検証されます
- 受信者のプライバシーを保護し、全員への返信の問題を防ぐために、メールはBCCで送信されます
- このモジュールはDrupalのテキストフォーマットセキュリティを尊重します - メール本文コンテンツには適切なフォーマットを選択してください