2.9. Views - конструктор вывода материала. Новостная лента на Drupal 8.

Главные вкладки

levmyshkin 6 июля 2019 в 10:57

Модуль Views один из самых популярных модулей. Он позволяет выводить какие угодно данные Новости, Статьи, Комментарии, Термины таксономии в виде блоков, страниц, лент RSS, CSV-файлов, XML-файлов, да и во многих других форматах. И вот наконец-то в Drupal 8 Views в ядре! Теперь его не нужно устанавливать, Views идет в стандартной сборке.

Видео:
https://www.youtube.com/watch?v=G3iZ5JmQYZw

Давайте включим Views и начнем выводить данные.
Создадим тип материала Новость.

друпал 8 новость

Теперь мы можем создавать новости на сайте.

Добавим картинку к типу материалу Новость. Для этого зайдем во вкладку Управление полями. Можно использовать уже существующее поле field_image, которое уже используется в Статьях.

Добавляем поле

Создадим несколько новостей, чтобы было что выводить через Views:

Добавляем материал

Теперь мы можем создать наш первый View (в дальнейшем буду писать вью). Заходим в Меню — Структура — Views (возможно у вас слова Views будет переведен как «просмотры», «представления», «виды» или по другому):

меню структура

На странице Views мы создаем новый вью:

views создание

Давайте теперь по порядку заполнять форму создания нового вью. Сначала пишем имя вью, также можно указать и машинное имя вью. Машинное имя пишется только латиницей с использованием символа нижнего подчеркивания. Пишем имя вью Новости, выбираем что будем выводить материалы типа Новости. Также оставим чтобы выводились Newest first (сначала новые):

Views добавление вью

Дальше выбираем создание страницы, ставим галочку. Дальше вводим заголовок новой страницы Новости. Дальше вводим адрес по которому будет страница новостей, я написал novosti, вы можете написать new, news или другой путь как вам нравится. Выводить будем стандартным образом Unformatted list (то есть дивами, тегами div), выводить будем тизерами (кратким содержимым нод, об этом мы говорили в прошлых уроках). Выводим with links (allow users to add comments, etc.) , то есть с ссылками на добавление комментариев и читать далее, но без комментариев (without comments).

Если новостей будет много, больше 10, скажем 14 или 15, тогда нам понадобится навигатор по страниц, у нас по умолчанию стоит выводить на странице по 10 штук, а остальные новости мы можем посмотреть пройдя по ссылкам навигатора. Так что настройки навигатора оставим как есть Use a pager.

вьюс использование pager

Дальше мы можем выбрать в каком меню выводить ссылку на нашу новую страницу новостей. Я выбрал main navigation, это главное меню в шапке сайта. И вводим название ссылки Новости. Все! Сохраняем.

views сохранение

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

views новости

Новости на то и новости, что они должны постоянно быть на виду, поэтому помимо страницы, давайте сделаем и блок новостей с 3 последними новостями и ссылкой на страницу новостей.

Создадим еще один вью. Назовем его Новости блок, выберем вывод новостей.

views блок

В этот раз мы будем выводить не страницу, а блок. Выводить будем не форматированным списком (unformatted list), выводить будем поля (fields), по 3 новости. Теперь сохраняем наш вью. В блоке мы не будем использовать pager.

Теперь мы можем продолжить редактировать наш вью.

Views поля

Здесь у нас много блоков настроек Заголовок, Формат, Поля, Фильтры, Сортировка, Настройки блока, еще один Заголовок, Подвал, Вывод при отсутствие результата, Пейджер и другие расширенные настройки. В следующих уроках мы подробно разберем каждый из пунктов, пока давайте добавим еще одно поле даты публикации, выше чем заголовок новости.

views добавляем поля

Теперь нужно найти нужное поле, а именно дату публикации (post date). Для этого пишем в поиске полей post (или дата публикации, если поле переведено) и ставим галочку, чтобы вывести поле. После этого сохраняем изменения.

Views поле posted

Дальше нужно выставить формат даты, также я снял флажок с вывода лейбла:

drupal views убираем label

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