Drupal:带深度过滤的cck分类法字段

时间:2010-02-21 13:56:52

标签: drupal views taxonomy

在视图中,是否可以配置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

我希望用户能够选择欧洲,并找到所有符合法国,德国或英国子节点的内容。

4 个答案:

答案 0 :(得分:0)

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

你可能会发现solr会开箱即用,但我肯定不知道。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

理想情况下,您希望这篇文章能够获得亚洲,中国,上海的分类。通过这种方式,当有人搜索亚洲时,你会得到这篇文章。

执行此操作的方法是使用“层次选择模块”。当上海被拯救时,其中有一个设置将强制保存父项目(即亚洲,中国)的所有分类。

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

答案 3 :(得分:0)

我相信他指的是使用Views进行此操作,因此当有人搜索并说“日本”时,它也会将结果标记为亚洲。这需要一个参数,分类:术语ID(带深度)。

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