Использование терминов из двух словарей на одном уровне при фильтрации URL-адресов

У меня есть два словаря (Мужчина и Женщина) с их терминами относительно.

Эти термины также используются в качестве полей в типах контента Мужчины и женщины. Теперь я хочу отфильтровать содержимое по типу контента и терминам этих словарей с помощью модуля Views (настраиваемое представление с именем gallery) с помощью контекстных фильтров, как показано ниже:

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/%/% работа должна выполняться, НО фильтрация по терминам двух словарей во втором % в URL моя проблема.

любая помощь будет оценена.


person revo    schedule 31.12.2012    source источник


Ответы (1)


Представления не смогут различить «жан» в URL № 1 и № 2, если вы используете фильтр таксономии, проверяющий «tid from имя термина».

Быстрый и грязный способ решить эту проблему — использовать два представления: галерея/мужчины/% и галерея/женщины/%.

Они будут идентичны, за исключением их фильтра терминов, который вы бы установили для проверки с помощью соответствующего словаря. (Они также будут отличаться своим обычным фильтром по типу контента.)

Программный способ решить эту проблему будет включать использование первого контекстного фильтра в качестве входных данных для второго, чтобы вы могли ограничить словарь. Например, что-то вроде

$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;
person ezeedub    schedule 22.03.2013