1

Drupal 7 で、教師と生徒のユーザー フィールドを持つカスタム イベント コンテンツ タイプを作成しました。そのコンテンツの教師または生徒であるユーザーに対してのみコンテンツが表示されるビュー、つまりカスタム カレンダーを作成したいと考えています。

これまでのところ、user:uiduserを使用してContent: Teacher (field_teacher)にフィルターを作成しようとしました。構文の問題であることはわかっていますが、値をcurrentlyLoggedinUserにする必要があります

4

4 に答える 4

1

現在ログインしているユーザーの uid を取得するには、次のコード スニペットに従ってください。

global $user;
$uid = $user->uid;

これがうまくいくことを願っています...ムハンマド。

于 2012-07-12T08:11:16.090 に答える
0

最初にフィールドコンテンツ: 教師 (field_teacher)への関係を追加してから、フィルター オプションを再度チェックして、必要なオプションが利用可能かどうかを確認します。

于 2012-07-12T10:50:19.283 に答える
0

それは実際には非常に単純な解決策でした.2つのエンティティ参照(学生と教師)にコンテキストフィルターを作成し、「デフォルトが提供されていない場合」セクションに「現在ログインしているユーザーを使用する」を追加しました.

次に、hook_query_alter を使用してカスタム モジュールを作成し、コンテキスト フィルターの AND を OR に変更する必要がありました。

于 2012-07-13T01:15:56.290 に答える
0

2 つの異なる表示を作成し、 [アクセスビュー] オプションを使用して、ユーザーの役割に基づいてフィルター処理してみませんか?

その提案はさておき: 2 つのフィールドを使用して、コンテンツ タイプの教師と生徒を区別するべきではありません。単一のフィールド選択リストを使用します。値は、例として、学生の場合は 0、教師の場合は 1 になります。

次に、そのフィールドをContextual Filterとして追加し、[デフォルト値を提供]を選択して、タイプとしてPHP コードを使用します。次のコードを使用して、ユーザーの役割を判別し、適切な値を返します。

global $user;

if(in_array('student', array_values($user->roles))) {
  return 0;
} else {
  return 1;
}

ただし、最初の提案をお勧めし、役割に基づくアクセスを利用します。

于 2012-07-12T20:01:23.413 に答える