Вывод страниц с материалами имеющими термины таксономии с разными заголовками

Аватар пользователя Babich Babich 29 июля в 7:16
2

Всем здравствуйте, не могу разобраться.
Есть вводные:
Два словаря таксономии:

Город
-Москва
-Новосибирск
-Тюмень

Теги
-Новости
-Лайфхаки
-Обновления

Два типа ноды
-Блог (для тегов)
-Объект (для городов)

Настроил страницу views Taxonomy term (из коробки) с переопределением заголовка.

Дублирую страницу Taxonomy term. И тут самое интересное, чтобы не делал - добавляю связь, фильтрую по типу материала, по словарю. Все равно работает лишь один Taxonomy term с заголовком. Не хочет выводить теги с одним заголовком страницы, а города с другим.

Лучший ответ

Аватар пользователя Babich Babich 5 августа в 20:07

Спасибо большое @VasyOK за помощь. Решается так. Дублируем вьюху, в ней в контекстных фильтрах меняем выводимый заголовок. Идем в на страницу термина и там при помощи модуля tvi выбираем какой вьюхой выодить термин. Tilte можно поменять с помощью модуля MetaTag

Комментарии

Аватар пользователя ivnish ivnish 29 июля в 7:21

Проще переопределить заголовок в препроцессе вывода термина. Там же можно сделать проверку для каких именно словарей

Аватар пользователя marassa marassa 29 июля в 7:47

Babich wrote: Дублирую страницу Taxonomy term

С каким адресом?

Babich wrote: Все равно работает лишь один Taxonomy term с заголовком

Попробую угадать: с адресом /taxonomy/term/% ?
Можно попробовать при переопределении заголовка использовать условный оператор twig {% if %}, то есть в одном и том же view сделать разные заголовки для разных словарей.

Аватар пользователя pselfin pselfin 29 июля в 8:39

Если честно, не понял... в выводе должны быть ноды с терминами из разных словарей?

Аватар пользователя Babich Babich 29 июля в 11:58

Нет. Это две страницы. Одна с терминами теги. Другая с терминами город. У страниц разные заголовки.

Аватар пользователя marassa marassa 29 июля в 9:09

Я понял так: для термина "Москва" в контекстном фильтре должны выводиться соответствующие Объекты с заголовком типа "Объекты города Москва", а для термина "Лайфхаки" должны выводиться соответствующие Блоги с заголовком типа "Блоги: Лайфхаки". И самое смешное, что оно так и выводится одной-единственной универсальной вьюхой из коробки, проблема только сделать разные заголовки для разных словарей. Я понял так, возможно неправильно Wink

Аватар пользователя Babich Babich 29 июля в 11:22

Да, именно так)) Как сделать разные заголовки?
Для городов: Объекты в городе (значение)
Для тегов Статьи по теме (значение)

Аватар пользователя marassa marassa 29 июля в 12:20

То ли я туплю отчаянно, то ли действительно twig внутри views не позволяет подтаскивать поля сущностей по id (tid, nid), если эти id не являются значениями полей entity reference.

Кривое решение №1: добавить во view поле Content Type, скрыть его.
В заголовке прописать что-то типа:

{% if type == 'Объекты' %}
Объекты в городе {{ arguments.tid }}
{% else %}
Статьи с тегом {{ arguments.tid }}
{% endif %}

Проблема: не будет работать, если представление не возвращает ни одной строки.

Кривое решение №2: поставить модуль twig_tweak, вытащить сущность термина по {{ raw_arguments.tid }} , определить словарь, дальше см. кривое решение 1, только не по типу материала (которого не будет в пустом представлении), а по словарю термина-аргумента, который будет в любом случае.

Аватар пользователя VasyOK VasyOK 29 июля в 9:37

В настройках вьюхи которая выводит термины.
Title: Нет

Контекстные фильтры
Content: Имеет идентификатор термина таксономии
Если значения фильтра НЕТ в URL
Передать значение по умолчанию: ID термина таксономии из URL

