C наступающим новым годом!
Кто ни будь знает, как вывести все дочерние термины при поиске по родительскому термину в Drupal 8?
Выводить все это значит выводить не только ближайших потомков (первого уровня), но и второго и третьего и т.д. сколько есть.
Я использую модуль представления терминов в виде иерархического списка https://www.drupal.org/project/views_tree.
Затем использую раскрывающийся фильтр по полю "название термина" связав его предварительно с полем "родительский термин".
Еще использую автодополнение https://www.drupal.org/project/views_autocomplete_filters. Оно ищет по полю "название термина" связанного с полем "родительский термин".
Вообщем все вроде бы правильно работает. Только в результатах выводятся потомки только первого уровня, а хотелось бы, что бы все.
Не встречали подобного решения?
Комментарии
Результаты вьюхой можете вывести? Через search api возможно.
Возможно https://www.drupal.org/project/views_field_view понадобится
Да, результаты вьюхой все выводятся. А именно вывожу на странице все термины словаря в виде дерева, со всеми потомками. Так же имеется поиск по родительским терминам и с его помощью получаю только дочерние термины первого уровня. А насчет Search Api это круто, гляну на него. И с модулечьком тоже ознакомлюсь.
В общем из всех модулей только один наиболее точно по функционалу подошел (Модуль Entity Reference Hierarchy), но он не стал работать, как надо. Так я его и не понял до конца пришлось удалить. Вот ссылка на эту тему: https://drupal.ru/node/141514
https://www.drupal.org/project/shs - может это?
Да дружище спасибо! Я тут осознал кое какие свои ошибки и не знание некоторого функционала.
Я хотел выводить ноды. Ноды вложены в друг друга по ссылке. Я хотел выводить по родительской ноде не только ту ноду которая ссылается на родительскую, но и ноду которая ссылается на ноду которая ссылается на родительскую.
А в предложенном модуле он выводит не сами ноды, а предоставляет иерархический список для фильтра. То есть мне нужно выводить ноды не в фильтр, а в само представление.
Я обнаружил, что подобный функционал есть оказывается в таксономии. И теперь я думаю, что смогу разработать какую то систему, что бы сделать то, что нужно.
Может быть я перенесу этот контент на сущность таксономию или привяжу к этим нодам еще и таксономию. Получится некоторое излишество контента, но хотя бы так. Это лучше чем в дочерних нодах заполнять ссылки на всех имеющихся родителей.
Так, что получается данную задачу можно решить с помощью таксономии. В представлении выводящем ноды в разделе критерии фильтрации есть поле "имеет термин таксономии с глубиной". Вот с его помощью и постараюсь решить задачу.
Еще я обнаружил, что у меня было две задачи. Выводить дочерние термины всех уровней какого либо родительского термина. Выводить дочерние ноды всех уровней, какой либо родительской ноды. С терминами задача более простая, так как это базовый функционал. А с нодами надо, как то привязать таксономию или реализовать этот контент полностью на таксономии.
А модуль https://www.drupal.org/project/entity_hierarchy, как раз предоставляет такой же функционал, как в таксономии, но рассчитан на ноды. Но он я не смог с ним разобраться до конца.
Задача была в том, что бы выводить термины или ноды всех нижних уровней от родительской. Но, что б не приходилось в каждой дочерней ноде прописывать всех ее родителей всех уровней. А только указать ее ближайшего родителя, а остальных система сама просчитает.
Создаешь, вьюху выводящую контент. Добавляешь во вьюху фильтр
Content: Имеет термины таксономии (с глубиной) (раскрыт)
Настройки:
Словарь - твой словарь
Способ выбора - Simple hierarchical select
Раскрыть этот фильтр для посетителей - галка.
Все. Подходит способ?
Пока не очень подходит. Тему лучше не закрывать. Потом может еще, что то напишу. Вчерашнее решение далеко от идеала. Но главная засада, что я не нашел для таксономии модуля по правам доступа. Поэтому пока приостанавливаю решение данной проблемы. Буду скилы по Drupal наращивать пока, может позже, что получится.
Почему не подходит?
Ааа точно подходит!
Я просто темы попутал. Просто у меня была же еще задача ноды выводить в иерархическом виде.
А термины таксономии да. Можно их так выводить. Так, что учитывая, что в начале темы вопрос был именно про таксономии, то можно считать задача решена.
Но на терминах я не смогу такой раздел сделать потому, что права доступа не смогу настроить. Это я раньше давно еще хотел на таксономии это сделать.
Но если человеку разрешения на просмотр не нужны, то может смело на таксономии иерархию сделать.
А нет! Опять ошибка. Нельзя так сделать. Я вчера это понял. Очень жаль кстати. Дело в том, что ноды можно получать по терминам. То есть можно получить все ноды, которые отмечены родительским термином и дочерними терминами.
А вот получить все дочерние термины по родительскому нельзя, точнее я не нашел, а искал я усердно.
Так же и ноды тоже нельзя получить. Нельзя получить все ноды на которые ссылаются другие ноды на которые ссылается родительская нода.
Если бы в таксономии такая вещь была я бы контент просто на таксономии сделал. Ведь там поля и все, что нужно есть. Наверное это технически сложно было сделать.
Решайте уже программно, через модуль.
Быстрее добьётесь результата.