4.5.2. Views exposed filters. Доска объявлений на Drupal 8.

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

levmyshkin 8 июля 2019 в 11:13

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

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

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

drupal 8 ads

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

друпал 8 вьюс

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

друпал 8 поля

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

drupal 8 fields

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

друпал 8 поле суффикс

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

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

drupal 8 views

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

друпал 8

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

drupal 8

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

drupal 8

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

drupal 8

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

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

drupal 8

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

друпал 8