Когда значение фильтра присутствует в URL или предоставляется по умолчанию
Переопределить заголовок (галка)
{{ arguments.tid }}

Ну или блок создать с выводом названия термина в заголовок.

Аватар пользователя Babich Babich 29 июля в 11:24

Сейчас выводится все правильно из коробки, с одним лишь замечанием, чтобы Теги выводились с одним заголовком, а страница с городами с другим. А сейчас они выводятся под одним. Это не совсем корректно.

Аватар пользователя VasyOK VasyOK 29 июля в 11:52

Еще вариант. Дублировать вьюху прописать в дублированной другой заголовок и использовать модуль tvi для вывода терминов каждого словаря.

Или я вас не понимаю...

Аватар пользователя Babich Babich 29 июля в 12:02

tvi? В том и проблема. Я думал создам две похожие вьюхи. Отфильтрую например по типу материала или по словарю таксономии. Но не получается и хочу понять почему. Работает только одна вьюха в обоих случаях. Другая почему-то игнорируется.

Аватар пользователя VasyOK VasyOK 29 июля в 16:07

В настройках словаря эта вьюха через tvi укзана.
В предпросмотре вьюхи если номер термина из словаря вбить - показывает то, что нужно?

Аватар пользователя marassa marassa 29 июля в 12:23

Babich wrote: Работает только одна вьюха в обоих случаях. Другая почему-то игнорируется.

Еще раз: две разные страницы не могут выводиться по одному и тому же адресу.

Аватар пользователя Babich Babich 29 июля в 12:36

Я догадывался, что проблема в этом может быть. Я могу создать две разные вьюхи? Чтобы одна выводила один словарь город . Другая теги. Что тогда прописать в поле patch? Сейчас у обеих прописано taxonomy/term/%. Я пробовал blog/% object/% не хочет выводить.

Аватар пользователя marassa marassa 29 июля в 12:43

Babich wrote: Я могу создать две разные вьюхи? Чтобы одна выводила один словарь город . Другая теги.

В принципе можно, но тогда в том месте (местах), откуда юзеры приходят на эти вьюхи, нужно будет поменять ссылки со стандартных taxonomy/term/% на нестандартные.

Аватар пользователя Babich Babich 29 июля в 13:05

У меня в каждом словаре и термине прописана ссылка. Как их использовать, что прописать? Ссылки на словари oblect/Название города и blog/имя тега

Аватар пользователя marassa marassa 29 июля в 14:04

Babich wrote: Ссылки на словари oblect/Название города и blog/имя тега

А должны быть не имена, а id.

Аватар пользователя Babich Babich 4 августа в 9:01

Уже массу вариантов перебрал. Так и не решил. Неужели такая сложная задача.

Аватар пользователя VasyOK VasyOK 4 августа в 19:54
1

мне кажется вы просто переволновались. Ну или на сайте есть что-то, что блокирует вывод. На чистом сайт попробуйте. В принципе можете дать ссылку на части сайта и написать: как должно быть.

Аватар пользователя marassa marassa 4 августа в 15:37
1

Задача совершенно несложная для любого мало-мальски компетентного сайтбилдера. Все многочисленные предложенные варианты - рабочие. Если у Вас ни один "не хочет" работать, то есть раздел "Поиск специалистов".

Аватар пользователя Babich Babich 4 августа в 20:54

Я больше 12 лет занимаюсь Drupal и время от времени появляются задачи, с которыми не сталкивался ранее. Чтобы разобраться в чем причина, бывает, что пишу сюда и прошу помочь тех, кто раньше с этим столкнулся.

Аватар пользователя ivnish ivnish 4 августа в 21:00

Задача "препроцесснуть заголовок" - довольно простая задача, тем более для специалиста с двенадцатилетним стажем

Аватар пользователя Babich Babich 5 августа в 20:07

Спасибо большое @VasyOK за помощь. Решается так. Дублируем вьюху, в ней в контекстных фильтрах меняем выводимый заголовок. Идем в на страницу термина и там при помощи модуля tvi выбираем какой вьюхой выодить термин. Tilte можно поменять с помощью модуля MetaTag