View Drupal 7:在单个视图中组合多个内容类型

View Drupal 7:在单个视图中组合多个内容类型,view,drupal-7,View,Drupal 7,我有一个名为Author的内容类型,它通过节点引用模块在另外两个名为Novel和Book的内容类型中引用。因此,我们可以将Author实体添加到Book和Novel内容类型中。 小说和书籍都包含另一个名为“发布日期”的字段。 现在我想显示一个块,当用户来到相应的作者页面时,它将根据发布日期按时间顺序显示图书名称和小说名称 例如,假设A是BookA(2006年版)、NovelB(2004年版)、BookC(2009年版)的作者。当用户开始创作一个页面时,他将看到一个区块,该区块将按时间顺序显示书籍

我有一个名为Author的内容类型,它通过节点引用模块在另外两个名为Novel和Book的内容类型中引用。因此,我们可以将Author实体添加到Book和Novel内容类型中。 小说和书籍都包含另一个名为“发布日期”的字段。 现在我想显示一个块,当用户来到相应的作者页面时,它将根据发布日期按时间顺序显示图书名称和小说名称

例如,假设A是BookA(2006年版)、NovelB(2004年版)、BookC(2009年版)的作者。当用户开始创作一个页面时,他将看到一个区块,该区块将按时间顺序显示书籍/相册,如下所示:- NovelB--BookA--BookC


请给出如何在Drupal 7中实现的建议。

您希望显示以下字段
title
(我假设书名是节点标题)

对于排序,您可以在视图中使用sort选项,这是非常自我解释的。选择发布日期字段的名称

对于作者和书籍之间的连接,您必须使用上下文过滤器(高级)。 添加书籍/小说中的
作者参考字段
(用于引用作者的字段)。然后选择使用默认值(第二个选项),并从url中选择
内容id
。现在,您的块将找到引用具有当前页面id的页面的所有节点。由于我们选择显示标题字段,您应该会看到一个列表

请注意,live preview在此不起作用,因此您必须转到实际页面才能看到结果。

更新: 当您对两种内容类型重复使用同一字段时,此操作有效。如果要使用多个字段,则必须使用OR运算符使上下文筛选器正常工作。多亏了以下几点,我们才得以做到这一点。
尽管对于新的实现,我建议对所有内容类型的所有引用使用相同的字段(例如,reference to author)。

耶..我可以通过添加自定义代码来解决这个问题。我使用了hook\u views\u query\u alter方法,然后根据需要添加了连接关系和where子句。请参阅以下文章以了解更多信息。。


感谢您发布回复并保持我的希望。

感谢您的回复。当我需要显示书籍/小说中的一个内容时,无论您建议什么都可以。但在这里,我想显示两个内容,然后我需要在上下文筛选器中添加这两个连接。这不会产生任何结果,因为多个上下文筛选器将支持和,并且所有数据都将在这次进行筛选。此外,也无法向上下文筛选器添加或逻辑。请帮助我,因为这个障碍正在毁掉我的一天。这取决于,我总是重复使用我的土地。对多个内容类型使用具有相同属性的字段。这让一切都变得简单。因此,当您对两种内容类型使用相同的字段时。(添加现有字段)结果将来自两种类型。如果给出“或”可以保存日期,请参阅关于如何更改和到或上下文过滤器的文章。请更新相应的答案,并提供参考。对不起,迟到了。他忙于其他工作@D34dman-我浏览了您提供的文章。当上下文过滤器中添加了两个参数时,查询不会运行。因此,在函数hook\u views\u query\u alter中转换“AND to”或“AND to”的任务也不可能。请告诉我解决此问题的其他方法