• урок
  • pantey

Создание раскрытых фильтров в drupal (Exposed Filter)

29.08.2012

Что такое раскрытый фильтр, это некое поле на вашем сайте, которое даёт возможность вашим пользователям самостоятельно отфильтровывать материал по каким либо параметрам, параметры могут быть совершенно различные . Выглядят такие фильтры примерно вот так:

Я на конкретном примере продемонстрирую создание таких фильтров. В качестве подопотного у меня используется Drupal 6, от Drupal 7 создание не отличатся, разве что только интерфейс другой. Итак, стоит некая задача, а именно необходимо предоставить пользователям самостоятельно отфильтровывать материалы (node) по конкретным словарям.

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

После подключения модуля нам необходимо создать новое представление (или вьюха). Поэтому идём по пути Кофигурация->Представление И кликаем по пункту «Добавить».

Далее нам необходимо заполнить некоторые поля, обязательным которым является только одно, - это имя представления (писать нужно на английском, так как данное название используется внутри системы). Я назову его «exposed». И так как нам нужно отфильтровывать «node», то в качестве «Типа представления» - выбираем «Материал».

И нажимаем «Далее».
Откроется панель, где мы будем творить (хотя творить, понимаю что громко сказано). И первоначально произведём настройки представления по умолчанию, а именно нам нужны анонсы материалов, а не поля, поэтому в пункте «Основные настройки» в пункте «Стиль строки» меняем со значения «Поля» на «Материал»

И нажимаем «Обновить». Далее выбираем что нам необходимо именно анонсы материалов

И далее «Обновить» и «Сохранить».
Теперь приступаем к созданию самого раскрытого фильтра. Переходим в пункт «Фильтры» и нажимаем «+». Перед нами открываются все возможные варианты фильтрации, нам же необходимо отфильтровывать по словарям, поэтому в «Группы» мы выбираем «Таксономия», что бы ограничить зону поиска необходимого фильтра и далее Выбираем «Таксономия:словарь»

Далее «Добавить». Теперь нам необходимо выбрать словари по которым будет происходить фильтрация, выберу их все и далее раскрою фильтр (раскрывается он одной кнопочкой «раскрыть»)

Далее поставим галочку напротив «Ограничить список выбранными элементами» и введём метку для раскрытого фильтра.

И далее «Обновить» и «Сохранить».

Теперь нам необходимо, что бы данный фильтр был доступен для пользователей, поэтому добавляем вид как «Страница» , в настройках которого нам необходимо произвести следующие действия. Если это страница, то для её просмотра нам нужен адресс, поэтому в пунте «Настройка страницы» «Путь» впишем адресс как exposed_filter. А для удобства пользователей, разместим наш фильтр в блок, чтобы мы потом с вами могли вытащить его в любой регион, для этого в пункте «Отображать в блоке» ставим –«ДА».

Далее жмём «Обновить» и «Сохранить». Теперь переходим в управаление блоками нашего сайта и выведем наш с вами фильтр в какой нибудь регион, я выведу допустим в правый регион.

И сохраняем. Теперь переходим на сайт и смотрим, что у нас получилось:

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

-->
Узнавай о новых статьях сайта - первым. Просто подпишись на рассылку.

Комментарии (1)

Profile picture for user 1541
Никита
08.04.2016

Можно ли использовать иерархию в списке фильтров? Скажем есть УСЛУГИ, затем УСЛУГИ 1кат и УСЛУГИ 2кат, ну и в них соответственно услуга 1.1, услуга 1.2, услуга 2.1 и услуга 2.2... Так например Если выбрать УСЛУГИ 1кат фильтруются ноды с услугами 1.1. и 1.2, ну и конечно если скажем выбрали услугу 1.1., то и материалы отображаются с услугой 1.1.
Спасибо!