0

好吧,对不起这个标题,很难描述。我的问题如下:我有内容类型“产品类别”(出于多种原因,不要使用分类法)和“产品”。产品使用节点引用引用到它们的类别。

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

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

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

4

2 回答 2

0

由于缺乏更好的解决方案……对于产品页面,我添加了另一个视图显示并对其进行了一些更改:

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

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

我没有将此答案标记为已接受,因为我认为这不是正确的方法。我加载了无论如何都会加载的节点,所以我认为我正在产生不必要的数据库调用以及与正确获取节点对象相关的所有内容。

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

于 2013-03-06T10:52:01.110 回答
0

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

在此相对 URL /category/xyz/myproduct 的情况下,arg 1 指代“category”,arg 2 指代“xyz”

也许有一个 /category/* 和 /category/xyz/* 的视图设置,然后设置 URL 的哪些部分以不同的方式在上下文过滤器中使用。

这有帮助吗?

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

于 2013-02-27T09:53:59.363 回答