Кнопки как в ModStore
День добрый.
Что-то я упускаю, никак не могу понять… как реализовать такие кнопки как в modstore.ru в каталоге — «Все», «Платные», «Бесплатные».
У меня на сайте работает mSearch2 и mFilter2.
Мне нужна такая же дополнительная фильтрация, по другому свойству товара — стране производителя. Но суть, думаю, та же.
Как реализовать такой функционал?
UPD: Предложенный вариант с формированием ссылок рабочий, конечно, но он вызывает перезагрузку страницы.
Как бы решить эту задачу красиво, с Ajax как в МодСтор — ecommerce?paid=1
Что-то я упускаю, никак не могу понять… как реализовать такие кнопки как в modstore.ru в каталоге — «Все», «Платные», «Бесплатные».
У меня на сайте работает mSearch2 и mFilter2.
Мне нужна такая же дополнительная фильтрация, по другому свойству товара — стране производителя. Но суть, думаю, та же.
Как реализовать такой функционал?
UPD: Предложенный вариант с формированием ссылок рабочий, конечно, но он вызывает перезагрузку страницы.
Как бы решить эту задачу красиво, с Ajax как в МодСтор — ecommerce?paid=1
Комментарии: 11
Сделай фильтр чекбоксы, кнопки над карточками — это ссылки на выбранный фильтр, а из основного блока можно скрыть
Да, можно и так, попробую
Точнее, я думал об этом. Что-то вроде применения двух mFilter2 на одной странице. Показалось некорректным. Но попробую как вариант, спасибо
два mFilter2 — это если нужна логика по сложнее, а тут просто открытие страницы со значением фильтра, поэтому лучше не городить костыли
Оказалось не так просто…
[[!mFilter2@mikmFilter?
&paginator=`pdoPage@pdoPage_m`
&limit=`30`
&parents=`3`
&showEmptyFilters=`false`
[[$pdoPage-prefix?]]
&hideContainers=`1`
&element=`msProducts`
&where=`{ [[!+modx.user.id:is=`235`:then=`"Data.remains:>":0.001`:else=`"Data.remains:>":0.001,"Data.image:IS NOT":null`]]}`
&class=`msProduct`
&sort=`ms|remains:desc`
&filters=`
ms|mat
,ms|cattools
,ms|color
,ms|application
,msoption|ms_SlabsBackLight
,ms|weight
,ms|made_in
,ms|price:number
,ms|remains:number
`
&aliases=`
ms|mat==poroda
,ms|cattools==vidprodukcii
,ms|color==cvet
,ms|application==obrabotka
,msoption|ms_SlabsBackLight==backlight
,ms|weight==tolschina
,ms|made_in==country
`
&showLog=`0`
&tplFilter.outer.poroda=`tpl.mFilter2.filter.select`
&tplFilter.row.poroda=`tpl.mFilter2.filter.option`
&tplFilter.outer.vidprodukcii=`tpl.mFilter2.filter.select`
&tplFilter.row.vidprodukcii=`tpl.mFilter2.filter.option`
&tplFilter.outer.cvet=`tpl.mFilter2.filter.select`
&tplFilter.row.cvet=`tpl.mFilter2.filter.option`
&tplFilter.outer.obrabotka=`tpl.mFilter2.filter.select`
&tplFilter.row.obrabotka=`tpl.mFilter2.filter.option`
&tplFilter.outer.backlight=`tpl.mFilter2.filter.checkbox`
&tplFilter.row.backlight=`tpl.mFilter2.filter.option`
&tplFilter.outer.tolschina=`tpl.mFilter2.filter.select`
&tplFilter.row.tolschina=`tpl.mFilter2.filter.option`
&tplFilter.outer.country=`tpl.mFilter2.filter.select`
&tplFilter.row.country=`tpl.mFilter2.filter.option`
&tplFilter.outer.ms|price=`tpl.mFilter2.filter.slider`
&tplFilter.row.ms|price=`tpl.mFilter2.filter.number`
&tplFilter.outer.ms|remains=`tpl.mFilter2.filter.slider`
&tplFilter.row.ms|remains=`tpl.mFilter2.filter.number`
&tpls=`tpl.msProducts.row_m`
]]Вот так у меня формируется список фильтров. Мне нужно на странице каталога в верхней части (как в modstore) поставить 2-3 кнопки, нажатие на которые, отфильтрует результаты по конечному значению фильтра ms|made_in (страна). То есть кнопка «Россия» покажет товары российского производства, а кнопка «Импорт» покажет всю остальную продукцию. И, желательно, чтобы это и выглядело как в modstore, то есть без селектов, а именно кнопкой.
Сделай фильтр по стране чек боксом.
На Фроне отфильтруй по нужной стране, скопируй ссылку из браузера — это будет к тебя ссылка в первой кнопке.
Тоже самое сделай со второй
На Фроне отфильтруй по нужной стране, скопируй ссылку из браузера — это будет к тебя ссылка в первой кнопке.
Тоже самое сделай со второй
По стране «Россия» это делается легко, конечно, а как исхитриться и выбрать фильтром «Импорт», то есть не «Россия»?
выбери все кроме России =)
Понял в чем дело ) Чекбокс один выводился. Переписал вывод — норм. Сергей, спасибо за подсказки!
Понял в чем дело ) Чекбокс один выводился. Переписал вывод — норм. Сергей, спасибо за подсказки!
Отлично
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.