Facebookスタイルのユーザー通知を作成する方法は?


14

ハートビートを使用して、ルールトリガーを介してユーザーアクティビティのストリームを効果的に作成できました。ただし、ユーザーに新しいアクティビティを通知してもらい、facebookのように、またはほとんどの電子メールシステムの新しい電子メールカウントと同様に、新しいアクティビティの数を記録したいと思います。

Drupal 6にはこれをうまく実現できるモジュールがいくつかありましたが、Drupal 7ではどのようにこれを行うことができますか?

私はこの上で、非常に広範囲な研究を行ったが、この時点で右のモジュールを見つけることができませんしている:ありますユーザーの通知通知のみD6のバージョンが存在する以外の完璧なソリューションになりモジュールは、。適切なルールのサポートがないため、アクティビティログモジュールと統合できない通知があります。2つの興味深い実装は、ドロップダウントレイにアクティビティのリストを提供するAppbarTaskbarです。ただし、新しいアクティビティの数はカウントせず、ルールと統合しません。最後にDLike現時点ではフラグのみをカウントし、フラグを立てたユーザーのリストへのリンクを提供しますが、動的カウンターとしては優れています。おそらく、いくつかの微調整を行うことで、フラグルールの統合を介して使用して、最近の(フラグ付き)アクティビティを追跡し、これらの最近のアクティビティのリストにリンクできます。

Drupal 7でこれと同様の機能を実現することは可能ですか? フェイスブック


1
これは答えではありません。同じ種類の要件があり、機能性に適したモジュールはありませんでした。だから私はドロップダウンと詳細で通知の数を表示するカスタムブロックでこれを達成しました。リアルタイム通知の場合、nodejsモジュールを使用して新しい通知を追加します。nodejsのイベントは、PHPコードを使用してルールから呼び出されます。
j2r


:私はこのような何か持ってdrupal.stackexchange.com/questions/158932/...
drupaluser

回答:


4

アプローチ1:メニューバッジ

メニューバッジモジュールを使用して、このような通知を任意のメニュー項目メニュータブ追加します。以下に、プロジェクトページからの詳細を示します。

iOSスタイルのバッジをメニュー項目に追加する方法を提供します。(スクリーンショットを参照)

ここに画像の説明を入力してください

メニューへのバッジの追加

有効にしたら、に移動してAdministration > Structure > Menus、ターゲットアイテムを含むメニューの横にある[リストリンク]をクリックします。アイテムの横にある[編集]をクリックし、[メニューバッジの表示]選択ボックスで表示するバッジを選択します。

タブへのバッジの追加

メニュータブにバッジを追加するために、Administration > Structure > Menus「タブメニューバッジ」というタブがあります。変更するタブのメニュールーターパスを検索し、対応する選択ボックスからバッジを選択します。

バッジの種類

モジュールには5つのサンプルバッジが含まれており、Viewsを使用して新しいバッジを簡単に作成できます。モジュールは、フック実装を使用して独自のバッジを提供することもできます。詳細については、README.txtファイルを参照してください。

Viewsモジュールとどのように統合するかにより、基本的に、あらゆるタイプの通知のソリューションを「適切なビューを作成するだけ」のようなものに減らします。

ビデオチュートリアル:

アプローチ2:メッセージスタック

これらのモジュールで構成されるメッセージスタックを使用します(引用はモジュールのプロジェクトページから):

  • メッセージ

    メッセージモジュールは、メッセージスタックの中核です。これにより、さまざまなユースケースでシステムイベントのロギングと表示が可能になります。長期にわたって記録されるイベントは、コールアクティビティストリームである場合があります。エクスポート可能なメッセージサブタイプは、カスタムフィールドと表示(表示)モードを使用して、さまざまなユースケース用に作成できます。

  • メッセージ通知

    このモジュールは、通知プラグインを介してメッセージを送信するためのメソッドを提供します。Message Notifyには電子メールとSMSのプラグインが付属しており、必要に応じて他のトランスポートメカニズムに拡張できます。

  • メッセージ購読

    このモジュールを使用すると、コンテンツをサブスクライブするユーザーは、そのコンテンツに関連するイベントが発生したときに通知されます。このモジュールは、ユーザーにサブスクライブ機能を提供するFlagモジュールを活用します。

メッセージスタックの基本的なコンポーネントと依存関係は次のとおりです。

ここに画像の説明を入力してください

Commerce KickstartDrupal CommonsERPALOpen Atriumなど、このメッセージスタックにすでに採用されているかなり人気のあるDrupalディストリビューションます。

自分の環境でメッセージスタックを詳しく調べたい場合は、Answersモジュール(開示:私は共同管理者です)とAnswers Notificationサブモジュールを使用して、ログインを許可します。ユーザーが選択した質問をサブスクライブして、質問が回答を受け取ったときに(メッセージスタックを使用して)通知を受け取るようにします。

また、メッセージスタックにより、モジュールのオブジェクト指向アーキテクチャのために、Drupal 8のポジショニングも良好になります。8.x-devのようなものはまだありませんが、メッセージコードリポジトリには既に何かが含まれいます(他の2つのモジュールにはまだありません)。wipブランチ名の一部が「Work In Progress」を表していると思います。


will make you well positioned for Drupal 8 also.あなたは将来意味するのですか?どのメッセージモジュールにも、Drupal 8バージョンはまだありません。開発者もいません。
なし15年

1
ちょっと@NoSssweat ... D8の部分を明確にするために、答えを少し(そして最後に)拡張しました。
-Pierre.Vriens

親切な返信@ Pierre.Vriensに感謝します。メッセージスタックについて明確なアイデアがあることを期待して、すべての関連ドキュメントをチェックします。
CharbelEl Azzi

1
私は私のウェブサイト上のユーザー間で通知システムを機能させる方法に精通していることを意味し、今私は嬉しいメッセージスタックについてより多くを学びましたが、そのようなドロップダウン通知メニューをどのように設計できるかについてはまだ混乱しています。 。
CharbelエルAzzi

1
私の問題をより理解するための別の例:コマースキックスタート2 Webサイトでショッピングカートにカーソルを合わせたときのドロップダウンメニューをご覧ください(キックスタートの配布に精通している場合)...私の質問... @ Pierre.Vriensの貴重な時間と労力に感謝します。
シャルベルエルアッツィ

3

これに使用するのに最適だと思う比較的新しいモジュールのペアがあります:MessageMessage-notifyです。

メッセージは基本的に「メッセージ」を作成するためのフレームワークであり、これは通知アイテムになります。クールなことの1つは、これらはすべてエンティティとして実際に作成されるため、ドロップダウンブロックに表示し、[すべての通知]ページを表示し、それらにカスタムフィールドまたはフラグが表示されているかどうかを簡単に確認できることです。見た(または新しい)。次に、Message-notifyモジュールを使用して、これを電子メール通知に接続できます。

ただし、これをサイトに統合することは、サイト構築タスクよりも開発タスクになることに注意してください。このモジュールには、適切なフックなどで使用して必要なときにメッセージを作成できる優れたAPIがありますが、ルールの統合がどのように進んでいるかはわかりません。


3

リアルタイム統合の場合、nodejsモジュールを使用できます。

このモジュールは、Node.jsとDrupalを統合します。

これは、他のモジュールがDrupalにリアルタイム機能を追加するために使用できるAPIを提供し、特に接続されたクライアントを開くために更新をプッシュできるようにします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.