Проблема с поиском по каталогу.

Главные вкладки

Аватар пользователя Splinter Splinter 15 мая 2012 в 6:17

Доброе утро.
Заказчик поставил задачу сделать поиск на сайте по категориям. У товара есть 2 словаря, откуда выбираются термины. Первый это тип продукта (трансмиссия, тормозная система и тд) и второй модели (ваз 2110, ваз 2111 и тд) они не зависимы. Так вот в поиске надо сделать так, чтобы когда я выбрал "трансмиссия", то во втором select'е были только те модели (ваз 2110, ваз 2111 и тд) какие обязательно будут на сайте, чтобы никогда не было пустого результата в поиске.
Пример:
1 товар: каталог - трансмиссия и модель - ваз 2110
2 товар: каталог - тормозная система и модель - ваз 2111
При выборе в первом селекте "трансмиссия" во втором был только "ваз 2110", и не было "ваз 2111"

Такое вообще реально сделать? буду очень признателен за любую помощь.

Комментарии

Аватар пользователя divined divined 15 мая 2012 в 10:28

На ум приходит только одно легкое решение (условно) это объеденить словари в 1 с иерархией и использовать Hierarchical Select.
И второе более сложное с использованием хука, примерные этапы:
(Если работают мои телепатические способности и вы используете Exposed Filters)

1. Хук на фильтры (не помню как называется, где-то делал)
- в котором добавляем первому select'у ahah callback,
- второй селект помещаем в wrapper, который бедет перезаписан после выполнения callbaсk'а
2. Создаем свой модуль, в котором:
- определяем ссылку меню типа menu_callback,
- определяем функцию обработчик, которая будет возвращать результат при обращении по указынному в меню адресу.
3. В этой функции пишем запрос к БД, выбирая значению с учетом первого селекта и создаем копию элемента второго селекта, который потом и возвращаем.

Это примерно и в 2-х словах, подробнее: DRUPAL AHAH

Аватар пользователя Chyvakoff Chyvakoff 15 мая 2012 в 10:43

"divined" wrote:
На ум приходит только одно легкое решение (условно) это объеденить словари в 1 с иерархией и использовать Hierarchical Select.

легкое,но будет жутко неудобным..особенно если словари будут расширяться.

А так достаточно "нагруженным" ваш фильтр будет, кажется.