Views + Attachments + Facets

Задача: создать страницу с Facets фильтрами где вверху будет отображаться карта с результатами поиска (фильтрации), а под картой тот же список материалов, но уже в виде списка.

facet.png

В Друпал 7 проблем нет никаких так как основная страница views, а также ее вложения зависимы, и результат поиска у них один при фильтрации Facets блоками. В Друпал 8 все немного сложнее так как логика работы модуля Facets была переделана, и теперь в настройках /admin/config/search/facets/YOUR_FACET_BLOCK_NAME результат для которого будет обрабатывать блок привязывается только к одному отображению, и вложения и блоки текущего Views более не будут зависимы от основной страницы.

faset-sto.png

Эта тема обсуждается здесь, и здесь, но предложенные решения у меня не работали. Предлагаю простой способ настройки без правки и написания кода, а лишь с использованием настройки контекстных фильтров.

Все что нужно это:

1. во вкладке "вложение" перейти в настройки "контекстные фильтры"

contextual_filters.png

2. добавить фильтр "All taxonomy term fields" не забыв при этом поставить настройку, что это только для текущей вкладки.

taxonomy.png

3. в настройках фильтра "All taxonomy term fields" выбираем "Передать значение по умолчанию ->> Необработанное значение из URL->>Компонент пути"

komponent_puti.png

Компонент пути - это уровень вложенности по которому находится ID нужного нам термина таксономии (выбранного фильтра Facet). Например для "siteurl/service/do/631" компонентом пути термина под ID 631 будет 3

4. В этом же окне настроек ниже в "Когда значение фильтра ДОСТУПНО или предоставлено по умолчанию" ставим галочку на "Укажите критерии проверки" и там выбираем "Действие в случае если значение фильтра недействительно ->> Отобразить все результаты"

znacheniya.png

Так мы настроили связь отображений вложения для одного из фасетных блоков (фильтра). Если у Вас 3 таких фильтра - повторяем все начиная с первого пункта для каждого из них меняя только цифру"Компонент пути". У меня например в примере три фасетных блока для этой страницы, и если отметить их все, адрес будет иметь вид /service/car/56/city/567/do/631. Поэтому как видно на скриншоте из шага №1 я добавил 3 таких контекстных фильтра где у первого компонент пути будет 3, у втрого 5, у третьего 7.

servisy.png

 И да, с включенным во Views Ajax такой вариант не работает.

Average: 7.8 (4 votes)