Extra Block Types (EBT) - New Layout Builder experience❗

Extra Block Types (EBT) - styled, customizable block types: Slideshows, Tabs, Cards, Accordions and many others. Built-in settings for background, DOM Box, javascript plugins. Experience the future of layout building today.

Demo EBT modules Download EBT modules

❗Extra Paragraph Types (EPT) - New Paragraphs experience

Extra Paragraph Types (EPT) - analogical paragraph based set of modules.

Demo EPT modules Download EPT modules

Scroll

4.5.0. Обзор модуля Views.

17/11/2019, by Ivan

Если вы заинтересовались друпалом, то значит вы рано или поздно дойдете до модуля Views. Этот модуль позволяет выводить практические все что есть в друпале: пользователи, контент, комментарии, таксономию. Причем он позволяет выводить таблицами, блоками, слайдерами, календарями, списками, графиками и другими видами данных и оформлений. Этот модуль внесли в ядро друпала начиная с 8ой версии. Так давайте же осмотрим этот модуль пока издалека.

Первое на что стоит обратить внимание это размер модуля оба модуля Views, Views UI занимают 808 и 3.6 мегабайт это примерно как 4 тома романа "Война и Мир". Просто огромный модуль, но вам не нужно знать как он работает, чтобы использовать его. Во Views есть довольно большой интерфейс, с которым при желение можно разобраться без знания программирования.

В меню друпала Views находится в Структура - Представления (Views):

drupal 8 views

Как видите уже из коробки Views выводит главную страницу, новые комментарии, пользователей которые зашли недавно на сайт и многие другие списки.

Давайте зайдем Views для главной страницы, для этого нажмите кнопку Правка в строке вьюса Frontpage (Главная). Не пугайтесь обилию настроек, со временем мы разберем каждую из них.

drupal 8 views

 Ниже я буду приводить описание каждого из блоков и ссылку на соответствующую статью описывающий этот блок.

В первую очередь нужно обратить внимание на что выводить  Views:

drupal 8 views

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

Дальше мы можем задать административный заголовок Отображать название, которое будет отображаться внутри вьюса и везде, где этот вью можно будет вывести. И ниже отображается заголовок, который уже будет отображаться непосредственно на сайте, странице или блоке.

drupal 8

Ниже идет блок формат и здесь уже начинается интересное. Views можно расширять другими модулями и тем самым расширять возможности выводить информацию. Например если вы поставите модуль Views Slideshow, то можно будет выводить слайдеры:

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

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

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

Подобных модулей очень много, вы без труда сможете найти то что нужно пользуясь поиском google и вбивая Drupal views (название того что хотите вывести)

По умолчанию мы можем выводить блоками (Неформатированный список), HTML списком (теги <ul>, <li>), Сетка (таблица без заголовков), Таблица (с заголовками и возможностью сортировки).

В настройке Показать мы можем задать каким образом выводить данные во вьюсе полями или полностью выводом тизера или сущности целиком. Это довольно-таки удобно использовать тизеры. Допустим у нас есть стандартный вид отображения товара в тизере: картинка, название, цена и кнопка купить. Нам нужно отображать этот вид товара во многих блоках: категориях, похожие товары, рекомендованные товары, корзина. Если мы не хотим дублировать CSS код, мы можем просто стилизовать один раз вывод тизера и дальше этот тизер вставлять в другие вьюсы.

Поля

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

Критерии фильтрации

Нам не всегда нужно выводить все ноды, все комментарии, иногда нужно вывести только новости за неделю, только пользователей с ролью Администратор, только свежие комментарии. Для этого мы можем использовать фильтры.

Критерии сортировки

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

Настройки страницы

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

Шапка и Подвал

Позволяет выводить данные вверху или снизу вьюса. Причем мы можем не ограничиваться простым HTML, но и вставлять поля из вью или даже вставить другой вью, в наш вью.

Поведение при отсутствие результатов

Функционал этого блока такой же как и у Шапки, только здесь он срабатывает когда вью не получает на вывод никаких данных.

Постраничный навигатор

Пагинатор нужем нам когда списки очень большие и нам нужно их разбить на чати. Например у нас 100 новостей и было бы неплохо выводить их по 10 штук на странице.

Язык

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

Расширенные настройки Views'a 

Здесь у нас начинается блок, для понимание котого требуется более глубокое погружение.

drupal 8 extended

Контекстные фильтры

Контекстные фильтры позволяют выводить данные основываясь на URL страницы, например если это node/10, то эти фильтры выводят данные для ноды с id 10. Можно настроить этот фильтр на работу с пользователями и на странице аккаунта пользователя будет выводиться ноды созданные им.

Связи

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

Раскрытая форма

Это настройки для фильтров выбранных как Exposed (Расширенные), чтобы можно было динамически менять фильтры вью для поиска пользователем.

Остальные настройки

Машинное имя дисплея вью, можно поменять для большей читаемости, вместо page_3, page_4.

Administrative comment - служит для заметок к этому вью, которые выводятся администраторам сайта.

Использовать Ajax. Ajax для вью может работать с пагинатором, то есть у вас выведены 10 новостей, вы кликаете на пагинатор, чтобы вывести вторые 10 новостей и они загружаются без перегрузки страницы.

Скрыть вложения в анонсе. Эта настройка позволяет скрывать attached summary, в который можно вывести другой вью, например это используется в глоссарии, где сверху показывается список букв, а снизу содержание для этих букв.

Контекстные ссылки. Нужны для быстрого перехода в редактирование вью.

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

Настройки запроса. Когда вы используете связи, то записи при выводе могут дублироваться, в этом случае вы можете зайти  эту настройку и выставить Distinct для вью.

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

CSS-класс. Вы можете задать кастомный класс, для более удобной темизации вью.