Druapl 7-我有一个名为“目的地”的分类词汇和一个名为“住宿”的实体。住宿实体包含个别住宿的名称,为了简化,让我们使用酒店。所以:
我想要做的是创建页面,显示在哪个城市有哪些住宿。因此,我需要为每个页面创建一个页面:
/圣地亚哥/住宿/巴塞罗那/住宿/罗马/住宿
我可以通过添加一个自定义页面来做到这一点:
/admin/structure/page/add
我已经创建了一个视图,但无法完全理解如何使用上下文过滤器和关系来只显示每张住宿页面上可用的酒店。
Drupal如何“知道”这个页面应该显示圣地亚哥的酒店:
/圣地亚哥/住宿
我理解上下文过滤器和关系,并一直使用它们,但不知道如何在这种情况下做到这一点。
创建这些页面并添加视图的最佳方法是什么?
发布于 2018-11-26 22:09:38
您已经有了一些视图,这些视图列出了带有分类法术语标记的所有内容。视图称为Taxonomy term,但它是一个内容类型视图,列出了使用特定术语标记的节点。
您可以克隆分类法术语视图并编辑该克隆,以使其适应特定的住宿需求。如果您不需要原始Taxonomy term视图,则将其禁用。但是,您也可以将它与克隆实例一起启用。
要更改到accommodation/%的路径,第一部分不应该是变量。
还添加一个新的过滤器Content: Type,并选择仅住宿。
您还可以更改为使用字段,而不是使用内容,以便更好地控制每个容纳结果中显示的内容。
使用此设置,您将得到以术语ID作为参数的页面。如果您的San Diego术语有ID 12,那么如果您访问页面/accommodation/12,您将看到带有圣地亚哥标记的住宿节点。
您不需要在视图以外的任何地方创建这些页面,当您在浏览器地址栏中键入具有术语ID的正确路径时,这些页面已经在工作。
如果要列出所有可用的术语,可以在上下文过滤器的When the filter value is NOT in the URL选项中使用摘要。这样,当用户访问/accommodation路径时,他们会看到一个位置列表。当他们单击某个位置时,他们会看到与其相关的住宿节点。
您可以使用Menu选项将页面添加到您选择的菜单中。
要使术语名称出现在路径中而不是TID中,您必须向该术语添加关系,并使用使用该关系的上下文过滤器Term name。(删除旧的上下文Has term ID。)
我在另一个问题中详细介绍了:如何设置基于第二个URL参数的筛选视图?
注意案例设置,使用破折号;)
使用此配置,您的路径将是/accommodation/san-diego。
https://drupal.stackexchange.com/questions/273034
复制相似问题