使用Drupal 7视图,将2种内容类型的数据字段合并为一行

时间:2012-04-28 20:54:10

标签: drupal-7 views drupal-views relationship

我一直在寻找一个没有运气的解决方案。

以下是设置:

TV Shows (vocabulary): show-1, show-2, show-3, ...

Episodes (content type)            Schedule (content type)
  - title                            - date/time episode airs
  - episode code <.................> - episode code
  - reference to TV Show term

1)首先,我试图创建一个“视图”,其中包含“电视节目”术语(或id)的参数,并基于此,列出与该节目相关的所有剧集以及这些剧集何时播出在未来播出。

一个大问题是内容类型“schedule”的节点没有链接到电视节目,因此所有这些节点都被排除在外。有没有办法根据输入显示链接到一集的所有“时间表”?

2)这个难题的第二部分是走向另一个方向,意味着给出了一天的视图,然后列出了那一天内的所有计划节点。并且由于每个日程安排节点都包含链接回“剧集”的“剧集代码”,因此从“剧集”节点获取具有匹配的“剧集代码”的相应信息。

听起来好像这两种场景需要两个单独的视图组合在一起,但这是否可能?

注意:当我说“剧集代码”链接两种内容类型时,没有真正的链接。我尝试在两个标有“剧集代码”的内容类型中只有一个文本字段。我也尝试创建一个词汇“剧集”,其中包含术语的剧集代码,然后两个内容类型都包含“剧集”词汇的字段。

1 个答案:

答案 0 :(得分:3)

当你创建其中一个视图时(要么显示给定分类的所有剧集,要么显示给定时间内所有剧集的视图) - 是的,那些听起来像两个单独的视图 - 只需确保展开视图的“高级”部分即可。继续添加“关系”,以便您可以访问引用内容类型的字段。

例如,假设您正在创建第一个视图。在这种情况下,它将是剧集的视图,您将使用分类术语作为过滤器。为了能够显示在剧集内容类型中存在的1)字段和在引用的计划内容类型中存在的2)字段,您必须向视图添加适当的关系

  1. 在视图的“高级”部分中,添加适当的关系。它可能会说“实体引用:引用的实体:通过field_schedule引用的内容实体的桥梁”。选择与引用字段名称匹配的那个,因为我只是猜测它是field_schedule。
  2. 在该关系的设置屏幕上,在“标识符”字段中填写一些易于理解的内容,例如“Referenced schedule node”。
  3. 现在开始在“字段”部分添加您希望视图返回的字段。
  4. 当您到达作为引用内容类型一部分的字段(而不是您开始使用的剧集内容类型)时,请继续并选择此字段使用您在“”中的步骤2中创建的关系关系'下拉列表。添加该字段后,将在第二个设置屏幕中显示。
  5. 最后,如果您希望它们看起来像是一行中的字段,请使用“表格”显示。
  6. 现在,Drupal将知道您正在尝试显示引用节点中的字段,而不是它正在查看的当前剧集节点。

    这有点令人困惑,但我希望它有意义。这是在视图中链接引用节点的方法 - 使用Relationships。