2010-12-16 10 views
1

私は2つのコンテンツタイプ、プロポーザルとアクションを持っているとしましょう。プロポーザルには複数のアクションが含まれますが、アクションも独立して表示する必要があります。それぞれには複数のテキストフィールドとリンクが含まれます。Drupalでは、ノードを別のノードに含めるにはどうしたらいいですか?

プロポーザルとアクションの両方をノードにする必要がありますか?これをどうやってやりますか?

答えて

3

本来、drupalには親子関係はありません。 CCKのノード参照といくつかのクリエイティブなビューを使用して、こうしたものを構築することができます。

+0

私が撮影しようとしているのは、全体の提案がアクション記述テキストを印刷するということです。私はCCK /ビューのコンボを調べるだろうと思う。 – samoz

+0

nodereferenceへの1つの注意点は、ビュー内で1つのレイヤーをドリルダウンすることしかできないことです。あなたが子供の子供を持っている場合は、ビュー内で見つける必要があります、あなたはそれのために何かを書く必要があります。 –

0

ビューブロック表示を使用してください。すべての(またはどれだけ必要なのか)を表示するビューのブロック表示を作成する必要があります。対応するProposalノードに関連付けられているアクションノード(Nid - デフォルト引数を提供するNode ID URLから)。次に、このブロックを提案ページを表すページに添付します。

2

は、Drupalの中にほとんどのものと同様に、これを行うためのいくつかの方法がありますが、それは私だった場合、私はこれを行うだろう:

  1. ビルド・ノードの関係をCCKに
  2. ロードに「子供を「node_loadとすなわち関連ノード()テンプレートファイルに
  3. は、新たにロードされたノードのうち、あなたがしたいビットを引いて、それをプリントアウトし、 『親』ノード

編集:はい、彼らは両方のノードでなければなりませんが。

この方法を使用する場合は、設定が完了したら、あなたの提案に入り、どのアクションを「含まれている」(リンクされている)かを選択する必要があります。そして、あなたは変数名が異なることになる。もちろん、

<?php 
$actions = $node->field_name_of_your_actions_link_field; 

foreach($actions as $action){ 
    $anAction = node_load($action[nid]); 
    $output .= $anAction->the_bit_you_need_to_get[0][content]; 
} 
?> 

に似たいくつかのコードをお勧めしますが、うまくいけば、これは右方向

+0

子ファイルをテンプレートファイルにロードするのではなく、親ノードがロードされているときにhook_nodeapiを使用して子ノードのデータをロードし、親ノードオブジェクトにフィールドを追加する方が良いでしょうか?次に、親データを使用する場合は、子データを使用できます。 – Graham

0

であなたを指しますそれらをプリントアウトする

あなたがに見たことがモジュールビュー?非常に堅牢で、ほとんど何でも表示できます。

ビューを使用する場合は、次のようなことを行います。2つのコンテンツタイプと、アクションをプロポーザルに結びつけるタクソノミのボキャブラリ(したがって、参照コンテンツフィールドをアクションコンテンツタイプに配置する)。

次に、コンテンツタイプの提案でフィルタリングするページビューを作成します。プロポーザルからすべてのフィールドを追加して注文することができますし、あなたの希望を表示するようにCSSを作成することもできます。

次に、もう1つのビュー(今回はブロック)が表示され、アクションのリストが表示され、そのコンテンツタイプでフィルタリングします。コンテキストフィルタを追加して、ロードしたノードのタクソノミーを取得します。このブロックをプロポーザルページに表示すると、アクションのリンクが表示されます。

私はこれが基本的にそれをカバーしていると思いますが、何かに遭遇すると実際にそうすることなく説明するのは少し難しいです。

ビューは素晴らしいです。ちょっと怖いですが、いったん使用するのがとても簡単です。あなたがすでにそれを知っていて、私はあなたの要求について何かを忘れていたなら、私の謝罪。

関連する問題