Вывод description термина таксономии через views

Главные вкладки

Аватар пользователя Artemis20 Artemis20 29 октября 2020 в 17:53

Drupal 7.72. PHP 7.3.18. Views 7.x-3.24.
Создаю новый View.

В Fields добавляю Термин таксономии: Название.
В RELATIONSHIPS Термин таксономии: Родительский термин - Родитель
В CONTEXTUAL FILTERS добавил Термин таксономии: ID термина. Relationship - Родитель. WHEN THE FILTER VALUE IS NOT AVAILABLE - Provide default value - Taxonomy term ID from URL -Load default filter from term page.

В подвал добавил Global: Text area - Формат текста Php - Display even if view has no result

<?php
$view 
views_get_current_view();
if (
is_numeric($view->args[0])){
$term taxonomy_term_load($view->args[0]);
return 
$term->description;
}
?>

На странице термина таксономии выводит детей текущего уровня и описание термина.
Но если это самый нижний уровень словаря и детей нет, то описание термина игнорируется.
Подскажите куда еще копать?

Комментарии

Аватар пользователя VasyOK VasyOK 30 октября 2020 в 14:19

Давайте по другому. Что нужно сделать? Вывести описание термина где: на родительском термине, на дочернем? Какого термина: родительского, дочернего?

Аватар пользователя Artemis20 Artemis20 4 ноября 2020 в 1:19

Есть словарь.
Термин 0
-Термин 1
-- Термин 1.1
-- Термин 1.2
-Термин 2
-Термин 3
У терминов есть поля Название и Описание. В описание некоторых терминов вбит html текст.
Есть ноды которые прикреплены к определенным терминам.
Нужно чтобы на странице Термин0 выводило: Описание термина; его дети Термин1, Термин2, Термин3; ноды относящиеся к Термин0.
На текущий момент работает вывод нод относящийся к текущему термину, вывод детей термина. Вывод описания работает только если у термина есть дети. То есть работают как надо страницы с Термин0 и Термин1. Термин2 и Термин3 выводят только ноды относящиеся к ним.

Аватар пользователя VasyOK VasyOK 4 ноября 2020 в 5:05

Предлагаю 3 вьюхи:
1. Описание термина - аргумент TID.

2. Дочерние термины - аргумент родительский термин.

3. Ноды термина. Тип этой вьюхи Содержимое, а не Термин.
Контекстный фильтр.
Если нужно чтобы выводились из дочерних терминов Содержимое: Имеет идентификатор термина таксономии (с глубиной) - глубина 10
Если только из текущего термина, просто - Содержимое: Имеет идентификатор термина таксономии

Аватар пользователя Andruxa Andruxa 4 ноября 2020 в 9:50
1

VasyOK wrote: Содержимое: Имеет идентификатор термина таксономии (с глубиной) - глубина 10

Это 10 джойнов в запросе. Не надо так делать, лучше указывать реальную глубину словаря, если там, к примеру, 4 уровня вложенности - то и указывать глубину 4.

Аватар пользователя Artemis20 Artemis20 5 ноября 2020 в 20:39

Вьюха с нодами есть и она настроена именно так.
При создании вьюхи Тип: Term, нет такого контексного фильтра "Имеет идентификатор термина таксономии".
Что добавить в контексный фильтр вьюхи Тип: Term, чтобы выводились только дочерние термины и описание? Потому как без фильтров выводятся вообще все термины.

Аватар пользователя VasyOK VasyOK 5 ноября 2020 в 22:07

"При создании вьюхи Тип: Term" введите в строке выбора "tid". И там увидите идшник термина. Собственно это один из ваших скриншотов.

Аватар пользователя VasyOK VasyOK 6 ноября 2020 в 7:09

1. Описание термина

2. Дочерние термины

Настройки контекстного фильтра. Такие как у вас в шапке темы.