Количество нод у термина с учетом глубины

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

Аватар пользователя void void 22 февраля 2018 в 22:43

Как правильно и эффективно посчитать количество нод у термина с учетом вложенности (глубины), а также с учетом того, что словарь 500+ терминов, 3 уровня, нод 5+ т.?
(считать только опубликованные ноды)

Простой пример (дано и как должно быть):

н1, н2, н3 - ноды
т1, т2, т3 - термины

н1 (т2)
н2 (т2, т3)
н3 (т3)

Получается (в скобках количество нод):
т1 (3)
-т2 (2)
-т3 (2)

Выводить не вот таким списком, а в виде 1 Термин (количество нод) в нужном месте.
Может модуль какой есть (увы сам не нашел)?
В идеале хранился бы этот счетчик нод у каждого термина как свойство (или поле), которое можно запросить как в теме так и во вьюсе.

Комментарии

Аватар пользователя Semantics Semantics 22 февраля 2018 в 22:52

Каждый уровень - это +1 джойн таблицы самой на себя, не то, чтобы очень страшно, но в случае неверных фильтров или связей - может оказаться больно.

Хранение свойства - врядли такое вы найдете.

А так, taxonomy menu и этот материал посмотреть, для начала http://xandeadx.ru/blog/drupal/415

Аватар пользователя sas@drupal.org sas@drupal.org 24 февраля 2018 в 10:00
1

Хорошо и быстро работает через taxomomy_get_tree + выборка материалов по списку терминов из дерева + подсчет в массив кол-ва полученных материалов по каждому термину.