「ユーザ参照」タイプで定義したフィールドに対して、固定のユーザではなく、”ログインユーザ”でフィルタをかけて表示させる方法を教えてください。

はじめまして。
Drupal初心者で、本サイトへも初めての投稿なので、わかりづらい箇所があると思いますがご了承ください。

以下のようなコンテンツを作成したいと考えていますが、
3つ目がうまくいきません。

 ①イベントを登録するためのコンテンツを作成したい。
 ②イベント登録時には、参加者をユーザから選択させたい。
 ③イベント一覧を表示する場合、各ログインユーザ毎に、自分が参加するイベントのみが表示されるようにしたい。

具体的には、以下のような設定を行っています。

 ①イベントというコンテンツタイプを作成。
 ②CCKにより「ユーザ参照」タイプで、ユーザを選択させる「参加者」フィールドを作成。

★★↓↓ここの設定方法を教えていただきたいと思います。★★

 ③VIEWSのフィルタの設定で、コンテンツの中から「参加者」にチェックを入れたところ、
  ユーザ名が固定で表示されて、その中から選択しなければならないため、
  ログインユーザ毎に表示する内容を変更することができない。

テキストフィールドみたいなものがあって、そこに「%user」的な変数を入れればうまくいくのでは?と思ったのですが、
ここでは、固定のユーザ名から選択するということしかできませんでした。

引数やリレーションシップに何かを設定することで解決するのでは?!とも思ったのですが、
うまくできませんでした。
解決策があればおしえていただきたいと思います。

恐れ入りますが、よろしくお願いします。

Comments

こんにちは、iwamaruさん VIEWSのフィルタの設

jun784's picture

こんにちは、iwamaruさん

VIEWSのフィルタの設定で、コンテンツの中から「参加者」にチェックを入れたところ、
  ユーザ名が固定で表示されて、その中から選択しなければならないため、
  ログインユーザ毎に表示する内容を変更することができない。

ログイン中のユーザーの絞り込みは自分も悩んだ記憶があります。
しかしよくViewsのフィルタの設定を見ると、

ユーザー: 現在
現在ログイン状態にあるユーザーでビューを絞り込みます。

という項目がありました。おお!なんてこった!

Twitterやっています。
http://twitter.com/jun784
Drupalつながりでよろしければ、フォローお願いします。

[ユーザー: 現在]を設定してみましたが…

jun784さん、コメントどうもありがとうございました。

[ユーザー: 現在]を設定したことにより、
自分のやりたいことに近づいた感触はありました。

ただ、その結果、以下のようになりました。

======【現状の状態】======

 『[ログインユーザ]=[コンテンツの作成者]
 の場合にのみ、
 そのコンテンツが表示される。』

======【目指す状態】======

最終的にやりたいことは、
[コンテンツの作成者]ではなく、

 『[ログインユーザ]=
 [参加者]というフィールド(ユーザ参照タイプ)で設定されたユーザ
 の場合にのみ、
 そのコンテンツが表示される。』

ということです。
(例:システム管理者が、○○イベントというコンテンツを作成し、
   その参加者として、AさんとBさんを設定したら、
   AさんとBさん(とシステム管理者)のみ、
   そのコンテンツが表示されて、
   参加者ではないCさんには表示されないようにしたい。
   現時点では、コンテンツ作成者である
   システム管理者のみ表示される状態になっている。)

======【新たな挑戦に対する質問】======

現在は、[コンテンツ作成者]=[ログインユーザ]という設定になっているので、
ここをリレーションシップ等を使用することによって、
[参加者]=[ログインユーザ]に変更することが
できるのではないかと考えています。

具体的に以下の操作をしたところ、
うまくいきませんでしたが、
なにかヒント等あれば教えていただきたいと思います。

 ①リレーションシップに、[コンテンツ: 参加者] を追加。
  ([Require this relationship] にはチェックなし。[Delta:] は[すべて]を選択。)

 ②フィルタで[ユーザ:現在]を追加し、それに①で作成した[参加者]リレーションシップを設定。
  ([Is the logged in user:] には、[はい]を選択。)

 →上記設定の結果、誰からも参照できなくなってしまいましたが…。

記述内容で不明点等あれば、詳細に記載しますので、
何でもよいので、引き続きコメントよろしくお願いします。

 『[ログインユーザ]=  [参加者]というフ

jun784's picture

ご丁寧に説明していただいて、ありがとうございます!
取り急ぎの流れですが、

 『[ログインユーザ]=
 [参加者]というフィールド(ユーザ参照タイプ)で設定されたユーザ
 の場合にのみ、
 そのコンテンツが表示される。』

の場合は viewsのarugmentsで
ユーザー参照をしているフィールドを指定して
デフォルトの引数を使用から
User ID from logged in userを選択すれば
ログイン中かつ参照されているユーザーの場合のみコンテンツを表示できます。

Twitterやっています。
http://twitter.com/jun784
Drupalつながりでよろしければ、フォローお願いします。

ありがとうございます、できましたっ!!!!

jun784さん、わかりやすいコメントどうもありがとうございます。

説明どおりに設定したら、
希望どおり表示させることができました!!!!!!!

なるほど、ここでは、引数を利用して設定することができたのですね。
大変勉強になりました。

投稿して良かったです。
どうもありがとうございましたm(_ _)m☆★

Japan

Group organizers

Group categories

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week