ドルパル:ビュー 2 の複数のノード タイプからデータを取得しますか?
質問
...つまり、SQL で行うような単純な結合を作成するにはどうすればよいでしょうか?
次の情報が必要だとします。
ほんの一例として:
- 人のフルネーム
- 人の趣味。
彼のフルネームは (コンテンツ プロファイル) ノード タイプ「name_and_address」にあり、趣味は「hobbies」にあります。
SQL では、node.uid によってそれらをリンクします。リレーションシップの使用について少し見てきましたが、それは user-node-refs にも当てはまります。あるコンテンツ タイプと別のコンテンツ タイプで同じユーザーが必要なだけです。
では、どうすれば彼の名前と趣味を 1 つのビューで取得できるでしょうか?
解決
がありますどのようにhref="http://www.anelloconsulting.com/author_biographies_nodes_using_content_profile_and_views_modules_drupal_6"がのはこれが仕事をするんnoreferrer">ここrel="nofollow
もしない... ビューは、運がよければ、すでにこのためのモジュールが存在します加わり、フィルターなどのカスタムで拡張することができます。いくつかのモジュールでも、自分の意見プラグインを提供します。 あなたは、独自のビューのプラグインを書くことができます。 に注意すべき他の事は、ビューは常に答えではないということです。時には、カスタムクエリを書き込み、表示ハンドラは、はるかに少ない手間で、あなたがやりたいだろう。
他のヒント
ビューの関係セクションを見てください。これは、コンテンツの(すなわち結合)、異なるタイプ(すなわちテーブル)を関連付けることができます。これは、SQLに使用誰かに特に直感的ではないのですが、このビデオはそれの多くを説明しています。 http://www.drupalove.com/drupal-ビデオ/デモ - どのように使用-ビュー-2S-関係する
あなたは、彼らが表示される(および拡張によって、レンダリング場所を手動で指定するには、お使いのテンプレートファイルに views_embed_view()
に使用することができます右の別の下にあるビュー)。
あなたは選択のページに出て許可されているデータを編集するために)カスタムモジュール(modulename_embed_view($name, $display_id)
でこの関数をオーバーライドすることができます。
例):
function modulename_embed_view($name, $display_id) {
if (strcmp($_GET['q'], 'node/123') === 0) {
$view = views_get_view($name);
$view2 = views_get_view('second view');
$output = $view['some element'] . $view2['element'];
}
return $output;
}
私は、これは非常にハックであることを知っている - 私はちょうど1が手動でテンプレートファイルにビューをレンダリングし、修正するためにPHPを使用する方法を示したかった。
。