【问题标题】:Getting field content from parent node (Drupal)从父节点获取字段内容(Drupal)
【发布时间】:2012-05-15 21:54:40
【问题描述】:

目前管理员可以将背景图片从管理员上传到每个页面。所以基本上页面节点类型有一个名为 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 节点类型,这将需要始终工作,它会自动尝试从父页面加载背景图像。

谢谢!

【问题讨论】:

  • 没有人知道如何做到这一点?
  • 我不清楚您要做什么。请提供链接和代码。

标签: drupal drupal-7 drupal-nodes


【解决方案1】:

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

但这可能有点矫枉过正......

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

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

【讨论】:

    【解决方案2】:

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

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

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

    例如

    $parentNode = node_load(arg(1));
    

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

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

    【讨论】:

      【解决方案3】:

      我遇到了类似的问题,这是我如何进入该领域的,但我认为它相当复杂。

      $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']);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-12-05
        • 1970-01-01
        • 1970-01-01
        • 2011-07-23
        • 1970-01-01
        • 1970-01-01
        • 2020-04-03
        • 2017-01-22
        相关资源
        最近更新 更多