Вариант строки поиска с автоподстановкой без использования Search API

Чт, 17/11/2016 - 09:55

Как уже многие начали составлять методички о внедрении поиска с автоподстановкой на сайт.
http://drupal.ru/node/130905 gun_dose предлагает внедрять подобное на сайт с Search API, я пишу от поиске без Search API. Результат тут http://ukrigrushka.com.ua/

Понадобятся модули:
 search_autocomplete
 better_exposed_filters
 mefibs
 views_selective_filters
 views_block_filter_block - не обяз

Поехали.

1. Вьюха, которая выводит товары. Помещена на отдельную страницу.

main-view

Ставим 2 блока для вывода фильтров

1) Строка поиска (в шапке, то для чего вы это читаете) - блок defaul
2) Фильтры производитель, материала, тип товара - блоки с фильтрами. Необязательно, но я поставил.

2_-_main-view_-_blocks.png
3_-_main-view_-_blocks_-_def.png

Будут выглядеть так:
primer1
primer2

Расставляем фильтры вьюхи по блокам.

1) Строка поиска ищет по заголовку товара, поэтому Заголовок в блок default
2) Каталог, Производитель, материал и т.п. - в блок с фильтрами. Внимание! Использован views_filters_selective.

4_-_main-view_-_filter_1.png
5_-_main-view_-_filter_5.png

Настройки Better Exposed Filters

6_main-view_-_bef1.png
7_main-view_-_bef2.png

Расставляем блоки в теме

1) Блок строки поиска - в "шапку". У меня регион для телефонов.
2) Блок остальных фильтров в содержимое. Показывать блок только на странице product-search* - путь главной вьюхи (крутим вверх.)
8_blocks_1.png
9_blocks_2.png

2. Вьюха автоподстановки. Выпадает в строке поиска.

В автоподстановке строки поиска будут выводиться:
- название товара
- его картинка
но можно выводить любые поля.
10_autocompl-view.png
11_autocompl-view-row-sett.png

3. Настройки автоподстановки.

Собственно настройки модуля search_autocomplete. Находяться по адресу admin/config/search/search_autocomplete
Добавляем форму. Я уже добавил, поэтому редактирую свою.
12_-_autocompl_-_base.png
13_-_autocompl_-_sett_1.png
14_-_autocompl_-_sett_2.png

Самое главное тут:
Use an existing view: - вьюха автоподстановки.
ID-селектор этой формы - Инпут строки поиска в "шапке". Firebug в помощь. Либо временно на странице настроек модуля включить "Use autocompletion helper tool for Search Autocomplete administrators."

6 Спасибо

Комментарии

Аватар пользователя bumble
9 months 3 дня назад bumble #

На главной.

0 Спасибо
Аватар пользователя VasyOK
9 months 3 дня назад VasyOK #

Кому что не понятно - спрашивайте. Возможно что-то и забыл.

0 Спасибо
Аватар пользователя serj7
1 month 5 дней назад serj7 #

На мультиязычном сайте из Entity Translation не приходилось такое делать ?
В ишьюсах модуля пишут что мультиленг не работает. https://www.drupal.org/node/2596775
Сам пытался связи у вьюхе накрутить, для второго языка автокомплит не работает никак.

0 Спасибо
Аватар пользователя VasyOK
1 month 5 дней назад VasyOK #

не приходилось. Попробуйте для нод указать выбор языка нейтрально. Ну на карйняк разные блоки поиска для разных языков.

0 Спасибо
Аватар пользователя serj7
1 month 5 дней назад serj7 #

Разные блоки поиска для разных языков я и не могу сделать, когда в настройках вьюхи указываю только второй язык, ничего не работает.
Могу вывести редакции всех языков ноды сразу, но если фильтровать только второй язык, выдача не работает.
Сейчас думаю над вариантом Search API, может там получится.

0 Спасибо
Аватар пользователя serj7
1 month 5 дней назад serj7 #

Сделал все таки.
1. Вьюха, которая выводит товары.
1.1. Делам клон страницы для каждого языка.
1.2. Добавляем связь "Содержимое: Entity translation: translations".
1.3. Поля добавляем через "Entity translation:", Например: "Entity translation: Заголовок". В настройках этого поля указываем язык.
1.4. Добавляем фильтр "Entity translation: Язык" из связью "Translations" и выбираем нужный язык.
Пример: "(Translations) Entity translation: Язык (= Английский)".

2. Вьюха автоподстановки. Выпадает в строке поиска.
2.1. Для каждого языка полностью клонируем вьюху, и настраиваем отдельно. (Полный клон нужен для настроек форм у "Search Autocomplete settings").
2.2. Добавляем связь "Содержимое: Entity translation: translations".
2.3. Поля добавляем через "Entity translation:", Например: "Entity translation: Заголовок". В настройках этого поля указываем язык.
2.4. Добавляем фильтр "Entity translation: Язык" из связью "Translations" и выбираем нужный язык.

3. Настройки автоподстановки.
3.1. Для каждого языка отдельная форма с указанием вьюхи автокомплита и селектора поисковой формы.

4. Вывод блоков
4.1. Включаем модуль Block languages из пакета i18n.
4.2. В настройках каждого блока указываем для какого языка его отображать.

0 Спасибо
Аватар пользователя Studio VIZA
1 month 5 дней назад Studio VIZA #

Большое спасибо за инфу, а то всё как то - Ты тут ... лет, а до сих пор ... ))

0 Спасибо
Аватар пользователя VasyOK
1 month 5 дней назад VasyOK #

Пожалуйста. Благодаря serj7 я понял, что не одинок во вселенной. И еще благодяря 2-м товарищам, которые не могли настроить видимость блока через модуль context.

0 Спасибо