Добрый день, товарищи!
Вроде бы уже определился с решением задачи. Но хочется, чтобы более опытные спецы посмотрели и сказали - правильное решение или нет.
Задача: есть маг на drupal6, ubercart 2, ну и разумеется все нужное: CCK, Views и т.д.
В магазине есть товары с разными характеристиками (пусть товары у нас будут лампочки): мощьность, напряжение на которое рассчитана лампочка, вид цоколя, производитель, цена.
В магазине надо реализовать фильтр, вроде такого, как здесь: http://www.h2odesign.ru/catalog?type=23&shop=391 (в левой колонке, розовый блок "выбираем товар").
Моё предполагаемое решение: к типу материала product с помощью CCK, навешать доп. поля (напряжение и т.д.). Сделать вьюху с фильтрами, в которой пользователь сможет управлять фильтрами, как написано здесь:
http://translate.drupal.ru/node/46928
http://remage.su/content/drupal-urok-vosmoi-eshche-nemnogo-pro-modul-vie...
и соотвественно в фильтрах указать поля CCK, в которых есть нужные характеристики.
Вопрос: решение правильное? Или есть реализации фильтра лушче?
И ещё. При данной реализации, формочка фильтра находится на странице, а мне нужно что бы она была в левом блоке. Я это довольно просто решил - когда готова вьюха, то через фаербаг подсматривал html-код, и его тупо копировал в блок. Может есть цевильное решение этого вопроса? Так что бы в блоке появлялась только формочка фильтра к вьюхе, без выводимых полей.
Комментарии
expose filter во views даст фильтры в блоке
а так реализация конечно же правильная. зачем выдумывать колесо.
Спасибо за подсказку. Только вот долго искал, где этот expose filter.
Оказывается всё просто: в настройках вьюхи, раздел "Основные настройки", там 11-я строчка "Отображать в блоке".
Народ, а может кто-нибудь подсказать, каким макаром сделали разные фильтры для разных категорий товаров?
Это стандартом не сделаешь походу.
ТОесть в вьювсе есть вывод Page и соответсвенно адрес. Как автоматом высвечивать фильтры по характеристикам, которые есть у данной категории товаров?
Т.е. у вас получается, что в разных категориях, разные типы нод?
Ну я бы просто сделал бы две разные вьюхи, где поставил бы фильтр по термину таксономии, и нужными характеристиками...
Ну получается вот как.
Вывожу список товаров уберкарта views-ом. То-есть на странице catalog/1 выводится список товаров который принадлежит к этому таксономическому термину или список подкатегорий.
Заменяю вывод товаров как описано здесь
http://artreaktor.com/metod-2...
Что нужно сделать:
Нужно сделать фильтры исходя из характеристик товара.
Типов товара может быть много и у каждого типа свои характеристики.
Если мы зашли в конкретную категорию, то выводятся характеристики товаров, которые есть у товаров данной категории, а в другой категории характеристики тех товаров.
В моем случае получается, что вьюха участвует ОДНА, выводит товары и фильтры.
Или тогда нужно делать Для каждой категории товаров разные вьюхи.
В идеале все характеристики должны определяться автоматически или пользовательский вариант указания ССК полей, по которым фильтровать.
Пример как на сайте розетки:
http://rozetka.com.ua/notebooks/c80004/filter/preset=netbooks/
Пробовал в views делать exposed фильтры, но идет конфликт с характеристиками других товаров. То есть Если у одного товара нет такой характеристики. И это не админский вариатн.
Можно конечно делать и для каждой категории, но тогда возникает много других ограничений, например, если в данной катгории не будет товаров, а будут только подкатегории, тогда нужно будет менять вьюху.
Очень заинтересовал вариант с ФАСЕТНЫМ поиском.
Удобно тем, что можно создать фасетный поиск только для определенного типа товара, выбрать галочками характеристики. Ну и сам фасетный считает сколько товаров есть и т.д.
Блоки можно выводить только на определенных страницах - тоже "не админский" вариант, но все же.
Пока что не решенная задача с фасетным - это с адресами.
Тоесть catalog/1 выводиться инфа вьюхой. Рядом на этой же странице фасетные блоки. И когда мы делаем выборку фастеным поиском, то нужно сделать как-то оставаться на этой странице чтоли.
Есть вариант вывода результатов фасетного поиска выбранной вьюхой и даже была заплатка как в этой вьюхе "прорезать" exposed filters. на америкосском сайте.
Вот здесь вот хуком http://drupal.org/node/243301
Понимаю, что много написал, но иногда много неточностей в задаче и условиях - это изначально провал.
Присоединяйтесь кто может и хочет! Я думаю, это стоящая задача и будет полезна многим.
делаешь столько views сколько тебе нужно отдельных блоков с фильтрами.
выводишь фильтры в блоки через экспозед фильтрс
настраиваешь вывод блоков на нужных страницах категорий магазина
не юзер френдли...
представь 150 товаров - тоесть 150 классов,,, и для каждого класа свои фильтры, так как у них свои поля ССК и т.д.
Фасетный поиск самое то...
Блоки, галочками отметил по каким сск полям фильтровать и дальше фасетный сам все делает.
при чем я настроил его с вьюхой и фильтрами сочетаться... даже после применения фасетного фильтра, учитывать и фильтры вьюхи...
тут просто вопросы такие:
1) это создание мульти-выбора... тоесть выбора не только одного, а двух и больше вариантов из категории.
2) автосоздание блоков фасетного поиска с прописанным конкретным местонахождением блоков, и видимостью по адресу, например взять за основу base path.
3) возможно переделать модуль таким макаром - чтобы не было 150 блоков, а все выводилось в одном.
Есть вариант другой.
Авто динамически генерировать exposed filters views по полям (например ССК) относительно url где они находятся и при этом ограничить вариант выбора сущесвующими у товаров на данной странице.
В общем сделать подобие Faceted search но продвинутей...
Есть у кого идеи? Может кто-то такое уже сделал?