2012-05-07 11 views
0

adminは管理者から各ページにバックグラウンドイメージをアップロードすることができます。だから、基本的にページノード型はbackground_imageというフィールドを持っていて、そのイメージをCSSのdivの背景イメージに置きます。親ノードからのフィールドコンテンツの取得(Drupal)

また、car_articleという第2のコンテンツタイプもあります。これらのページは、それらのページノードの1つの下にリストされます。だから、基本的にサイトマップは次のようになります。

Cars (node type = page, parent) 
-Audi (node type = car_article, child page) 
-BMW (node type = car_article, child page) 
-Chevrolet (node type = car_article, child page) 

今私がする必要があるだろうか、この場合に車のページ、親ページから背景画像を取得することです。親ページからフィールドコンテンツを取得するにはどうすればいいですか?これは、ページがcar_articleノードタイプであれば常に動作する必要があります。自動的に親ページから背景イメージをロードしようとします。

ありがとうございます!

+0

これを達成する方法は誰も知りません。 – user1069269

+0

私はあなたが何をしようとしているかについてはっきりしていません。 Plsはリンクとコードを提供します。 –

答えて

0

私はhttp://drupal.org/project/menu_node_viewsを使ってそれを達成できると思います。

しかし、それはあなたが親メニューが上を向いているNID魔女を知ることができますhttp://drupal.org/project/menu_nodeで...

おそらく行き過ぎです。

2つのレベルでは、node_loadを多く実行しても問題はありません。あなたが再帰的にして、画像を見つけるまですべてのノードの読み込みを避けたいのであれば、それは難しいでしょう。

0

ただの提案ですが、arg()を使ってトップノードにアクセスしようとするとよいでしょう。

あなたのページには、
/車/ BMW
で、ノードは、あなたが車のノードのIDを取得するためにarg(1)を使用し、その後にそれをロードすることができ
/ノード/ care_node/bmw_node

構造化されている場合変数

$parentNode = node_load(arg(1)); 

ここでparentNodeを使用して、親のノードにアクセスできます。

あなたのサイトには、より複雑で、あなたが

0

を現在の引数を見つけるために、いくつかの計算を行うと、その後-1可能性があり、多くのレベルを持っている場合、私はここに同様の問題に直面し、私はフィールドに取得する方法ですが、私それはむしろ巻き込まれていると思う。

$menuParent = menu_get_active_trail(); 
reset($menuParent); //point to first 
next($menuParent); //jump next, to skip 'home' 
$firstItem = current($menuParent); 
$path = drupal_get_normal_path($firstItem['link_path']); 
$node = menu_get_object('node', 1, $path); 
$field = field_view_field('node', $node, 'background_image'); 
$sectionBgUrl = file_create_url($field[0]['#item']['uri']); 
関連する問題