Контекстный фильтр с термином таксономии, которого нет в URL-адресе


Я надеюсь, что кто-нибудь, пожалуйста, поможет мне приручить зверя, известного как контекстные фильтры. :) У меня есть ряд узлов, которым присвоен определенный термин таксономии (все из одного и того же vocab), но для моего URL-адреса я не включаю их:

Например:

Название словаря = видео

Узел имеет термины:

-food
--vegetable
---carrot 

Назначен ему, но единственный URL, который мне нужен, это:

site.com/videos/title-of-node

, А затем все остальные узлы, у которых есть термины на все они будут находиться в каталоге "видео":

site.com/videos/title-of-another-node
site.com/videos/title-of-yet-another-node

Я создал представление с контекстным фильтром, в котором я хочу отображать только узлы с термином морковь. И это отлично работает при предварительном просмотре на странице просмотров, но при загрузке фактической страницы я получаю список ВСЕХ узлов под термином "еда", потому что у меня есть "КОГДА ЗНАЧЕНИЕ ФИЛЬТРА ОТСУТСТВУЕТ В URL-АДРЕСЕ ->Отображать все результаты для указанного поля"

Моя главная проблема, я думаю, заключается в том, что "Контекстуальный значения фильтра предоставляются URL-адресом." И мои условия не указаны в URL-адресе. Поэтому мне как-то нужно вытащить термины, связанные с каждым узлом.

Любая помощь будет очень признательна!

Author: Dan, 2013-01-19

1 answers

Вместо создания представления узла создайте представление таксономии.

В котором предусмотрены два отношения:

  1. Термин таксономии: Содержание термина;
  2. Термин таксономии: Контент, использующий {Имя поля таксономии в типе контента}*;
  3. Добавьте контекстный фильтр типа Содержимое: Заголовок; Используйте первое соотношение для контекстного фильтра, внесите необходимые изменения в опцию "Больше", такие как изменение нижнего регистра на тире и т. Д.;
  4. Добавьте необходимое поля из содержимого с отношением, равным 2);

Вы готовы идти.

РЕДАКТИРОВАТЬ: В соответствии с обсуждением возникла еще одна необходимость также показать узлы под термином и его под терминами.

  1. Создайте представление содержимого типа;

  2. Добавьте необходимые поля;

  3. Добавьте контекстный фильтр типа Содержимое: Имеет идентификатор термина таксономии (с глубиной) и выберите значение глубины, равное глубине иерархии, которая у вас есть в таксономия.

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

Если вы хотите изменить URL-адрес, чтобы вместо идентификатора термина было указано имя термина, выполните следующие действия.

  1. В представлении укажите путь как таксономия/термин/% это переопределит путь таксономии по умолчанию;

  2. Установите Модуль Pathauto это зависит от токенов модуля, поэтому необходимо установить это также;

  3. В Конфигурации ->Псевдонимы URL-адресов у вас есть вкладка под названием Шаблоны;

  4. Установите шаблон "ПУТИ ТЕРМИНОВ ТАКСОНОМИИ" таким, каким вы хотели бы его видеть. Убедитесь, что последнее значение [термин:имя], поэтому, если вы хотите, чтобы путь был категорией/морковью, вы должны указать его как категория/[термин:имя];

  5. Если вы уже добавили термины таксономии, вам нужно будет выполнить "МАССОВОЕ ОБНОВЛЕНИЕ", которое снова является вкладкой на странице псевдонима URL.

Теперь, когда вы посещаете страницу категория/имя термина, вы увидите все узлы под термином, включая дочерние термины.

 8
Author: Mohammed Shameem, 2016-09-03 07:18:51