Недавно просмотренные материалы / Drupal 8

Создадим обвязку новостей в которую будут попадать недавно просмотренные материалы пользователя.


Установим модуль Recently Read:

composer require drupal/recently_read ; drush en recently_read -y

Переходим в настройки модуля:

/admin/config/system/recently-read

Ставим галки на «Включить» и необходимые типы материалов:

Недавно просмотренные материалы / Drupal 8 Разработка, Программирование, IT, Программист, Drupal, Backend, Web, Web-программирование, Разработчики, Веб-разработка, Просмотр, Просмотренное, Материал, Статья, Модуль, Views, Урок, Длиннопост

Мне нужна только «Новость»

Во вкладке «Конфигурация» модуля меняем настройки:

Недавно просмотренные материалы / Drupal 8 Разработка, Программирование, IT, Программист, Drupal, Backend, Web, Web-программирование, Разработчики, Веб-разработка, Просмотр, Просмотренное, Материал, Статья, Модуль, Views, Урок, Длиннопост

Как именно будет удалена информация о недавно просмотренных материалов у пользователя?

- Time based — спустя указанное время;

- Count based — при просмотре нового материала — старый в конце сотрется;

- Никогда — не будет удалятся.

Добавим новый блок представления с обвязкой, а в него — Связь:

Content recently read

Недавно просмотренные материалы / Drupal 8 Разработка, Программирование, IT, Программист, Drupal, Backend, Web, Web-программирование, Разработчики, Веб-разработка, Просмотр, Просмотренное, Материал, Статья, Модуль, Views, Урок, Длиннопост

В «Наборы» укажем необходимый тип материала:

Недавно просмотренные материалы / Drupal 8 Разработка, Программирование, IT, Программист, Drupal, Backend, Web, Web-программирование, Разработчики, Веб-разработка, Просмотр, Просмотренное, Материал, Статья, Модуль, Views, Урок, Длиннопост

Далее, в критериях сортировки добавляем «Created» с категорией «Recently read» с порядком «По убыванию».

Недавно просмотренные материалы / Drupal 8 Разработка, Программирование, IT, Программист, Drupal, Backend, Web, Web-программирование, Разработчики, Веб-разработка, Просмотр, Просмотренное, Материал, Статья, Модуль, Views, Урок, Длиннопост

Добавим в контекстные фильтры ID без связи «Recently read» со следующими настройками:

- Когда значение фильтра не доступно → Передать значение по умолчанию → ID материала из URL;

- More → Исключить → Ставим галку.


Это нужно для того, чтобы в обвязке не выводился материал, на странице которого находится пользователь.

Недавно просмотренные материалы / Drupal 8 Разработка, Программирование, IT, Программист, Drupal, Backend, Web, Web-программирование, Разработчики, Веб-разработка, Просмотр, Просмотренное, Материал, Статья, Модуль, Views, Урок, Длиннопост

Мои настройки блока представления выглядят вот так:

Недавно просмотренные материалы / Drupal 8 Разработка, Программирование, IT, Программист, Drupal, Backend, Web, Web-программирование, Разработчики, Веб-разработка, Просмотр, Просмотренное, Материал, Статья, Модуль, Views, Урок, Длиннопост

Выведем блок с обвязкой.

Переходим в схему блоков:

/admin/structure/block

Размещаем новосозданный блок представления в любом удобном для вас регионе:

Недавно просмотренные материалы / Drupal 8 Разработка, Программирование, IT, Программист, Drupal, Backend, Web, Web-программирование, Разработчики, Веб-разработка, Просмотр, Просмотренное, Материал, Статья, Модуль, Views, Урок, Длиннопост

Если нужно — меняем настройки, указываем область видимости:

Недавно просмотренные материалы / Drupal 8 Разработка, Программирование, IT, Программист, Drupal, Backend, Web, Web-программирование, Разработчики, Веб-разработка, Просмотр, Просмотренное, Материал, Статья, Модуль, Views, Урок, Длиннопост

Мой блок будет выводиться на страницах «Новость»

Теперь посетим несколько новостей и взглянем на обвязку:

Недавно просмотренные материалы / Drupal 8 Разработка, Программирование, IT, Программист, Drupal, Backend, Web, Web-программирование, Разработчики, Веб-разработка, Просмотр, Просмотренное, Материал, Статья, Модуль, Views, Урок, Длиннопост

На скриншоте мало что понятно, но все работает — честное слово :)