0

ユーザーが自分のコンテンツを他のユーザーと共有できるWebサイトを作成しているので、選択したユーザーだけがあなたのコンテンツを見ることができます。

イベントコンテンツタイプには、ユーザーがコンテンツを表示する目的のユーザーにチェックマークを付けることができる[ユーザー参照]フィールドがあります。これは良い解決策ですか?問題は、それらのイベントを表示するビューを作成しようとするときです。

誰か助けてもらえますか?

4

3 に答える 3

2

はい、Drupalでこれを実装するための標準的な(良い)方法は、ユーザー関係モジュールを使用することです。ユーザーリレーションシップをインストールして、ユーザーが他のユーザーとの新しいリレーションシップを作成できるようにします(たとえば、「友達」、「自分のものの一部を見ることができる」、「自分のものをすべて見ることができる」など)。

コンテンツを表示または一覧表示する前に、必要な関係が存在することを確認して、アクセス制御のアクセス許可を拡張するカスタムモジュールを作成する必要があります。これは、単純な手続き型ロジックで実行できますが、反復ループの構築方法に注意してください。これにより、サイトのユーザー数が増えるにつれてカスタムコードが拡張されます。

または、Flag Friendモジュールを使用することもできます。これは、URとほぼ同じ方法でユーザー間でフラグを定義できる、URの軽量な代替手段ですが、追加の複雑さはありません。

最後に、実際のユーザーケースによっては、グループ内でコンテンツを共有できるユーザーのグループを作成できるOG (Organic Groups)を確認することをお勧めします。

于 2013-02-17T17:07:02.497 に答える
1

Drupalのノードシステムは、きめ細かいアクセス制御を実装するためのAPIを提供します。このAPIは、 hook_node_grants()およびhook_node_access_record( )を実装することで使用されます。その前に、ノードアクセスモジュールの概要を見て、ニーズを満たすものがあるかどうかを確認してください。

于 2013-02-17T13:12:09.060 に答える
0

これを解決しました。共有フィールドで「ユーザー参照」データ型を使用する代わりに、「エンティティ参照」を使用する必要がありました。次に、「エンティティ参照」関係を目的のビューに追加し、user=currentuserをフィルタリングします。チャームのように機能します。私が理解している限り、エンティティ参照には検索フィールドがあるため、フィールドでログインしているユーザーを検索できます:)

于 2013-02-19T09:14:00.880 に答える