Перейти к основному содержанию
Уважаемые коллеги! Новая версия сайта работает в тестовом режиме. Информация появится с ближайшие дни.
Drupal 8 Представление (Views)

Делаем блок "связанные материалы" на Drupal 8 с помощью Views (пошаговое, часть 1)

21 января 2018 г. 19:22

В целом сделать блок "Связанные материалы" на Drupal 8 достаточно легко. Это делается с помощью Представлений (Views) и описано на многих англоязычных ресурсах. Смысл в том, чтобы на странице отображать блок со ссылками на похожие материалы или имеющие схожую тематику.

Например, у нас есть разделы: 

1) "Фрукты". В нем есть страницы "Яблоко", "Груша", "Банан", "Манго";
2) "Овощи". В нем "Картофель", "Тыква", "Томак", "Репа";
3) "Ягоды". В нем "Смородина", "Клубника", "Малина".

Задача 1. Когда мы смотрим страницу "Яблоко", в блоке "Связанные материалы" должны отображаться ссылки на остальные фрукты  "Груша", "Банан", "Манго".

Тоже самое для остальных. Действия следующие:

1. Создать словарь таксономии и перечислить все термины.

Структура --> Таксономия --> Добавить словарь

Например:

Словарь "Веганская еда" и термины:
-Фрукты
-Овощи
-Ягоды

2. В тип материала, к которому относятся наши страницы добавить поле "Вид еды"

Структура --> Типы материала --> Управление полями (в вашем типе) --> Добавить поле (тип поля: Термин таксономии) на следующем шаге выбираете словарь "Веганская еда".

3. На каждой созданной странице заполняете поле "Вид еды".

Например на странице "Яблоко" выбираете "Фрукты".

4. Теперь самое интересное. Создаем новое представление

Структура --> Представления --> Добавить представление

Присваиваем понятное имя. Кстати, если потом хотим менять внешний вид представления в шаблонах TWIG, то запоминаем и машинное имя.

Выбираем: "Содержимое". Указываем ваш тип страниц.

Выбираем "Блок". Выбираем вариант отображения блока: я обычно выбираю "неформатированный список" + "поля".

Сохраняем и переходим к редактированию.

5. Настраиваем представление

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

Теперь наша задача динамически фильтровать представление таким образом, чтобы на странице "Яблоко" показывались только Фрукты, а на страниц "Картофель" только Овощи. Чтобы не создавать для каждого вида еды свое представление, необходимо настроить "КОНТЕКСТНЫЕ ФИЛЬТРЫ".

Нам надо добавить два фильтра:

Содержимое: Имеет идентификатор термина таксономии
Содержимое: Имеет модификатор глубины терминов таксономии

Настраиваем первый фильтр:

В блоке КОГДА ЗНАЧЕНИЕ ФИЛЬТРА НЕ ДОСТУПНО ставим "Передать значение по умолчанию"

Выбираем "ID термина таксономии из URL".

Ставим галочку "Загрузить фильтр по умолчанию со страницы материала. Это хорошо для связанных блоков таксономии".

Выбираем "Ограничить термины словарем" и ставим галочку напротив нашего словаря "Веганская еда".

Отдельной настройки второго фильтра не требуется.

 

Итак, наши контекстные фильтры должны выглядеть следующим образом:

 

Сохраняем представление.

Комментарии

Гость (не проверено) 1 августа 2019 г. 02:31

Ведь есть уже русская версия этого <a href="https://auslander.ru/category/polezno-znat/">продвижение сайта англоязычном интернете</a>.