Найти тему

Drupal 9 — похожие материалы

Пятница, вечер, так и хочется какой-нибудь релиз выкатить. Но старческая мудрость и вековой опыт напоминают, что в пятницу релизы выкатывать не стоит.

Раз нельзя что-нибудь запилить на работе, пилим дома. Сделаю то, что давно откладывал на потом. Подключаю и настраиваю блок "Похожие статьи". Идея в том, чтобы для статей отображать похожие статьи, книги и игры. Для книг — похожие книги, статьи и тоже игры. Для игр — всё что на них похоже. Придумывать ничего не будем, воспользуемся модулем Similar By Terms. Он позволяет получать похожие материалы, на основе терминов таксономии, которые к ним привязаны.

https://www.drupal.org/project/similarterms

Перед тем как писать эту статью, я попробовал накатить этот модуль. Сначала ничего не получилось, а потом до меня начало доходить, что проблема не в модуле, а в описании к модулю. Все статьи не совсем верно выдают информацию, поэтому нужно пройти путь самому, вместе с вами. Сам пока не знаю что получится. Итак, устанавливаем модуль Similar By Terms. И включаем его. Я ставлю версию 8.x-1.5.

-2

Создаём новое представление, /admin/structure/views/add.

-3

Указываем имя представления, назову его "Похожие материалы". В настройках представления выбираю показывать Материал всех типов без сортировки. Страницу создавать не буду, только блок. Блок называю "Похожие материалы", формат отображение пока не применяю никакой: неформатированный список из заголовков. Хочется пока чтобы просто заработало, красоту потом наведём. Сохранить и редактировать.

-4

ПОЛЯ → Добавить.

-5

Категория: выбираю из списка Similar by terms. Доступно только одно поле — Similarity, выделяю галкой. Добавить и настроить поля.

-6

Данное поле с настройками по умолчанию выводит процент "похожести" материалов на нашу статью. Мне это поле потом не понадобится, но с ним нагляднее. Применить.

КРИТЕРИЙ ФИЛЬТРАЦИИ → Добавить.

-7

Добавляю тип материала. Добавить и настроить критерий фильтрации.

-8

Указываю галками типы материалов, которые будут отображаться в блоке похожих материалов. У меня это:

  • DOS игра
  • Книга
  • Статья

Другие мне не нужны. Применить.

КРИТЕРИЙ СОРТИРОВКИ → Добавить.

-9

Категория: выбираю из списка Similar by terms. Доступно только одно поле — Similarity, выделяю галкой. Добавить и настроить критерий сортировки.

-10

Сортировать будем по убыванию. Соответственно, в вывод будут попадать материалы с самым большим процентом "похожести", что нам и нужно. Применить.

-11

Разворачиваем правый блок РАСШИРЕННЫЕ. КОНТЕКСТНЫЕ ФИЛЬТРЫ → Добавить.

-12

Категория: выбираю из списка Similar by terms. Доступно только одно поле — Nid, выделяю галкой. Добавить и настроить контекстные фильтры.

-13

Когда значение фильтра недоступно — передаём значение по умолчанию. А оно по какой-то причине в Drupal 9 недоступно, хотя разработчики пишут другое. Указываем "Передать значение по умолчанию", тип "ID материала из URL". Можно выделить галками термины таксономии, которые будут участвовать в фильтре, у меня это:

  • Авторы
  • Категории игр
  • Лицензия
  • Теги

Но если участвуют все словари, то рекомендуется их не указывать. Можно ещё промотать вниз в раздел ЕЩЁ и выбрать значение Исключить (если выбрано, введенные в фильтр числа будут исключаться, а не ограничивать представление). Применить.

РАСШИРЕННЫЕ → Использовать агрегацию: Да.

Мотаю вниз до раздела Предпросмотр, указываю в поле "Предпросмотр с контекстными фильтрами" идентификатор любой статьи, у которой есть тег Linux. Обновить предпросмотр.

-14

Вывелись материалы на тему Linux, похоже на правду. Попробуем статью с тегом Windows.

-15

Вывелись материалы на тему Windows, очень хорошо. Попробуем указать идентификатор игры Quake.

-16

То что доктор прописал!

А теперь переделываем представление на свой вкус и цвет. Структура → Схема блоков → Расположить блок. Располагаю блок в материале, чтобы вывести его под статьёй.

-17

Находим наш блок и размещаем его. Разместить блок.

-18

Указываю типы материалов, для которых отображать блок. Сохранить блок.

Результат

Проверим что получилось. В статьях под блоком комментариев:

-19

В игре:

-20

В книге:

-21

Источник:

Drupal 9 — похожие статьи | internet-lab.ru

💰 Поддержать проект

Если вам понравилась статья, то ставьте 👍🏻 каналу.
Пишите комментарии, задавайте вопросы, подписывайтесь.