0

我有两个词汇表(Man 和 Woman)及其相关术语。

这些术语也用作内容类型Men 和 Women中的字段。现在我想在上下文过滤器的帮助下按内容类型过滤内容,并按视图模块(带有名称 的自定义视图)过滤这些词汇表的术语,如下所示:

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

第一个 url “jean” 词用于词汇 Man,第二个 url “jean” 词用于词汇 Woman。

我应该添加 3 个过滤器,一个用于内容类型,一个用于女性术语,一个用于男性术语。但是这两个 Man 和 Woman 词汇应该以 1 %过滤。

我知道通过使用这种路径gallery/%/%应该完成工作,但是从url 中第二个%中的两个词汇表的术语过滤是我的问题。

任何帮助,将不胜感激。

4

1 回答 1

0

如果您使用使用“tid from term name”进行验证的分类过滤器,则视图将无法区分 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;
于 2013-03-22T15:49:09.047 回答