Създаване на сложен филтър в Drupal 7 чрез изгледи

Днес продължаваме да изучаваме един от най-сложните модули в Drupal - модулът Views. В този урок ще ви кажа как да използвате този модул, за да организирате сложен филтър на сайта според някои критерии. Такива филтри обикновено се използват в онлайн магазини, където е необходимо да се филтрират продуктите по определени параметри, като цена, размер, мощност - като цяло параметрите могат да бъдат различни. В моя пример организирам избора на материали според следните параметри:

  1. Публикувано: ДА или НЕ
  2. Избор на вид материал
  3. Избор на таксономичен термин от речник.

Нека да започнем, имаме нужда от инсталирания модул Views и поне малко познания в областта на този модул.

Минаваме по пътя "Структура->изгледи->Добавяне на нов изглед" и влизаме в първоначалните настройки, в този случай въведохме само името на изгледа, останалото остава по подразбиране

създаване

Кликнете върху „продължи и редактирайте“. Сега имаме цяла страница с пълни настройки. По подразбиране показваме „Съдържание“ - в моя пример ще оставя този изход, ако имате нужда, можете да го промените на „Полета“. Отидете в секцията "Критерии за филтриране", където по подразбиране имаме един параметър, показан като критерий - "Публикувано"

създаване

Трябва да направим този критерий отворен. За да направите това, щракнете върху връзката „Публикувано“ и в прозореца, който се показва, поставете отметка в квадратчето до „Разширяване на филтъра за посетители, така че да могат да го променят“, в английската версия изглежда като „Изложете този филтър на посетителите, за да им позволите да го променят“

филтър

След поставяне на отметка се зареждат допълнителни параметри, променяме само етикета

филтър

И щракнете върху Прилагане. Сега нека създадем селекция въз основа на критерия "Тип материал". В секцията „Критерии за филтриране“ щракнете върху „Добавяне“

филтър

Къде по-нататък трябва да избираме от цялото разнообразие - критерият за филтриране, от който се нуждаем - "Съдържание: Тип"

филтър

Кликнете върху „Добавяне“. Сега трябва да направим този критерий отворен отново, така че поставяме отметка в квадратчето до „Отворете филтъра за посетители, за да могат да го променят“ и също така разрешаваме „Множествен избор“, така че потребителят да може да филтрира по няколко типа едновременно.

създаване

След това щракнете върху „Прилагане“. Сега просто трябва да добавим филтър по таксономични термини от речника. Отново в секцията „Критерии за филтриране“ щракнете върху „Добавяне“ и изберете необходимия филтър от списъка

създаване

Кликнете върху „Прилагане“. В прозореца, който се отваря, ще ни бъде представен списък с речници и метод за избор на термин. В нашия случай падащият списък е по-подходящ и поставете отметка в квадратчето до „Показване на йерархията“

създаване

Кликнете върху „Прилагане“. И сега този филтър трябва да бъде отворен, така че отново поставяме отметка пред „Разширете филтъра за посетители, така че да могат да го променят“, променяте етикета за заглавието на този филтър, маркирате от списъка с термини кои термини ще бъдат достъпни за избор на потребителите и можете също да активирате „Множествен избор“, така че филтрирането да се извършва едновременно по няколко параметъра. Освен това, ако проектът е голям, има смисъл да поставите отметка в квадратчето „Премахване на дубликати“, за да се отървете от повторенията по време на извеждане, но този метод увеличава времето за обработка.

създаване

Кликнете върху „Прилагане“. Разбрахме необходимите филтри, сега за удобство, нека покажем тези филтри като блок, така че впо-нататък го поставете в региона, от който се нуждаем. За да направите това, отидете в раздела „Разширени“ и в елемента „Разширена форма“ променете „показване в блока“ на стойността „ДА“

сложен

И след това запазете изгледа. Сега ще изведем този блок в региона. Отидете на „Структура->Блокове“, изберете нашия блок от списъка и го покажете в региона, в моя случай използвам шаблона Garland и показвам този блок в дясната колона. А сега да видим какво имаме на сайта

сложен

Както виждаме, имаме показани филтри. Сега нека се опитаме да филтрираме нещо