Private Messages

スレッド形式の会話、ユーザーブロック、タグ付け、メール通知機能を備えた、ユーザー間のプライベートメッセージ機能を提供します。

privatemsg
3,431 sites
29
drupal.org

概要

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
Private Messages設定 /admin/config/content/privatemsg-settings

メッセージ保持期間、メッセージ送信を許可する役割、モデレーターの割り当て、ブロック不可の役割など、Private Messagesモジュールのグローバル設定を行います。

PrivateMsgメッセージ設定 /admin/structure/privatemsg-message

プライベートメッセージEntityタイプのEntity設定ページ。メッセージのフィールド表示設定を行えます。

PrivateMsgスレッド設定 /admin/structure/privatemsg-thread

プライベートメッセージスレッドEntityタイプのEntity設定ページ。スレッドのフィールド表示設定を行えます。

プライベートメッセージ(受信トレイ) /messages

すべてのプライベートメッセージスレッドを表示するユーザー向けの受信トレイページ。件名、メンバー、タグで検索するための公開フィルターを含みます。Views Bulk Operationsによる既読/未読マーク、削除、タグ変更などの一括操作をサポート。スレッドの件名、参加者、最終更新時刻、メッセージ数、タグを表示します。

新規メッセージを作成 /messages/new

新しいプライベートメッセージを作成・送信するためのフォーム。ユーザーは1人以上の受信者、オプションの件名、メッセージ本文を指定できます。

ブロック中のユーザー /messages/blocked

プライベートメッセージの送信をブロックしているユーザーを管理します。現在ブロック中のユーザーを表示し、追加のユーザーをブロックできます。

メッセージスレッドを表示 /messages/view/{thread_id}

すべてのメッセージ、参加者情報、タグ、返信フォームを含む完全なメッセージスレッドを表示します。ユーザーアバター、タイムスタンプ、既読/未読インジケーターを表示し、ユーザーのブロックやメッセージ削除のアクションを提供します。

権限 7
privatemsgメッセージ設定を管理

Private Messages設定の構成とメッセージ/スレッドEntityの管理への完全な管理者アクセスを付与します。これは制限付きアクセス権限です。

メッセージの作成と表示

ユーザーがプライベートメッセージを作成・送信し、メッセージスレッドを表示し、既存の会話に返信することを許可します。

メッセージアクションを使用

ユーザーが既読マーク、未読マーク、スレッド削除などのメッセージスレッドへの一括アクションを実行することを許可します。

自分のメッセージを削除

ユーザーがスレッド内の自分のメッセージを削除(論理削除)することを許可します。削除されたメッセージは削除を示すプレースホルダーを表示します。

削除済みメッセージを表示

ユーザーが作成者によって削除としてマークされたメッセージの内容を表示することを許可します。

役割へのメッセージ送信を許可

ユーザーが特定の役割を持つすべてのユーザーに一度にプライベートメッセージを送信することを許可します。

他のユーザーのブロックを許可

ユーザーが他のユーザーからのプライベートメッセージ送信をブロックし、ブロック中のユーザーリストを管理することを許可します。

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攻撃を防ぐために適切なフォーマットが利用可能であることを確認してください。