Перейти к содержимому


Фотография
- - - - -

Поля фильтра в зависимости от категории


Лучший Ответ SmetDenis , 19 December 2013 - 12:44

Как сильно фильтры отличаются друг от друга у разных категорий?
Сколько полей у типа материала "товар"?
Как понимаю у каждой категории свой типа товара и скорее всего фильтры сильно разнятся между собой.

Может есть смысл сделать разные типы материалов.
не смотря на что, что ограничений не кол-во полей в материале нет, есть большая вероятность, то будут проблемы с производительностью при поиске (в основном из-за ограничений MySQL)
Проблемы с производительностью могу быть заметны после 40-50 полей в материале.

Конечно делать 300 типов и настраивать 300 фильтров - это мягко говоря, не айс =)
Но может получится выделить какие-то группы итд... К сожалению, слабо представляю что сейчас творится на подобном сайте.

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

$positionName = 'category_' . $this->app->jbrequest->get('category_id');
if ($this->checkPosition($positionName)) {
    echo $this->renderPosition($positionName);
}
При этом в XML будут перечислены все варианты

Чтобы ограничить поиск по определенному разделу сайта, можно в скрытое поле категории добавлять текущий ID с помощью небольшого скрипта JS. Перейти к сообщению


  • Закрытая тема Тема закрыта
Сообщений в теме: 6

#1 Vital

Vital

Отправлено 16 December 2013 - 18:46

Здрасьте всем!

 

Ситуация такова - есть каталог с типом "товар" на 15 тыс. товаров. Категорий порядка 300 шт. Сразу скажу, что речь идет о каталоге офисной, банковской и т.п. техники. Так что у товара может быть  огромное количество характеристик.

Так вот, заказчик хочет, чтобы к каждой категории был собственный  фильтр по полям товара (производитель, какие-то характеристики и т.п.).

Тут возникает идея сделать несколько типов товара и для них прописать производителя, характеристики и т.п., НО ведь для реализации подобных фильтров потребуется "..уева" туча модулей с привязкой к определённым пунктам меню или через Adv.ModuleManager привязка к категориям Zoo.

Как попробовать сделать универсальный модуль фильтра (типа All-In-One) :) ?

 

Можно ли обойтись одним типом "товар" для всех товаров (предварительно настроив ВСЕ ВОЗМОЖНЫЕ ХАРАКТЕРИСТИКИ) и фильтровать вывод этих полей в зависимости от в текущей категории?

 

P.S.

Оригинал сайта с таким функционалом http://www.foroffice...oducts/mfu.html (понятное дело БИТРИКС).

Заказчик хочет "пуля в пулю" такой функционал. Еще он "давит на мозоль" сделать сортировку в текущей категории по "цене и названию".


  • 0

#2 SmetDenis

SmetDenis

Отправлено 19 December 2013 - 12:44   Лучший Ответ

Как сильно фильтры отличаются друг от друга у разных категорий?
Сколько полей у типа материала "товар"?
Как понимаю у каждой категории свой типа товара и скорее всего фильтры сильно разнятся между собой.

Может есть смысл сделать разные типы материалов.
не смотря на что, что ограничений не кол-во полей в материале нет, есть большая вероятность, то будут проблемы с производительностью при поиске (в основном из-за ограничений MySQL)
Проблемы с производительностью могу быть заметны после 40-50 полей в материале.

Конечно делать 300 типов и настраивать 300 фильтров - это мягко говоря, не айс =)
Но может получится выделить какие-то группы итд... К сожалению, слабо представляю что сейчас творится на подобном сайте.

Можно попробовать сделать один шаблон с несколькими группами позиций, которые будет видно для разных категорий.
Первое что приходит на ум сделать в шаблоне фильтра такое
$positionName = 'category_' . $this->app->jbrequest->get('category_id');
if ($this->checkPosition($positionName)) {
    echo $this->renderPosition($positionName);
}
При этом в XML будут перечислены все варианты

Чтобы ограничить поиск по определенному разделу сайта, можно в скрытое поле категории добавлять текущий ID с помощью небольшого скрипта JS.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#3 Vital

Vital

Отправлено 19 December 2013 - 19:35

Дааа, походу придётся делать тучу типов и такое же количество фильтров....Я уже подумал и смирился с этим.

 

P.S. Денис, а не получится ли "побыстрому" каким-нибудь "хаком" сделать сортировку в текущей категории по цене "туда-сюда" , по названию и популярности(можно и по кол-ву просмотров)?


  • 0

#4 SmetDenis

SmetDenis

Отправлено 21 December 2013 - 12:22

P.S. Денис, а не получится ли "побыстрому" каким-нибудь "хаком" сделать сортировку в текущей категории по цене "туда-сюда" , по названию и популярности(можно и по кол-ву просмотров)?
 

 

Сортировку "туда-сюда" можно сделать с помощью той же формы фильтра

только все поля должны быть скрытыми.

тогда после поиска они сами наполнятся параметрами запроса.

 

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


  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#5 Raikerock3

Raikerock3

Отправлено 23 December 2013 - 20:43

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


 

 

Сортировку "туда-сюда" можно сделать с помощью той же формы фильтра

только все поля должны быть скрытыми.

тогда после поиска они сами наполнятся параметрами запроса.

 

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

 

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


  • 0

#6 Raikerock3

Raikerock3

Отправлено 24 December 2013 - 02:48

Здрасьте всем!

 

Ситуация такова - есть каталог с типом "товар" на 15 тыс. товаров. Категорий порядка 300 шт. Сразу скажу, что речь идет о каталоге офисной, банковской и т.п. техники. Так что у товара может быть  огромное количество характеристик.

Так вот, заказчик хочет, чтобы к каждой категории был собственный  фильтр по полям товара (производитель, какие-то характеристики и т.п.).

Тут возникает идея сделать несколько типов товара и для них прописать производителя, характеристики и т.п., НО ведь для реализации подобных фильтров потребуется "..уева" туча модулей с привязкой к определённым пунктам меню или через Adv.ModuleManager привязка к категориям Zoo.

Как попробовать сделать универсальный модуль фильтра (типа All-In-One) :) ?

 

Можно ли обойтись одним типом "товар" для всех товаров (предварительно настроив ВСЕ ВОЗМОЖНЫЕ ХАРАКТЕРИСТИКИ) и фильтровать вывод этих полей в зависимости от в текущей категории?

 

P.S.

Оригинал сайта с таким функционалом http://www.foroffice...oducts/mfu.html (понятное дело БИТРИКС).

Заказчик хочет "пуля в пулю" такой функционал. Еще он "давит на мозоль" сделать сортировку в текущей категории по "цене и названию".

Вы решили данную проблему?

Сейчас тоже столкнулся с ней


  • 0

#7 Vital

Vital

Отправлено 24 December 2013 - 04:08

Вы решили данную проблему?

Сейчас тоже столкнулся с ней

В моем случае получается порядка 200 разных видов полей для товара, так что пришлось сделать разные типы товаров. Так что от идеи создания "универсального модуля" пришлось отказаться :(


  • 0




Click to return to top of page in style!