2011-10-14 10 views
1

各ユーザーのプロファイルノードに関連する特定のノードタイプのすべてのノードを特定のページ内に表示する必要があります。 これは私が持っているものである:彼らのユーザIDとDrupal:これらのノードのcckフィールドにそのユーザーのプロファイルnodeidがある場合のプロファイルに関連するノードの表示

  • ユーザ(例えば、UIDのA)
  • 各ユーザ(例えば、NODEIDのB)
  • NODEIDを含んCCKフィールドを持ついくつかのREGノードのプロファイルノードプロファイル・ノード(例えば、CCKフィールドC)

のIは、ページ内の各ユーザについてNODEIDのA. BことCCKフィールド内持つすべてREGノードを表示する必要があります。だから、usersregnodes/uidAというページに入って、そのユーザに関連するすべてのregnodeを見てください。彼らのcckフィールドCには、そのユーザのプロフィールnodeidであるノードnodeidBがあるからです。

私は関係と議論に苦しんでいます。 これまでのところ、Node:Content Profileという関係を作成する必要があります。 フィルタは、reg nodetypeである必要があります。 引数はユーザID(?)でなければなりません。 私はこの作業を行うことができません。なぜなら、私が試みたすべての組み合わせと試行錯誤が空白の結果になるからです。

私は本当にあなたの助けに感謝します! 感謝! Rosamunda

+0

私はまだこれに苦しんでおり、ビュー内で可能なすべての組み合わせを、関係や引数とともに試しました。しかし、それでもそれを得ることはできません。これに関するアイデア?少なくともポインタは?ありがとう!! – Rosamunda

答えて

1

これを行うには、ビューを使用できます。そのトリックは、引数の検証を変更することです。

私は右のそれを得た場合は、ビューへの引数としてUIDに合格する必要がありますが、その特定のUIDのコンテンツプロファイルのNIDを参照するノードを取得します。

これを実現するには、ビューを作成し、カスタムバリデーターで引数を設定する必要があります。

次のようにビューをビルドします。

  1. それはノードビューです。
  2. 引数を設定します。引数のnidを含むノード参照フィールドを選択します。
  3. 引数設定画面で、「バリデータオプション」を探します。
  4. "基本検証"の代わりに "PHPコード"を選択してください。
  5. 次のコード(PHPの開始タグと終了タグを使用していない)を使用してください:あなたは、コンテンツのプロファイルにUIDから引数の値を変更することができるはずです。この方法で

    $prev_arg = $handler->argument; 
    $handler->argument = content_profile_load('content_type_name', $prev_arg)->nid; 
    return $handler->argument; 
    

をnidでフィルタリングされたビューの結果を取得します。

関連する問題