Private Messages
スレッド形式の会話、ユーザーブロック、タグ付け、メール通知機能を備えた、ユーザー間のプライベートメッセージ機能を提供します。
privatemsg
概要
Private Messagesは、Drupal向けの包括的なプライベートメッセージモジュールで、ユーザー同士が直接メッセージをやり取りできます。モジュールはスレッド形式の会話システムを実装しており、メッセージはスレッドにグループ化され、1対1の会話と複数の参加者によるグループチャットの両方をサポートしています。
このモジュールは、リッチテキストフォーマット対応のメッセージ作成、既読/未読ステータスの追跡、整理のためのスレッドタグ付け、ユーザーブロック機能、設定可能なメール通知など、充実したメッセージング体験を提供します。ユーザーは、Views Bulk Operationsを利用したフィルタリングや一括操作が可能な専用の受信トレイインターフェースで会話を管理できます。
開発者向けには、メッセージとスレッドをプログラム的に作成するための堅牢なAPIサービス、ブロック/ブロック解除機能を拡張するためのhookを提供しています。また、Drupal 6およびDrupal 7のPrivate Messageモジュールからの移行パスも含まれています。
Features
- 1対1およびグループ会話をサポートするスレッド形式のプライベートメッセージシステム
- 設定可能なテキストフォーマットによるリッチテキストメッセージ作成
- 新着メッセージの視覚的インジケーター付き既読/未読ステータス追跡
- 迷惑メッセージを防止するユーザーブロックシステム(ブロック不可の役割を設定可能)
- 会話を整理するためのTaxonomy用語を使用したスレッドタグ付け
- 新着メッセージのメール通知(ユーザーごとに設定可能)
- Views Bulk Operationsによる一括操作サポート(既読/未読マーク、削除、タグ変更)
- デフォルト画像へのフォールバック付きメッセージスレッドでのユーザーアバター表示
- グループ会話からの退出機能
- メッセージ送信権限を制御する役割ベースの権限設定
- 苦情処理のためのモデレーター役割設定
- 設定した日数経過後の削除済みメッセージの自動削除
- ユーザーがメッセージ機能の有効/無効を切り替えられるユーザープロファイル連携
- ユーザープロファイルページでのプライベートメッセージ送信リンク
- 遅延読み込みによるアカウントメニューでの未読メッセージ数表示
- メッセージとスレッドを作成するためのプログラム用API
- Drupal 6およびDrupal 7からの移行サポート
Use Cases
コミュニティフォーラムのプライベートメッセージ
フォーラムメンバー間のプライベートなコミュニケーションを可能にします。ユーザーは互いにダイレクトメッセージを送信し、プライベートにトピックについて議論し、迷惑な連絡先をブロックできます。モデレーターは不適切なメッセージに関する苦情を受け取ることができます。
カスタマーサポートコミュニケーション
顧客がサポートスタッフとプライベートにやり取りできるようにします。サポート役割をブロック不可に設定して、常に顧客に連絡できるようにします。タグを使用してサポートスレッドをトピックやステータスで整理します。
チームコラボレーション
プロジェクトチーム向けのグループメッセージを有効にします。複数のユーザーが1つのスレッドに参加し、更新を共有し、新着メッセージのメール通知を受け取ることができます。
Eコマースの売り手・買い手間メッセージ
買い手と売り手が商品や注文についてやり取りできるようにします。ユーザーはスパマーをブロックしながら、正当な連絡先とのオープンなコミュニケーションを維持できます。
プログラムによる通知
カスタムモジュールからの自動プライベートメッセージ送信にAPIサービスを使用します。例えば、新規ユーザーへのウェルカムメッセージやコンテンツ更新についての通知メッセージを送信できます。
Tips
- Taxonomyタグ付け機能を使用して、プロジェクト、優先度、カテゴリごとにスレッドを整理し、管理を容易にします。
- サイトレベルでメール通知を設定し、ユーザーがプロファイルでオプトイン/オプトアウトできるようにして、柔軟な通知設定を実現します。
- モデレーター役割を設定し、設定で構成することで、ユーザーが不適切なメッセージを報告できるようにします。
- 高トラフィックサイトでは、ストレージ使用量と監査要件のバランスを取るために「削除済みメッセージを削除」の日数設定を調整することを検討してください。
- 本番環境に移行する前に、Devel Generateプラグインを使用して大量のメッセージでテストしてください。
- プログラム用API(privatemsg.commonサービス)により、自動メッセージング用のカスタムモジュールとの統合が可能です。
- Private Messagesブロックをサイドバーに配置すると、フルページに移動せずに受信トレイにすばやくアクセスできます。
Technical Details
Admin Pages 7
/admin/config/content/privatemsg-settings
メッセージ保持期間、メッセージ送信を許可する役割、モデレーターの割り当て、ブロック不可の役割など、Private Messagesモジュールのグローバル設定を行います。
/admin/structure/privatemsg-message
プライベートメッセージEntityタイプのEntity設定ページ。メッセージのフィールド表示設定を行えます。
/admin/structure/privatemsg-thread
プライベートメッセージスレッドEntityタイプのEntity設定ページ。スレッドのフィールド表示設定を行えます。
/messages
すべてのプライベートメッセージスレッドを表示するユーザー向けの受信トレイページ。件名、メンバー、タグで検索するための公開フィルターを含みます。Views Bulk Operationsによる既読/未読マーク、削除、タグ変更などの一括操作をサポート。スレッドの件名、参加者、最終更新時刻、メッセージ数、タグを表示します。
/messages/new
新しいプライベートメッセージを作成・送信するためのフォーム。ユーザーは1人以上の受信者、オプションの件名、メッセージ本文を指定できます。
/messages/blocked
プライベートメッセージの送信をブロックしているユーザーを管理します。現在ブロック中のユーザーを表示し、追加のユーザーをブロックできます。
/messages/view/{thread_id}
すべてのメッセージ、参加者情報、タグ、返信フォームを含む完全なメッセージスレッドを表示します。ユーザーアバター、タイムスタンプ、既読/未読インジケーターを表示し、ユーザーのブロックやメッセージ削除のアクションを提供します。
権限 7
Hooks 2
hook_privatemsg_block_user
ユーザーが他のユーザーをブロックしたときに呼び出されます。モジュールがユーザーブロックに反応できるようにします。
hook_privatemsg_unblock_user
ユーザーが他のユーザーのブロックを解除したときに呼び出されます。モジュールがユーザーブロック解除に反応できるようにします。
Drush Commands 1
drush privatemsg:1to2
モジュールの1.xバージョンから2.xのEntity基盤構造にプライベートメッセージデータを移行します。レガシーのpm_message_oldおよびpm_index_oldテーブルから読み取り、新しいメッセージおよびスレッドEntityを作成します。
Troubleshooting 5
両方のユーザーが「プライベートメッセージの送信を許可する役割」設定で有効な役割を持っていること、両方のユーザーがプロファイルでメッセージ機能を有効にしていること(プロファイルを編集 > プライベートメッセージ > プライベートメッセージを有効にする)、どちらのユーザーも相手をブロックしていないことを確認してください。
受信者がプロファイル設定で「着信プライベートメッセージのメール通知を受け取る」を有効にしていること、Drupalのメールシステムが正しく設定されていることを確認してください。
Cronが定期的に実行されていることを確認してください。削除されたメッセージは、「削除済みメッセージをDBから削除するまでの日数」設定で構成された日数後にCronジョブによって完全に削除されます。
そのユーザーが「これらの役割を持つユーザーをブロックできない」で設定された役割を持っている可能性があります。管理者は通常、サポートスタッフなどの重要な役割をブロック不可に設定します。
カウントはキャッシュなしの遅延ビルディングを使用します。問題が続く場合は、すべてのキャッシュをクリアし、pm_thread_historyおよびpm_indexデータベーステーブルが正しく設定されていることを確認してください。
Security Notes 5
- 「administer privatemsg」権限はすべてのメッセージと設定への完全なアクセスを付与します - 信頼できる管理者にのみ割り当ててください。
- ユーザーブロックはメッセージ送信のみを防止します。既存のメッセージはどちらの当事者からも非表示になりません。
- メール通知にはメッセージスレッドへのリンクが含まれます - これらのリンクを保護するためにサイトがHTTPSを使用していることを確認してください。
- 「削除済みメッセージを表示」権限は削除後もメッセージ内容の表示を許可します - この権限を誰に付与するか慎重に検討してください。
- メッセージはDrupalのテキストフォーマットシステムを使用します - XSS攻撃を防ぐために適切なフォーマットが利用可能であることを確認してください。