【问题标题】:Drupal Views relationshipDrupal 视图关系
【发布时间】:2010-10-05 16:34:04
【问题描述】:
在 Drupal 中,我有 3 种内容类型(A、B、C),请参阅 link。 A 和 C 包含对 B 的节点引用。
现在我有一个视图,可以从参数中查询 A 中的字段。我还想通过与 B 的关系芯片显示 C 中的字段,所以:
有人可以帮帮我吗?
【问题讨论】:
标签:
drupal
drupal-6
drupal-views
drupal-views-relationship
【解决方案1】:
目前,您可以通过节点引用轻松地从 A 转到 B,但由于链接是从 C 到 B,您无法获得到 C 的链接——这是当前的问题。
简而言之,您可以使用模块 Node Referrer 来解决问题(请参阅 http://drupal.org/node/431308 了解它的作用)。本质上,它创建了一个 只读 字段,告诉您从 C 指向 B 的所有节点(即为每个节点引用创建一种反向节点引用)。
假设我们有以下节点引用字段
- 在内容类型 A 中,我们有节点
引用字段名为
a_to_b_link
- 在内容类型 C 中,我们有一个名为的节点引用字段
c_to_b_link
- 在内容类型 B 中,我们有 Node Referrer 字段来跟踪所有
节点参考中的链接
c_to_b_link
创建相应的视图有点复杂。
- 首先为
Node: Type =
A添加一个过滤器
- 添加关系
a_to_b_link。确保勾选复选框
Require this relationship
- 从名为
Node:
Referrers 的节点组添加另一个关系。还要确保在您应该的关系设置中
在Relationship 下拉列表中选择a_to_b_link。换句话说,您正在建立一个使用预先存在的关系的关系(在概念上类似于 C++ 中的指向指针的指针)确保选中复选框Require this relationship。默认情况下,这种关系被 Drupal 命名为 Referencing Nodes。
- 现在像您一样从内容类型 A 中添加您想要的任何字段
通常在视图中。
- 当您想从内容类型 C 添加字段时,请确保您选择
关系
Referencing Nodes