Как сделать блок похожих статей на Drupal

блок ссылок на похожие статьи

Блок ссылок с похожими статьями становиться неотъемлемым атрибутом любого блога как комментарии или кнопки социальных сетей. У друпала, конечно же, есть готовое решение и даже не одно. Сегодня выберем кому что больше нравиться. Я старался написать достаточно подробную инструкцию, вам будет легче в этом разобраться если вы знаете как добавлять поля к контенту и работать с модулем views.

Начнём с модуля relevant content. Похожесть контента определяется модулем по терминам таксономии прикреплённым к контенту. Чем больше одинаковых терминов тем больше похожесть.

После установки модуля переходим в управление поля того типа контента, для которого мы хотим выводить ссылки на похожие материалы. Я буду делать на примере Article. Переходим в меню  Структура → Типы материалов → Article → Управление полями и добавляем новое поле Relevant Content.

добавляем поле relevant content

После сохранения нового поля мы переходим к настройкам.

настраиваем поле relevant content

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

Similar By Terms - ещё один модуль, который выводит список похожих статей в блоке. Для работы этого модуля необходим модуль Views. После установки переходим в меню Структура → Блоки и находим новый блок созданный модулем - Представление: Similar By Terms: Block. Задаём название блока и указываем на каких страницах он будет выводиться.

настраиваем блок с похожим контентом similar block

Похожесть контента, как и у предыдущего модуля определяется по таксономии. Если пост не имеет ни одного термина блок выводиться не будет.

На этом  настройку модуля Similar By Terms можно было бы закончить. Он своё дело сделала - ссылки вывел. Я предлагаю не торопиться и подробнее разобраться что это за модуль и как он работает. Те кто знаком с Views догадались что блок созданный модулем является представлением views, следовательно мы можем изменить вывод. Давайте добавим к ссылкам картинки из тизера.  Для этого переходим в меню Структура → Представления → Similar By Terms, жмём добавить поле(смотри скрин) и выбираем поле с картинкой.

редактируем представление Similar By Terms

Немного подправив настройки получаем вот такой блок похожих статей.

Блок созданный модулем Similar By Terms

Какой модуль выбрать? Всё зависит от того что вам нужно. Мне вариант с картинками больше нравиться. Только ссылки на похожие статьи мне привычнее видеть в конце поста а не в одном из регионов среди прочих блоков. Значит будем прикреплять блок к контенту. Здесь нам поможет модуль Viewfield. С помощью этого модуля мы можем прикрепить представление views как поле.

После установки переходим  Структура → Типы материалов → Article → Управление полями. Создаём новое поле. Тип поля выбираем представления. В настройках поля отмечаем Always use default value.

настраиваем поле-представление Similar By Terms

В значении по умолчанию выбираем similarterms-Block. Если выбрать similarterms-Master, получим обычный список ссылок без картинок.

В завершении несколько слов для тех кто выбрал второй вариант. Повторив действия описанные выше вы скорее всего не получите блок своей мечты. Отчаиваться не стоит. Большую часть ваших задумок можно реализовать используя модуль views. Я не стал описывать дальнейшие настройки по одной простой причине. Я не знаю как вы захотите выводить похожие статьи. Мне в сети попадались несколько разных вариантов и описывать все не имеет смысла. Вместо этого предлагаю вам написать в комментах или в контактах какой блок похожих ссылок вам нужен. Постараюсь ответить всем.

UPD: Со временем я отказался от использования модуля Viewfield. Причина в следующем. Мне нужно было разместить рекламу и форму подписки сразу после статьи. Я не стал всё это вставлять в шаблон, а добавил регион в ноду. Теперь любые блоки после текста вставляются через админку. Необходимость в модуле отпала и он был почти благополучно удалён.

Добрый день!
Спасибо за очень подробную статью!
Осталось несколько неразрешенных вопросов:
- как сделать картинки с анонсами других постов не в вертикальную линию, а в горизонтальную?

- у меня в блоге три типа материалов для каждого раздела свой. Так вот, я во view Similar By Terms добавила сразу три поля с картинками, т.к. если оставить какое-то отдно, то тогда не отображаются картинки в анонсах двух других типов материалов.

Fields Содержимое: Заголовок Содержимое: Image Содержимое: Team Image Содержимое: Portfolio Image Картинки выводятся нормально, все хорошо. Вот только остаются надписи на месте назагруженных картинок. Например, выводится заголовок, потом под ним слово Image (на месте незагруженной картинки), потом картинка, потом Portfolio Image.
Вопрос: как убрать эти ненужные слова на месте незагруженных картинок из анонсов?

Для полей с картинками в настройках есть раздел поведение при отсутствии результатов. Там нужно отметить "Скрыть при пустом значении".
У Вашего сайта очень интересная главная страница.

Спасибо, с этим вроде справилась.
А как на счет картинок не в вертикальную линию, а в несколько горизонтальных? Как это настроить?

У меня платная тема Other, такой дизайн первой страницы выводится специальным Vews.