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 分类字段的主要内容,如果未能解决你的问题,请参考以下文章