0

目前,管理员可以将背景图片从管理员上传到每个页面。所以基本上页面节点类型有一个名为 background_image 的字段,然后我使用 CSS 将该图像放置到 div 的背景图像中。

我还有第二种内容类型,称为 car_article。这些页面列在这些页面节点之一下。所以基本上站点地图看起来像这样:

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 节点类型,这将需要始终工作,它会自动尝试从父页面加载背景图像。

谢谢!

4

3 回答 3

0

我想你可以通过使用http://drupal.org/project/menu_node_views来实现。

但这可能是矫枉过正...

使用http://drupal.org/project/menu_node,您可以知道父菜单指向的女巫。

对于两个级别来说,在更多的 node_load 上运行并不是很大的问题。困难的是,如果你想让它递归并避免加载每个节点,直到你找到一个带有图像的节点..

于 2012-06-17T16:40:20.997 回答
0

我面临着类似的问题,这就是我如何进入该领域,但我认为这相当复杂。

$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']);
于 2014-06-26T10:05:18.023 回答
0

只是一个建议,但您可以尝试使用 arg() 访问顶部节点

例如,如果您的页面是
/cars/bmw
并且节点是结构化的
/node/care_node/bmw_node

您可以使用arg(1)获取汽车节点的 id,然后将其加载到变量中

例如

$parentNode = node_load(arg(1));

现在您可以使用parentNode来访问父节点。

如果您的网站更复杂并且您有很多级别,您可以做一些数学运算来找到当前的 arg 然后 -1

于 2013-03-07T16:30:34.713 回答