Как показать термин таксономии родителей и детей?

14

У меня есть словарь, как это:

  • Родитель 1
    • Ребенок 1
    • Ребенок 2
    • Ребенок 3
  • Родитель 2
    • Ребенок 1
    • Ребенок 2

Теперь я хотел бы использовать представление для создания списка родительского термина с его дочерними терминами. Я пытаюсь сделать это с помощью пользовательского интерфейса Views, но показываю только родительский термин ... Нет дочернего термина. Это очень смущает меня.

Кто-нибудь может помочь с этим делом? Спасибо

Эдуардо Габриэль Кабрера Джапа
источник

Ответы:

14

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

  1. Создайте представление для отображения термина таксономии со страницей, путь которой настроен вдоль этой линии category/%. Это %подстановочный знак, который заставит представление реагировать на любое значение, примененное в URL, которое соответствует этому формату.

  2. Настройте свой дисплей и любые фильтры по желанию.

  3. Определите отношение (третий столбец страницы пользовательского интерфейса представления) и установите для него таксономический термин: родитель. Это говорит представлению взглянуть на родительское поле в каждом искомом термине таксономии. (Обратите внимание, что Drupal включает поле для каждого термина, которое идентифицирует его родителя, но не его братьев и сестер или детей).

  4. Далее мы сообщаем представлению интерпретировать подстановочный знак из URL-адреса, который мы использовали в пути для представления. Определите контекстный фильтр (над выбором отношения) и установите для него таксономию: termID. В форме установите отношение к Родителю в раскрывающемся списке. Это говорит View, что термин, вызываемый в URL, будет применяться в качестве фильтра для «родительского» поля терминов таксономии при их поиске.

  5. Наконец, мы должны завершить уточнение контекстного фильтра. Вы можете указать представлению, что делать, если он не находит ответ в этом разделе формы, если хотите, но мы должны сказать ему, что делать, если он находит решения в запросе. Для этого установите флажок проверки. Установите термин Валидатор на Таксономию и выберите словарь, который применяется к вашей иерархии. Затем выберите либо идентификатор термина, либо имя термина, преобразованное в идентификатор термина, в качестве типа значения фильтра. Если значение, которое вы передаете в%, является идентификатором термина, то все готово. Если переданное значение является термином Name, тогда вы можете установить флажок для преобразования черточек в пробелы. Если у вас есть несколько имен терминов, URL будет иметь тире, которые не соответствуют фактическим пробелам в имени термина. Эта небольшая поправка заставляет их согласиться, поэтому тест проходит успешно.

  6. Наконец, перейдите в область предварительного просмотра и введите имя или идентификатор для термина, который, как вы знаете, имеет детей, и вы должны получить список терминов для детей. Используйте параметры сортировки, чтобы расположить их в нужном вам порядке.

Удачи!

штучный камень
источник
Привет Ашлар, спасибо за это объяснение. Есть ли у вас идеи, почему термин таксономии: родитель не отображается в списке отношений?
Знат
2
Идентификатор родителя является полем термина таксономии, а поле - «pid». Он хранится там как ссылка на номер термина, поэтому он уже там, но только как ссылка.
Ашлар
1
Я нашел «Термин таксономии: родительский термин» в «Отношениях», но я не могу добавить родительский идентификатор в разделе «Поле». Я хочу показать таблицу с parentID в столбце (если он существует).
Nic
8

У меня есть архив с этим видом использования, но я немного по-другому сравниваю Ашлар.

  1. Добавьте термин таксономии: идентификатор термина в КОНТЕКСТНЫХ ФИЛЬТРАХ.
  2. Добавить термин таксономии: родительский термин в ОТНОШЕНИЯХ. (Оставьте флажок Требовать эти отношения незаполненным.)
  3. Добавить термин таксономии: родительский термин в разделе фильтра. выберите больше 0 .
  4. Не забудьте отфильтровать термин таксономии в словаре mycase Таксономия: Имя машины (= Бизнес-справочник).

  5. добавить термин таксономии: отображаемый термин таксономии в поля, выберите отношение к родителю , установите флажок Исключить из отображения.

  6. В настройках, в разделе ФОРМАТ. В поле группировки 1 выберите (Родительский) термин таксономии: Термин предоставленной таксономии .

Вы должны хорошо идти. Вы можете использовать представление TPL, чтобы добавить больше базы классов в группе. Я приложил свой скриншот для справок. Извините за мой английский.

введите описание изображения здесь

louieliu
источник
не работал для меня. Показывает все термины таксономии не верхнего уровня.
Riki137
0

Если вы хотите использовать это представление в качестве поля, вы можете создать такой список без использования представлений, используя модуль таксономической ссылки на термин «Фильтр по представлениям », и вы можете указать родителя, чтобы список можно было фильтровать автоматически.

kenorb
источник