Группируйте узлы по дочерней и родительской таксономии с представлениями — Drupal 7

#drupal-7 #drupal-views #drupal-taxonomy

#drupal-7 #drupal-представления #drupal-таксономия

Вопрос:

У меня есть один тип контента с одним полем таксономии с родительскими-> дочерними терминами. В одном представлении мне нужно группировать узлы по выбранному дочернему элементу, но также и по родительскому.

Ожидаемый результат

  • родительский элемент 1 <- родительский элемент таксономии
    • термин 1 <- дочерняя таксономия
      • заголовок 1 <- узел
      • раздел 2
      • раздел 3
    • термин 2
      • раздел 4
      • раздел 5
  • родительский элемент 2
    • термин 3
      • раздел 6
      • раздел 7
    • термин 4
      • раздел 8
      • раздел 9

Текущий вывод

  • родительский элемент 1
    • термин 1 и заголовок 1
    • термин 1 и заголовок 2
    • термин 1 и заголовок 3
    • термин 2 и заголовок 4
    • термин 2 и заголовок 5
  • родительский элемент 2
    • термин 3 и заголовок 6
    • термин 3 и заголовок 7
    • термин 4 и заголовок 8
    • термин 4 и заголовок 9

Текущая конфигурация представления

  • Отношения
    • Термины таксономии для узла <- дочерний
    • Термин таксономия <- родительский
  • Формат
    • Неформатированный список
    • Поле группировки: родительский
  • Поля
    • Термин таксономии <- родительский
    • Исключить из отображения
    • Термин таксономии <- дочерний
    • Заголовок содержимого <- узел
  • Фильтр
    • Тип контента (= Мой тип контента)

Спасибо!

Ответ №1:

Я понял! Решение

Вид узла

  • Имя машины для просмотра: node_view_machine_name
  • Тип: Блок
  • Поля
    • Название
    • Поле 1
    • Поле 2
  • Фильтр
    • Тип контента (= Мой тип контента)
  • Контекстные фильтры
    • Дочернее поле таксономии
    • Скрывать вид, когда фильтр недоступен

Просмотр таксономии

  • Тип: страница
  • Фильтр
    • Термин таксономии: словарь (= Мой словарь)
  • Взаимосвязь
    • Термин таксономии: родительский термин
  • Поля
    • Термин таксономии: Название
      • Взаимосвязь: родительский
      • Исключить из отображения
    • Термин таксономии: ID <- Мы используем этот идентификатор для передачи в качестве аргумента в представление узла
      • Взаимосвязь: отсутствует
      • Исключить из отображения
    • Термин таксономии: Название
      • Взаимосвязь: отсутствует
    • Глобальный PHP <- Печать сведений об узле, связанных с каждым дочерним термином
      • Выходной код:
 $viewNodeDetail = views_get_view('node_view_machine_name');
$viewNodeDetail ->set_arguments(array($row->tid));
print $viewNodeDetail ->render('block');
  
  • Формат
    • Группируйте по
    • (Родительский) Термин таксономии: Название

Я надеюсь, что это может быть полезно для кого-то еще!

Комментарии:

1. Это помогло мне, спасибо. 2 вещи, которые я должен был сделать по-другому: 1. Представление таксономии — необходимо отметить галочкой «Требовать эту связь» и 2. Представление таксономии — вместо термина таксономии: Name я должен был использовать термин таксономии: отображаемый термин таксономии

2. Другим решением является использование views_field_view, тогда вам не придется возиться с пользовательским php