Ivan Abramenko 11/18/2019

Модуль Views позволяет не только задать фильтр и вывести материалы, но и позволяет изменять эти фильтры динамически. Давайте создадим небольшую доску объявлений недвижимости с помощью модуля Views.

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

drupal 8 ads

Теперь для нашего типа материала нужно добавить поля: Количество комнат, цена, адрес, телефон, имя. Заходим во вкладку Управление полями типа материала Объявление:

drupal 8 view

Для количества комнат нужно выбрать тип Список (текст):

drupal 8 fields

Дальше нужно выставить какие типы квартир бывают:

drupal 8 fields

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

drupal 8 field suffix

Поля адрес, телефон и имя нужно создать с типом Текст (plain).

Теперь когда у нас есть поля давайте создадим новый вью Объявления (Структура - Представляения - Добавить новое представление):

drupal 8 views

 Теперь давайте добавим фильтр Количество комнат и поставим вот эту галочку для exposed filters:

drupal 8 views

Это позволит вывести вот такой фильтр на странице объявлений:

drupal 8

Теперь если мы выбирем какой-нибудь из параметров, то будет  только один тип квартир:

drupal 8

Вы также можете добавлять любые другие поля Объявлению и выводить их как Exposed filters. Давайте добавим еще и цену в exposed filters.

drupal 8

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

Также помимо exposed фильтров, мы можем делать и exposed сортировку, например по цене, давая возможность пользователям выбирать сортировку по убыванию цены или по возрастанию:

drupal 8

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

drupal 8

О том как темизировать подобные формы вы сможете прочитать здесь:

http://drupalbook.org/ru/drupal/form-api-drupal-sozdanie-form-na-drupal