Drupal Views / Node Reference获得父母关系

时间:2013-02-27 09:44:09

标签: drupal drupal-views nodereference drupal-views-relationship

好的,抱歉这个标题,很难描述。我的问题如下:我有内容类型“产品类别”(由于多种原因不使用分类法)和“产品”。使用Node Reference将产品引用到其类别中。

我还有一个视图,它在类别页面上显示所有使用上下文过滤器的所有产品=> “来自URL的节点ID”。 我现在的问题是,当我点击产品时,我需要保持这种关系。当然,上下文过滤器不再知道产品类别的NID,因为当前的NID是我产品中的NID。

作品:/ category / xyz
不工作:/ category / xyz / myproduct(因为我需要“xyz”的nid,而不是“myproduct”)

有谁知道我如何告诉上下文过滤器获取父类别的NID?

2 个答案:

答案 0 :(得分:0)

不确定我是否完全理解,但是当您使用URL中的节点ID等上下文过滤器时,您可以选择要使用的参数。

对于此相对URL / category / xyz / myproduct,arg 1表示'category',arg 2表示'xyz'

可能有/ category / *和/ category / xyz / *的视图设置,然后设置在上下文过滤器中使用的URL的哪些部分不同。

这有帮助吗?

注意:arg设置应该是上下文过滤器中“提供默认参数”的下拉设置。

答案 1 :(得分:0)

由于缺乏更好的解决方案...对于产品页面,我添加了另一个视图显示并稍微改了一下:

  • 我添加了一个关系,并为类别
  • 选择了我的节点参考字段
  • 我将上下文过滤器更改为自定义PHP并提供了以下代码:

    $n = node_load(arg(1));
    return $n->field_product_product_category['und'][0]['nid'];
    

我不认为这个答案是被接受的,因为我不认为这是正确的方法。我加载了无论如何加载的节点,所以我认为我正在生成一个不必要的数据库调用以及与正确获取节点对象相关的所有东西。

也许有一天有人会有更好的答案。