Перейти к основному содержанию

Drupal 9 — похожие статьи

Drupal 9

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

friday

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

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

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

drupal

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

drupal

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

drupal

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

drupal

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

drupal

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

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

drupal

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

drupal

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

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

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

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

drupal

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

drupal

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

drupal

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

drupal

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

drupal

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

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

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

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

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

drupal

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

drupal

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

drupal

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

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

drupal

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

drupal

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

Результат

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

drupal

В игре:

drupal

В книге:

drupal

Теги

 

Похожие материалы

Обновление Drupal 9 до Drupal 10 в Windows

Пока не закончились новогодние праздники нужно успеть сделать одно хорошее дело. А именно, обновить движок сайта с Drupal 9 на Drupal 10. Посетителей не много, все отдыхают. Так что самое время.

Drupal — добавляем виджет комментариев "В контакте"

Раньше у меня на сайте стояла система комментариев Disqus. В какой-то момент времени она стала отображать назойливую рекламу. Было принято решение поставить на Drupal 8 виджет комментариев "В контакте".

Теги

Drupal — размещение блока в произвольном месте статьи

Многие владельцы сайтов сталкиваются с необходимостью размещения дополнительных блоков в своих статьях. Это может быть рекламный блок или какое-то объявление. Или просто какое-то декоративное праздничное оформление сайта.

Теги