首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >父术语不显示子术语实体

父术语不显示子术语实体
EN

Drupal用户
提问于 2018-08-16 20:40:08
回答 1查看 174关注 0票数 0

我的网站有两个分类学校和城市,都是相连的。这是城市学期名单

代码语言:javascript
复制
Newyork(parent)
-Yonkers(sub-term)
-Albany(sub-term)
-New Rochelle(sub-term)
-Utica(sub-term)

学校学期有一个与城市分类学相关的city_field (参考学期)。我可以按城市术语列出学校(如:纽约学校)。

问题:所有城市学期都显示学校。没关系。但家长学期(Newyork)没有显示子学期(Yonker,Albany,newyork,Utica)学校。

纽约(家长学期)显示的学校,如果只有纽约克选择。它应该向纽约的其他城市学校展示。

What I:

我试着增加父母关系,但没有结果。我尝试将父关系添加到上下文字段、分类法术语:名称字段和条件以及许多组合中。没有结果..。

这里的视图结构:我已经完成了prkos帮助术语到术语关系视图。你可以检查这里,如果你想看看它是如何改变的.

任何帮助或文章指南与这将是很棒的。谢谢

EN

回答 1

Drupal用户

回答已采纳

发布于 2018-08-19 16:42:32

我能够解决它,虽然可能有一个更优雅的解决方案。我不得不使用另外两个模块:视图arg父项视图上下文过滤器或。有很多的LEFT JOINs,所以这不是很好的表现友好。

问题实际上在于列出当前正在查看的术语页(纽约)的子术语(Yonkers、Albany等),以及页面本身的术语(纽约)。一旦你解决了这个问题,就很容易从参考你的城市词汇的学校学期词汇(通过一段关系)中提取有关术语的信息。

列出术语及其子项在术语页

  1. 从分类法术语视图类型(块显示)开始,筛选器只列出城市词汇表。为术语ID或术语名称添加字段,以显示城市,以测试所有城市是否都在那里(您应该看到列出的所有城市)。您可以添加相关的学校学期(参考所列出的术语),虽然它还没有必要,我们可以处理它,当我们得到正确的上下文过滤。
  2. Term类别中添加上下文过滤器ID,并使用以下选项配置它:Taxonomy term页面 Load默认筛选器中的When the filter value is NOT available <#>Provide默认值 Taxonomy术语ID When the filter value IS available or a default is provided Specify验证条件 Taxonomy条件城市 Filter value typeTerm ID 您现在可以通过在Preview字段中输入“城市”项ID来测试此筛选器,它应该将结果列表限制为只显示“城市视图”行。(您可以通过在预览中输入all来查看所有的结果。)
  3. 要列出子城市术语,从<#>类别中添加关系Parent term,不需要它,否则会将结果限制在对本例有用的范围之外。
  4. Term类别中添加另一个上下文过滤器Taxonomy term ID,使其使用上一步中的父级关系,并将其配置为与最后一步类似,只更改一个选项: filter Type:分类法来自D20的术语ID
  5. 在“视图”( Views )下,Query settings勾选Contextual筛选器或,最好只将其应用于此块,这样如果有它们,它就不会干扰其他显示。这将使所有上下文过滤器使用OR运算符而不是AND。在您的情况下,它将允许视图根据您正在查看的页面的术语ID或它的子页面进行筛选,因此这两个选项都是有效的。现在,您可以在Preview中输入两次城市术语ID,然后您将看到该术语及其子项。例如,假设您的纽约术语ID为18,如果您在预览中输入18/18,您将从您的城市词汇表中看到所有术语。显示哪些术语引用了所列的术语
  6. 要显示引用城市术语的学校术语,请使用City添加一个Relationship分类学术语。您可以要求它,这将排除所有的城市学期,从名单上没有引用任何学校学期。因为这是我们想要的学校学期列表,所以允许任何“空”行都是没有意义的。
  7. 添加一个<#>Field分类法术语: Name并使其使用上一步(field_city)中的关系。你现在可以在你的成绩中看到相关的学校学期了!如果您在测试中不需要这些字段,那么现在可以删除City TID和Name字段,所以您只需使用学校学期。
  8. 将区块放置在您的城市学期网页,它将列出学校的条款,参考该学期或其子女。您可能只想将其放在第一级术语页(纽约)上,因为它不能反向工作,当您查看子术语页时,它不会显示父项,它只会列出它们自己的相关术语。添加第三个分类法级别
  9. 万一有人需要它,如果词汇有第三层,要在父页面上显示孙辈,您必须添加另一个Relationship父项,让它使用以前的父级关系,而不需要它。
  10. 添加另一个Term ID上下文过滤器,并像第二个过滤器一样配置它,使用Taxonomy **parent** term ID from URL,只让它使用第二个Parent关系。现在您必须输入父TID三次才能使预览工作18/18/18。(这不影响块,参数是自动处理的。)
票数 0
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/267677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档