我有两个词汇(男人和女人)及其相关术语。
这些字词也用作内容类型男性和女性中的字段。现在我想根据内容类型和视图模块(名称图库的自定义视图)在上下文过滤器的帮助下按内容类型和词汇表的术语过滤内容,如下所示:
http://mysite.com/gallery/content-type/(Man or Woman)'s terms
类似的东西:
1 - http://mysite.com/gallery/men/jean
2 - http://mysite.com/gallery/women/jean
第1个url“jean”术语用于词汇表Man和第2个url“jean”用词用于词汇Woman。
我应该添加3个过滤器,一个用于内容类型一,用于女性术语,一个用于术语。但是应该在一个%过滤两个男女词汇。
我知道通过使用这种路径 gallery /%/%,工作应该完成但是从第二个%<中的两个词汇表术语中过滤/ strong>在网址中是我的问题。
任何帮助将不胜感激。
答案 0 :(得分:0)
如果您使用通过“来自术语名称的tid”验证的分类过滤器,则视图将无法区分URL#1和#2中的“jean”。
快速而肮脏的解决方法是两种观点:gallery / men /%和gallery / women /%.
除了术语过滤器之外,它们将是相同的,您可以设置为通过适当的词汇表进行验证。 (它们在内容类型的常规过滤器方面也会有所不同。)
解决此问题的编程方法将涉及使用第一个上下文过滤器作为第二个的输入,因此您可以通过词汇表进行限制。例如,像
$vocabulary = $view->args[0]; // assuming this is the machine name
$term = taxonomy_get_term_by_name($view->args[1], $vocabulary);
return (!empty($term)) ? $term->tid : 0;