І так давайте перейдемо безпосередньо до встановлення та налаштування потрібних нам модулів
установка модулів
На сторінці модулів включаємо:
Створення пошукового сервера
Йдемо в Конфігурація> Пошук і метадані> Search API (/ admin / config / search / search_api) і натискаємо Додати сервер.
Потім вводимо ім'я сервера, в випадаючому списку Клас сервісу (Service class) вибираємо Database service і зберігаємо.
створення індексу
Йдемо в Конфігурація> Пошук і метадані> Search API (/ admin / config / search / search_api), тиснемо Додати сервер (Add index).
Вводимо назву індексу, в поле Тип елемента (Item type) вибираємо 'Матеріал', в поле Сервер вибираємо Database server. тиснемо Створення індекс.
У формі відзначаємо галочками поля, за якими буде проводитися сортування, і зберігається.
Щоб можна було робити сортування за назвою Ноди, включаємо title і навпроти нього в випадаючому списку вибираємо тип string. а не fulltext. За fulltext сортування робити не можна.
Створення сторінки пошуку
На даному етапі з налаштуванням уявлення ми закінчили, тепер перейдемо безпосередньо до Фасетноє фільтру.
Викачуємо модуль Facet API. встановлюємо його, і на сторінці модулів включаємо два модуля: Facet API і Current Search Blocks. Останній створює блок з зі списком активних фільтрів і посилання для їх скасування. Також полягають модуль Search facets він знадобиться для інтеграції раніше налаштованого пошуку і facet API.
Тепер йдемо в Конфігурація> Пошук і метадані> Search API> Product Index (/ admin / config / search / search_api / index / product_index / facets), тут у нас з'явилася нова вкладка фасетами (Facets). де потрібно вказати поля (проіндексовані раніше) для фільтра і налаштувати їх відображення.
Для кожного від міченого поля буде автоматично створений окремий блок на сторінці блоків, так що після того як потрібні поля обрані, йдемо на сторінку блоків і розміщуємо їх в потрібному регіоні та послідовності.
Current Search Blocks
На сторінці налаштування блоків знаходимо блок Current search: Standard і розміщуємо його в потрібному нам місці. Потім йдемо в Конфігурація> Пошук і метадані> Current Search Block> Standart. і в самому низу знаходимо настройки видимості: ставимо або передостанній. або останній пункт (Display when either keywords are entered one or more facet items are active).
Відображення фільтра на довільній сторінці (відмінною від сторінки пошуку)
- Hide block: Yes
- Search page path: шлях до сторінці пошуку
- Facet field: вибираємо всі поля
Після переходимо на сторінку налаштування блоків, і розміщуємо щойно створений блок вище блоків фільтра. Тепер блоки фільтра будуть відображатися там же, де і даний допоміжний блок.
Сенс цих дій простий: щоб блоки фільтра могли перегляньте, їм потрібно отримати інформацію з бази даних. Допоміжний блок якраз і виробляє цей запит.
Множинний вибір (чекбокси в фільтрі)
Тепер в блоці фільтра можна вибирати кілька катигории відразу:
Патчим Jquery UI Slider: виправляємо вибір значень
Патчим JQuery UI Slider: налаштовуємо редирект
У версії модуля 7х-1.5 я зіткнувся з тим, що якщо віджет слайдера розташований на сторінці, відмінною від сторінки пошуку, то після зміни діапазону ціни відбувався пере направлення на поточну сторінку, а не на сторінку пошуку.
Помилка полягає в функии search_api_ranges_block_slider_view_form_submit () (файл search_api_ranges.module, рядок 364).
Я не став особливо розбиратися, що там і навіщо, просто трохи змінив код в рядку 427:
після чого проблема вирішилася.