当前位置: 首页>>WEB开发>>正文


如何在层次结构中显示视图中的术语?

webfans WEB开发 , , 去评论

问题描述

我创建了一个视图来显示产品词汇表的术语。

我设定的观点:

格式:Html列表

显示:字段

字段:分类术语:名称

它工作正常,但它的层次结构丢失了。

产品词汇表具有以下结构:

-汽车

–Ford

–Volvo

-电脑

– 桌面

– 笔记本电脑

但在视图中,术语失去了层次结构,并列出如下:

-汽车

-Ford

-Volvo

-电脑

-桌面

-笔记本电脑

我在这里想念的是什么?

最佳解决方案

我建议您尝试一下Views Tree模块,它安装一个tree-style(邻接)视图样式插件,允许您以分层方式列出词汇表。

注释:视图预览不显示树布局,但正常页面显示输出为树。

次佳解决方案

Views Tree适用于快速简单的层次结构配置,但它缺少一些功能,例如不同的字段/配置,用于不同的树级别和分组

您可以使用Views Field View进行更灵活的配置。

这是我需要的三级分类树所需的设置,我需要按顶级术语进行分组。

  1. 使用页面显示(或任何其他显示)创建术语视图

  2. 添加关系“Taxonomy term:Parent term”

  3. 添加字段:术语名称(无关系),术语名称(父关系,从显示中排除)

  4. 添加过滤分类术语:父术语(父关系)等于0.(仅显示等级2)

  5. 在格式设置中,使用分组与字段(父)术语名称。(显示级别1)

  6. 添加新显示(附件很好)

  7. 覆盖其字段(只需单击任何字段,从顶部的选择框中选择此附件(覆盖),然后保存字段。(这是为了避免递归)

  8. 通过添加分类术语覆盖附件上下文过滤器:名称(父关系)

  9. 将视图字段(全局:视图)添加到视图字段。

  10. 使用视图字段配置中的附件,并将术语名称(而不是父项)的标记添加为发送到附件的上下文过滤器值。

您可以在步骤4中从过滤器中删除关系,这将显示主显示中的顶层,因此您可以跳过分组(步骤5),然后为要显示的每个级别添加新显示(控制级别的级别)显示)

对我来说,这给了几乎相同的Views Tree结果,但我需要灵活性。

第三种解决方案

我已经使用Taxonomy menu模块解决了类似的任务。

Transform any of your taxonomy vocabularies into existing menus easily!

Features:

  • Custom Menu per vocabulary
  • Uses the Terms default Path
  • Integrate with Views
  • Integrate with Path Auto
  • Customize the menu path to anything using hooks: Developer Documentation for version 6.x-2.x
  • It doesn’t interfere with other menu modules

第四种方案

您可以使用模块Views Term Hierarchy Weight Field。它提供了一个新的排序过滤器,可按层次顺序对术语进行排序。

第五种方案

如果您只有2级别类别树,并且不介意丢失ul嵌套格式或使用主题文件进行攻击,则可以通过以下方式获得此类功能:

  1. 将”Parent Term”关系添加到View并要求它。

  2. 有两个”Term Name”字段。一个没有关系,另一个隐藏在显示字段中使用新创建的关系。

  3. 使用隐藏字段作为分组字段。

不确定它是否正是那个意图……

参考资料

本文由朵颐IT整理自网络, 文章地址: https://duoyit.com/article/2625.html,转载请务必附带本地址声明。