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

#
Список всех значений свойств и доп.свойств товаров, удовлетворяющих фильтру магазина
Возникли сложности при реализации такой задачи:
есть интернет-магазин, и фильтр по свойствам и доп.свойствам товаров.
Есть пожелание заказчика: если мы выбрали в фильтре какое-то значение, допустим по конкретному производителю, то после нажатия кнопки "применить" из списков всех других свойств и доп.свойств должны исчезнуть варианты, не удовлетворяющие нашему выбору.
То есть, например, если у нас в группе есть Жигули красные и синие, и мерседесы синие и белые, то изначальный список цветов должен быть "красный, белый, синий" а при выборе марки "Жигули" в списке цветов должны оставаться только "красный, синий", а белого быть не должно.

На первый взгляд проблема решается при обработке элементов списка, если сделать перед выводом проверку (например для доп.свойств)
<xsl:if test="/shop/item/property[@id = xx and value = yy]/node()">

т.е. если среди товаров есть хотя бы один, содержащий нужное значение для нужного свойства, то это значение надо выводить.

Но. Все удовольствие от такого простого решения обламывает пагинация.
Если у нас в первой десятке товаров нету ни одного товара красного цвета, то красный цвет на первой странице в список не попадет.
А если во второй десятке товаров есть товары красного цвета - то на второй странице красный цвет в списке появится.

Но пользователь-то этого не знает! И не увидев после применения фильтра красного цвета в списке расстроенный уйдет.

Пока на ум приходит только одно решение - передавать в xml всю выборку товаров, сколько бы их не было, а пагинацию делать искуственно, ограничивая вывод товаров по position().

Но такое решение не рационально, с точки зрения нагрузки.

В связи с чем вопрос: а нельзя ли как-то передавать в xml список значений свойств и допсвойств удовлетворяющих фильтру по всей выборке, а не только по 10 отображаемым на текущей странице товарам?
Заказов не беру. Консультирую редко.
#
Re: Список всех значений свойств и доп.свойств товаров, удовлетворяющих фильтру магазина
Ап.
Хотелось бы увидеть какой-то комментарий от разработчиков.
Заказов не беру. Консультирую редко.
#
Re: Список всех значений свойств и доп.свойств товаров, удовлетворяющих фильтру магазина
Kotoff, можете по средством SQL-запроса в коде типовой динамической страницы выбрать только те значения доп. свойств, которые заданы для товаров, выбираемых текущими параметрами фильтра. А после сформировать из них собственный XML-код(нужной вам структуры), чтобы передать его в метод ShowShop. Потому уже в коде XSL-шаблона отображать в форме фильтра для конкретного поля, соответствующего доп. свойству, не все его возможные значения, а только те, которые переданы вами через дополнительный XML.
#
Re: Список всех значений свойств и доп.свойств товаров, удовлетворяющих фильтру магазина
natalya, над этой идеей я тоже думал, но не нашел рационального пути ее реализации - у меня получилось что сначала, перед вызовом ShowShop() я делаю ту же самую выборку всех товаров, удовлетворяющих фильтру, чтобы потом собрать из них значения допсвойств, а потом такая-же выборка, только с ограничением по колчиеству выводимых элементов, происходит при выполнении метода ShowShop().
То есть получилось что фильтр, фактически, отрабатывает дважды, что весьма нерационально.

Возможно я чего-то не до конца понимаю в механизмах работы CMS.

Приведите, пожалуйста, пример такого SQL-запроса, о которым вы говорили.
Заказов не беру. Консультирую редко.
#
Re: Список всех значений свойств и доп.свойств товаров, удовлетворяющих фильтру магазина
Kotoff,
подскажите пожалуйста, нашли решение для вашей задачи? Сам сейчас столкнулся с подобной нуждой, но не справился...
yestravel
#
Re: Список всех значений свойств и доп.свойств товаров, удовлетворяющих фильтру магазина
yestravel, рационального так и не нашел.
Есть два сайта, на которых работает подобный фильтр, но они сложны в отладке и число доп.свойств из которых можно делать выбор ограничено двумя.
Решение к тому же получилось очень не гибкое и сложно масштабируемое - например добавление в выбор третьего доп.свойства усложняет логику в несколько раз.
Заказов не беру. Консультирую редко.
#
Re: Список всех значений свойств и доп.свойств товаров, удовлетворяющих фильтру магазина
Kotoff,
спасибо! Но и в данной ситуации Kotoff писал(а):
<xsl:if test="/shop/item/property[@id = xx and value = yy]/node()">
я извлёк положительный момент от пагинации - с помощью доп. свойств вывел на списки небольшие тексты-описания, соответствующие товарам у которых эти свойства есть, так хоть теперь текст стал меняться динамически в зависимости от того, на какой странице списка находишься и какие товары на ней присутствуют , посмотрим, может это поисковикам понравится...
yestravel
Авторизация