Опубликовано Ivan Abramenko от Пон, 11/18/2019 - 02:21

Для начала нам нужно научиться выводить блоки и страницы с помощью Views. Давайте начнем со страниц. Выведем все статьи нашего сайта.

Вывод страниц через Views.

 Давайте создадим наш первый вью (представление, view), заходим в меню Управление - Структура - Представления.

Views Filters

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

Views Filters

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

Views Filters

Нажимайте Сохранить и продолжить. Теперь давайте по порядку разберем все части конструктора Views:

Adding and Removing

Views Filters

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

Формат вывода

Views Filters

В формате вывода вы можете выбрать непосредственно Формат, бывает несколько форматов (по умолчанию):

HTML список - это список через  тег <ul>.

Неформатированный список - это вывод через тег <div>.

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

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

Поля или тизеры?

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

Views Filters

Теперь мы можем добавлять поля, давайте выведем поля Заголовок (title) и Содержимое (body) ноды:

view filter

Нажмите Добавить и выберите поле Содержимое: body. Метку можно убрать.

Views Filters

 Теперь у нас есть два поля Заголовок и содержимое, вы можете поэксперментировать и вывести дату публикации, автора, категории статьи или добавить поля к типу материала Статья и вывести их тоже в своем вью. Также обратите внимание на поле содержимого (body), мы можем его обрезать под нужное количество символов и добавить три точки. Для этого щелкните по полю боди и в окне настройки вывода поля поставьте галочку Обрезать содержимое (Trim this field maximum...) и пишем какое количество символов выводить:

Views Filters

Дальше нужно поставить галочку Удалить HTML-теги, чтобы в тексте не было не закрытых тегов, из-за этого может поехать верстка.

Views Filters

Теперь у нас есть поля, но мы еще можем формировать фильтры из каких нод выводить поля.

Фильтры

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

Views Filters

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

views

Если у вас в фильтрах есть Использование файлов.., то нужно удалить это фильтр и вместо него выбрать тип материала:

Views Filters

Чтобы удалить фильтр, нужно кликнуть на кнопку Добавить в области стрелочки и выбрать Rearrange, в появившемся окне вы сможете удалить фильтр. И потом добавляем фильтр по типу материала.

Views Filters

Также можно фильтровать по автору, по тегам и категориям и еще много по каким критерия, можете поэксперментривать с фильтрами сами. Теперь давайте перейдем к сортировке.

Сортировка

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

Views Filters

Сейчас у нас сортировка по дата добавления, причем чем новее материал, тем выше он будет в списке (если поставить по возрастанию, то будет обратный порядок). Но мы можем задать вес нашим материалам. Давайте добавим поле Вес нашей статье, чтобы это было положительным целым числом и минимум 1. О том как добавлять поля, вы можете посмотреть в прошлом уроке.

Views Filters

Теперь давайте добавим критерий сортировки Содержимое: Вес, порядок поставим по убыванию, то есть чем больше будет вес, тем выше будет статья в списке.

Views Filters

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

Для этого если на кнопке добавить кликнуть на стрелочку на кнопке и выбрать Rearrange, то с помощью крестиков можно поменять местами очередность сортировок.

Views Filters

Сохраняем вью. Все теперь можно создать несколько статей, зайти на сайт на страницу /articles (возможно вы прописали у себя во вью другой путь) и посмотреть результаты:

 Views Filters