查看上下文过滤器分类名称


106

我正在为具有分类字段的自定义内容类型的视图添加上下文过滤器。上下文过滤器允许我按分类标签ID进行过滤,但不能按分类标签名称进行过滤。在分类法中具有给定标签的含义:

1  | test1
2  | another tag
3  | taggy
......
99 | coolness

我可以生成一个上下文过滤器,该过滤器将解析URL,例如http://mydrupal/myview/3显示已被taggyBUT 标记的所有内容,该URL需要将参数传递给通过标记而不是标记ID进行查找,例如,http://mydrupal/myview/taggy查看所有使用taggyHow can 标记的内容。能做到吗?

Answers:


156

我假设您已经添加了Content: Has taxonomy term ID上下文过滤器。您可以通过调整Specify validation criteria设置来在此过滤器中使用分类术语名称。这是屏幕截图:

屏幕截图

确保Specify validation criteria已选中,并且应该为您提供更多选项。下Validator选择Taxonomy term。您可以选择允许的词汇表。在Filter value type选择下Term name converted to Term ID并选中Transform dashes in URL to spaces in term name filter values复选框。


6
老实说,对于分类学术语来说,这不是很直观。这个答案帮助我解决了一个星期的问题。:)
PhiloSurfer 2011年

辉煌!非常感谢您提供详细的解决方案。我永远不会自己解决这个问题。
uwe 2011年

1
这是一个很大的帮助。谢谢。但是,如果您要传递多个用+号隔开的分类法术语,则它似乎不起作用。或者更确切地说,我认为它使用的是And而不是Or。

2
值得注意的是-如果您尝试通过Panels View Pane上下文参数传递术语ID,然后尝试这样做,则设置context参数将导致上下文过滤器不提供默认值。同样,该“上下文参数”与“上下文过滤器”及其默认值不同。呆了几分钟...!
13年

@rocketeerbkw您的AND / OR语法向后!正如您所写,这有点道理,但这是不对的。
doublejosh

6

换猫的另一种方法:

我需要实际的分类法术语名称查询,而不是转换为术语ID。

以下是查询作为上下文过滤器传递的分类术语名称的方法:

要获得名称,您必须在字段或通用分类法关系上添加一个关系。然后,您可以为该术语添加任何字段作为上下文过滤器,包括名称。

https://www.drupal.org/node/1156022#comment-4469378


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.