Отображение анонсов или полей материалов в блоке через Views с использованием КОНТЕКСТНЫЕ ФИЛЬТРЫ и СВЯЗИ

Аватар пользователя isuvar isuvar 2 июня в 19:26

Была задача вывести в материале через блок анонсы других материалов того же типа. Через обычные статичные фильтры Views (КРИТЕРИИ ФИЛЬТРАЦИИ Теги (field_tags)) это делается очень просто. Но когда количество материалов, в которых надо выводить соответствующие им блоки возрастает, то соответственно увеличивается и количество Block-ов в Представлении, которые приходится создавать под каждый новый материал.
Единственное решение здесь, создать динамический фильтр для одного Block и использовать этот Block для всех однородных материалов, на страницах которых надо выводить блоки. В соответствующем поле материла надо лишь указывать тег, по которому блок и отображается.

В Интернете не нашел ни одной инструкции как это сделать. Методом тыка вышел на решение. Может кому пригодится.

В КОНТЕКСТНЫЕ ФИЛЬТРЫ создаём Content: ID, в настройках которого для КОГДА ЗНАЧЕНИЕ ФИЛЬТРА НЕ ДОСТУПНО оставляем Отобразить все результаты для указанного поля.

Далее в СВЯЗИ создаём:

Relationship: field_second_tags: Taxonomy term
#second_tags - это машинное имя поля тега в котором во всех материалах, анонсы которых должны были отобразиться в блоке на целевой странице, я указал тег НАЗВАНИЕТЕГА.
Ставим галочку Эта связь обязательна

Relationship: field_first_tags
#first_tags - это машинное имя поля тега в котором на целевой странице указал тег НАЗВАНИЕТЕГА, который был прописан во всех материалах, анонсы которых должны были отобразиться в блоке на целевой странице.
Здесь же указал Relationship field_views_tags: Taxonomy term
Ставим галочку Эта связь обязательна

Теперь можно обратно зайти в Content: ID и для него указать Relationship field_first_tags
До создания связей такой опции у Content: ID не было. Значение этой опции не знаю. И без неё анонсы в блоке отображаются.

Теперь в блоке, выведенном на странице нужного нам материала отображаются анонсы всех других материалов, у которых указан тег НАЗВАНИЕТЕГА.

0 Thanks

Комментарии