Фильтр по родительскому термину

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

Аватар пользователя kari kari 4 апреля 2021 в 19:02

Вопрос уже задавался, но ответов 0. Решения так и нет, поэтому попытаюсь еще раз. Как сделать фильтр по родительским терминам? Есть нюанс - нода может принадлежать к родительскому термину, а может к родительскому и дочернему. При этом чтобы не предлагалось "лишнее", то есть пустые термины (без нод).
Пробовали selective. Плюсы: выводятся только те термины, в которых есть ноды согласно контексту.
Минус: родительский термин игнорируется, берется "ближайший родственник"
Пробовали shs с перспективой перекрыть версткой поле выбора дочернего термина. Плюсы: выводятся все родители. Минусы: абсолютно все, даже те, к которым не относится ни одного материала.

Комментарии

Аватар пользователя OldWarrior OldWarrior 4 апреля 2021 в 19:12

kari wrote: Вопрос уже задавался, но ответов 0.

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

Аватар пользователя OldWarrior OldWarrior 4 апреля 2021 в 19:59

Так всё равно вопрос актуален. То ли по одному полю фильтрация, то ли по двум.
И что мешает показать edit view?

UPD. Вижу уже ответ ниже.

Аватар пользователя kari kari 4 апреля 2021 в 19:54

материал связывается двумя полями (для родителя и для потомка). Поле родителя обязательно для заполнения, а потомка - не обязательно

Аватар пользователя OldWarrior OldWarrior 4 апреля 2021 в 20:12

Так и добавьте в критерий фильтрации условие для поля потомка, что его значение пусто или NULL. Это и будет критерием отбора только родительских терминов.

Для отбора терминов, связанных с нодами, видимо, нужно включать агрегацию и пытаться делать какие-то кульбиты на её основе.

А вообще - что именно выводите в фильтре: термины или ноды?

Аватар пользователя kari kari 4 апреля 2021 в 20:28

В фильтре термины (должны бить только родительские), по этим терминам фильтруются ноды, которые составляют представление. Я могу скрин вьюхи сделать, но я даже не знаю, чего именно))

Аватар пользователя avtomoda avtomoda 6 апреля 2021 в 23:00

Написано конечно так, что мало чего понятно, но попробую натолкнуть на решение задачи (если я ее правильно понял). В предыдущем посте написано - "сделать фильтр только по родительским терминам. При этом, чтобы в этом фильтре предлагались ..." - ключевая фраза предлагалось, то есть так понимаю фильтр надо сделать открытым. Если так, то в свое время делал:
1. нужно сделать embed по терминам того словаря.
2. в настройках фильтрации embed сделать по родителю который 0 (выведет только родительские термины)
3. в embed установить связь с нодами и сделать связь обязательной - выведет только те термины, которые присутствуют в нодах.
4. Полученный emded загрузить в список select открытого фильтра.
Брал отсюда - https://bouteillenicolas.com/fr/blog-drupal/views-ajax-dynamic-dependent...
Почитайте - возможно это Ваше решение (если я Вас правильно понял).
5. Можно воспользоваться готовым решением - Views Reference Filter (и до настроить под свои нужды)