Drupal:具有深度过滤的 cck 分类字段

Posted

技术标签:

【中文标题】Drupal:具有深度过滤的 cck 分类字段【英文标题】:Drupal: cck taxonomy field with depth filtering 【发布时间】:2010-02-21 13:56:52 【问题描述】:

在视图中,是否可以配置 cck 分类字段,以便用户搜索更高级别的分类术语也匹配其父项?假设我有一个名为 Places 的分类法:

Asia
    China
        Shanghai
        Beijing
    Japan
        Tokyo
        Nagoya
    Indonesia
        Bandung
        Banjar
Europe
    France
        Paris
        Lyon
    Germany
        Berlin
        Hamburg
    UK
        London
        Birmingham
North America
    Cananda
        Toronto
        Ottawa
    USA
        New York
        Texas

我希望用户能够选择,比如说,欧洲并找到所有匹配法国、德国或英国的内容他们的子节点。

【问题讨论】:

【参考方案1】:

当您使用分类上海保存项目时,该文章仅获得上海分类。

理想情况下,您希望文章获得亚洲、中国、上海的分类。这样,即使有人搜索 Asia,您也会得到该文章。

执行此操作的方法是使用分层选择模块。其中有一个设置会在保存上海时强制保存父项(即亚洲、中国)的所有分类。

如果您无法找到此设置,请询问我。

【讨论】:

【参考方案2】:

您可以将taxonomy_get_tree() 与术语的$parent 参数一起使用以获取术语列表,然后在WHERE x IN () 子句中使用它,这很丑陋,并且仅限于一定数量的术语,但会做你想做的事。

您可能会发现 solr 会立即执行此操作,但我不确定。

【讨论】:

【参考方案3】:

您可以使用分类树菜单模块from here,花费不到 10 分钟 :),从那里读取 QUICKSTART 文件。

【讨论】:

【参考方案4】:

我相信他指的是使用 Views 执行此操作,因此当有人搜索并说“日本”时,它也会得到带有亚洲标记的结果。这需要一个参数,Taxonomy: Term ID (with depth)。

从那里,您将检查 $node->taxonomy,并使用 tid,获取其父级,使用 taxonomy_get_tree 获取子级,并返回所有值。这需要编写一些 php 代码来验证和返回分类法。如果您不知道该怎么做,我可以详细说明。

【讨论】:

以上是关于Drupal:具有深度过滤的 cck 分类字段的主要内容,如果未能解决你的问题,请参考以下文章

drupal 6 - 我可以使用一个公开的视图过滤器来搜索/过滤几个类似的 cck 字段吗?

使用 SQL 过滤 Drupal 视图

具有节点引用和 cck3 多组字段的 Drupal 视图

在 Drupal 中公开视图过滤器

Drupal 7 视图显示具有相同分类术语的节点

Drupal 视图和公开的过滤器 - 如何重置可选的下拉列表过滤器,或允许“全部”选择