Виды контекстных фильтров таксономии имени

106

Я добавляю контекстный фильтр в представление для пользовательского типа контента, имеющего поле таксономии. Контекстный фильтр позволяет мне фильтровать по идентификатору тега таксономии, но не по имени тега таксономии. Значение с данными тегами в таксономии:

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

Я могу сгенерировать контекстный фильтр, который будет анализировать URL-адрес, например, http://mydrupal/myview/3отображать весь контент, помеченный с помощью taggyНО, URL-адрес должен передавать аргумент для поиска по имени тега, а не по идентификатору тега , например, http://mydrupal/myview/taggyдля просмотра всего контента, отмеченного taggyкак Как это будет достигнуто?

powers1
источник

Ответы:

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флажок.

rocketeerbkw
источник
6
Честно говоря, это не очень понятно с точки зрения таксономии. Этот ответ помог мне решить недельную проблему. :)
PhiloSurfer
блестящий! Большое спасибо за подробное решение. Я бы никогда не понял это сам.
Uwe
1
Это была большая помощь. Благодарю. Однако, появляется, если вы передаете несколько терминов таксономии, разделенных знаками +, это не работает. Или, скорее, я думаю, что он использует и И вместо или.
2
Стоит отметить - если вы попытались передать идентификатор термина через аргумент контекста Панели просмотра Панелей, а затем попытались это сделать, установка аргумента контекста приведет к тому, что контекстный фильтр не предоставит значение по умолчанию. Опять же, тот «аргумент контекста», который отличается от «контекстного фильтра» и его значения по умолчанию. Был довольно смущен в течение нескольких минут ...!
Андрей
@rocketeerbkw У вас есть синтаксис AND / OR в обратном направлении! Это вроде как имеет смысл, как вы написали, но это не правильно.
doublejosh
6

Еще один способ снять кожу с кошки:

Мне нужен фактический запрос имени термина таксономии, не преобразующийся в идентификатор термина.

Вот как можно запросить имя термина таксономии, которое было передано как контекстный фильтр:

Чтобы получить имя, вы должны добавить связь либо в поле, либо в родовую связь таксономии. Затем вы можете добавить любые поля для этого термина в качестве контекстного фильтра, включая имя.

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

Бен Ледук
источник