ユーザーごとにノードを既読としてマークするのが最善の解決策だと思います。
以下のシナリオは私が達成しようとしているものです:
a+b
。a+b
には、新しいコンテンツがあるため、読むことを要求するメールが届きます。a
はページに移動してコンテンツを読み取り、[これを読んだことを確認します]をクリックします。ユーザーa
は元に戻せません。a
は読み取りを確認したが、ユーザーb
はまだ確認していないことがわかります。私の最初の最初の考えは Flag 、 Views および Rules の組み合わせを使用することでした。
助言がありますか?
(質問のように) Flag 、 Views および Rules モジュールを使用することは、実際にこれを機能させる方法です。しかし、2(= a + b)を超えるユーザーがいる場合、 Views Bulk Operations(VBO) モジュールをこれに追加することもできます。詳細については、以下をお読みください...
- 管理者は、読み取りと確認が必要なノードを作成し、ユーザー
a+b
にフラグを立てます
Flag を使用して、ノードにフラグを付ける(1番目の)フラグを作成します。これは、最初に管理者が「user a+b
"(ご質問のとおり)、以下で詳しく説明します。このフラグのラベルは次のようになります。
実際にユーザーa+b
のフラグを設定するには(数十人いると想像してください...)、適切なビューを作成して( Views を使用)、そのようなユーザーa+b
のリストを作成する必要があります。 Views一括操作(VBO) を使用してそのビューを変換し、そのVBOリストによって実行される「操作」がルールコンポーネント( Rulesで作成されたもの)を実行するようにします )。
方法がよくわからない場合は、 Using Rules components with VBO "に関するビデオをご覧ください。また、後続の" Using Rules "もご覧ください。複数のパラメータを持つコンポーネント "ビデオ。
このVBOリストで使用される実際のルールコンポーネントは、単一のユーザーがノードにフラグを立てるルールにすぎません。ここでのトリックは、フラグを立てるユーザーとして使用する値です。処理されているVBOリスト行に含まれているuid
を使用する必要があります(VBOリストを使用する管理者である現在のuidではありません)。
- ユーザー
a+b
は、新しいコンテンツがあるため、読むことを要求するメールを受信します。
前のステップのルールコンポーネントを拡張(拡張)して、処理中の各ユーザーに電子メールを送信するという追加のアクションを追加します。電子メールの件名と本文をニーズに合わせて調整します。
- ユーザー
a
はページに移動してコンテンツを読み取り、[これを読んだことを確認します]をクリックします。ユーザーa
は元に戻せません
Flag を使用して、次のようなこのフラグのラベルを持つ(2番目の)フラグを作成します。
ユーザーa
がこのページにアクセスするときに必要なのは、そのユーザーa
が「私はこれを読んだことを確認しました」というリンクをクリックすることだけです。ユーザーa
がフラグを立てた後、ユーザーa
によってノードに設定された(1番目の)フラグを削除する必要があります(=フラグなし)。これは、次のような2番目のルールで実行できるものです。
ただし、ユーザーがa
にノードにフラグを設定した後(2番目のフラグを使用)、再度フラグを解除するためのリンクが表示されます。しかし、ユーザーa
が再びフラグを解除できないようにする必要があります。これを防ぐには、3番目のルールを作成して、このようなフラグ解除の試みを禁止するか、そのような試みをキャプチャして自動的に再度フラグを立てます。別のアプローチとして、カスタムテンプレートを使用する方法があります。これにより、フラグを解除するリンクが非表示になります。
- 管理者がページを表示すると、ユーザー
a
は読み取りを確認したが、ユーザーb
はまだ確認していないことがわかります。
Views ブロックを作成して、フラグが付けられていないすべてのユーザーをリストしますノードもう最初のフラグを付けます(これらはa
)。そして、まだフラグが付けられているすべてのユーザーをリストする同様のブロック最初のフラグを持つノード(これらはb
のようなユーザーです)。
注:上記のアプローチは完全にエンティティベースであり、 Legal モジュールによって提供される機能の一部の可能な代替案と見なされる場合があります(質問は同様のものである可能性があります)機能性)。
これは別の方法ですが、特定のコンテンツタイプのすべてのコンテンツで、すべての新しいコンテンツを既読にする必要がある場合にさらに役立ちます。
Webform モジュールを使用する場合、 Webform Default Fields を使用して、そのコンテンツタイプのすべてのインスタンスにデフォルトフォームを割り当てることができます。その後、各ノードは一意のWebフォームになります(ノードタイトルを引き継ぐ)。これにより、フォームごと、期間ごと、またはセッションごとに1つの送信を追加で示すことができます。また、ユーザー情報を簡単にダウンロードできます。 AJAXを利用しているため、ユーザーが単一の送信に制限されている場合、フォームは送信されると消えます。
コンテンツが変更され、もう一度読んでマークする必要がある場合(ユーザーごとに1回の送信に設定されている場合)、送信テーブルをクリアするとフォームが元に戻ります。