Заменить Фильтр Товаров
#1
Отправлено 16 Март 2016 - 20:04
Просьба помочь в замене фильтра товаров в шаблоне Лето на фильтр товаров из шаблона Город. (фильтр чек боксами)
#2
Отправлено 17 Март 2016 - 04:37
http://forum.storela...дающем-фильтре/
Подобный вариант вас устроит?
#3
Отправлено 17 Март 2016 - 10:13
Vaccina (17 Март 2016 - 04:37) писал:
http://forum.storela...дающем-фильтре/
Подобный вариант вас устроит?
Добрый день. Такой вариант не совсем удобен для клиента, визуализация фильтра в шаблоне "Город" более практичная, без выпадающих окон.
Его можно в шаблон Лето перенести? Уже вроде готовое решение, ничего нового придумывать не нужно.
#4
Отправлено 18 Март 2016 - 06:53
#5
#6
Отправлено 18 Март 2016 - 15:46
1. Не сортируются товары при выборе любого чек бокса (см.вложение). Нужна настройка: выбор чек бокса - автоматическая сортировка по выбранной характеристике. (сейчас товары сортируются выбором чек бокса и нажатием клавиши "Показать")
2. После сортировки товаров, в блоке "Активные фильтры", при нажатии на крестик (для сброса фильтра) ничего не происходит. (см. вложение). Нужна настройка: сброс фильтра нажатием на крестик в блоке "Активные фильтры"
#7
Отправлено 19 Март 2016 - 02:00
<!-- Фильтры по характеристикам товаров (Например: Производитель, разрешение экрана, заряд аккомулятора) --> {% FOR filter_attr_list %} <div class="filter"> <div class="title">{filter_attr_list.NAME}:</div> <ul> {% FOR values %} <li> <input type="checkbox" name="form[filter][attr][{filter_attr_list.ID}][{filter_attr_list.values.ID}]" value="1" id="filterAttrVal{filter_attr_list.values.ID}" {% IF filter_attr_list.values.CHECKED %}checked="checked"{% ELSEIF filter_attr_list.values.NB_GOODS_FILTERED=0 %}disabled="disabled"{% ENDIF %} /> <label for="filterAttrVal{filter_attr_list.values.ID}">{filter_attr_list.values.VALUE} <span class="red">({filter_attr_list.values.NB_GOODS_FILTERED})</span></label> </li> {% ENDFOR %} </ul> </div> {% ENDFOR %}
замените на:
<!-- Фильтры по характеристикам товаров (Например: Производитель, разрешение экрана, заряд аккомулятора) --> {% FOR filter_attr_list %} <div class="filter"> <div class="title">{filter_attr_list.NAME}:</div> <ul> {% FOR values %} <li> <input onchange="this.form.submit();" type="checkbox" name="form[filter][attr][{filter_attr_list.ID}][{filter_attr_list.values.ID}]" value="1" id="filterAttrVal{filter_attr_list.values.ID}" {% IF filter_attr_list.values.CHECKED %}checked="checked"{% ELSEIF filter_attr_list.values.NB_GOODS_FILTERED=0 %}disabled="disabled"{% ENDIF %} /> <label for="filterAttrVal{filter_attr_list.values.ID}">{filter_attr_list.values.VALUE} <span class="red">({filter_attr_list.values.NB_GOODS_FILTERED})</span></label> </li> {% ENDFOR %} </ul> </div> {% ENDFOR %}
и удалите:
<div class="goodsFilterPriceSubmit"> <center><button class="button" type="submit" title="Показать">Показать</button></center> </div>
#8
Отправлено 19 Март 2016 - 11:48
Спасибо! Все заработало!
#9
Отправлено 31 Март 2016 - 21:23
Vaccina (19 Март 2016 - 02:00) писал:
и удалите:
<div class="goodsFilterPriceSubmit"> <center><button class="button" type="submit" title="Показать">Показать</button></center> </div>
И в итоге фильтр выглядит так (см. скриншот) нет ни ползунка по цене, ни какого-то выделения, что это фильтр
http://natura.storel...tika-dlya-volos
Подскажите, пожалуйста, как исправить?
#10
Отправлено 01 Апрель 2016 - 02:45
<!-- Если в тарифном плане подключен модуль фильтров по товарам изменен подробности тут http://forum.storeland.ru/index.php?/topic/18679-%D1%80%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9-%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80/#entry190325 --> {% IF TARIFF_FEATURE_GOODS_FILTERS %} <!-- Фильтры по товарам. Появляются только на странице категории и поиска по товарам --> {% IF SHOW_GOODS_FILTERS %} <div class="filters"> <!-- Форма поиска отправляет всегда на ту же страницу, на которой находится пользователь --> <form action="" method="get"> <!-- Фильтры по характеристикам товаров (Например: Производитель, разрешение экрана, заряд аккомулятора) --> {% FOR filter_attr_list %} <div class="filter"> <div class="title">{filter_attr_list.NAME}:</div> <ul> {% FOR values %} <li> <input onchange="this.form.submit();" type="checkbox" name="form[filter][attr][{filter_attr_list.ID}][{filter_attr_list.values.ID}]" value="1" id="filterAttrVal{filter_attr_list.values.ID}" {% IF filter_attr_list.values.CHECKED %}checked="checked"{% ELSEIF filter_attr_list.values.NB_GOODS_FILTERED=0 %}disabled="disabled"{% ENDIF %} /> <label for="filterAttrVal{filter_attr_list.values.ID}">{filter_attr_list.values.VALUE} <span class="red">({filter_attr_list.values.NB_GOODS_FILTERED})</span></label> </li> {% ENDFOR %} </ul> </div> {% ENDFOR %} <!-- Фильтры по свойствам товарных модификаций (Например: Цвет, размер, модификация) --> {% FOR filter_prop_list %} <div class="filter"> {filter_prop_list.NAME}:<br /> {% FOR values %} <input value="1" onchange="this.form.submit();" type="checkbox" name="form[filter][prop][{filter_prop_list.ID}][{filter_prop_list.values.ID}]" {% IF filter_prop_list.values.CHECKED %}checked="checked"{% ENDIF %} /> {filter_prop_list.values.VALUE} {% ENDFOR %} </div> {% ENDFOR %} <input type="submit" value="Применить фильтр" style="width: 296px; padding: 4px 13px; font-size: 12px; margin: 10px 0 0 4px;" /> <div class="clear"></div> </form> </div> {% ENDIF %} {% ENDIF %} <!-- END Если в тарифном плане подключен модуль фильтров по товарам -->
Замените на:
<!-- Если в тарифном плане подключен модуль фильтров по товарам изменен подробности тут http://forum.storeland.ru/index.php?/topic/18679-%D1%80%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9-%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80/#entry190325 --> {% IF TARIFF_FEATURE_GOODS_FILTERS %} <!-- Фильтры по товарам. Появляются только на странице категории и поиска по товарам --> {% IF SHOW_GOODS_FILTERS %} <div class="block goods_filter"> <div class="block-title"><h3>Фильтры по товарам</h3></div> <div class="block-content"> <div class="filters"> <!-- Форма поиска отправляет всегда на ту же страницу, на которой находится пользователь --> <form action="" method="get"> <!-- Фильтры по характеристикам товаров (Например: Производитель, разрешение экрана, заряд аккомулятора) --> {% FOR filter_attr_list %} <div class="filter"> <div class="title">{filter_attr_list.NAME}:</div> <ul> {% FOR values %} <li> <input onchange="this.form.submit();" type="checkbox" name="form[filter][attr][{filter_attr_list.ID}][{filter_attr_list.values.ID}]" value="1" id="filterAttrVal{filter_attr_list.values.ID}" {% IF filter_attr_list.values.CHECKED %}checked="checked"{% ELSEIF filter_attr_list.values.NB_GOODS_FILTERED=0 %}disabled="disabled"{% ENDIF %} /> <label for="filterAttrVal{filter_attr_list.values.ID}">{filter_attr_list.values.VALUE} <span class="red">({filter_attr_list.values.NB_GOODS_FILTERED})</span></label> </li> {% ENDFOR %} </ul> </div> {% ENDFOR %} <!-- Фильтры по свойствам товарных модификаций (Например: Цвет, размер, модификация) --> {% FOR filter_prop_list %} <div class="filter"> {filter_prop_list.NAME}:<br /> {% FOR values %} <input value="1" onchange="this.form.submit();" type="checkbox" name="form[filter][prop][{filter_prop_list.ID}][{filter_prop_list.values.ID}]" {% IF filter_prop_list.values.CHECKED %}checked="checked"{% ENDIF %} /> {filter_prop_list.values.VALUE} {% ENDFOR %} </div> {% ENDFOR %} <input type="submit" value="Применить фильтр" /> <div class="clear"></div> </form> </div> </div> </div> {% ENDIF %} {% ENDIF %} <!-- END Если в тарифном плане подключен модуль фильтров по товарам -->
В main.css найдите:
.sidebar .block { float: left; width: 100%; margin-bottom: 20px; }
после него пропишите:
.goods_filter .filter { margin-bottom: 10px; margin-top: 5px; } .goods_filter .filter .title { color: #000; font-weight: bold; } .goods_filter .filters form > input { background: #224E2E; display: block; color: #fff; padding: 5px; margin: 0 auto; }
Результат:
#11
Отправлено 08 Апрель 2016 - 18:45
Vaccina (01 Апрель 2016 - 02:45) писал:
Спасибо! Все работает. Подскажите, пожалуйста, а возможно сделать так, чтобы фильтр по цене работал также, как и чек бокс. Т.е. при движении ползунка срабатывала отборка, а не по кнопки. Т.е. кнопку убрать ?
#12
Отправлено 09 Апрель 2016 - 05:47
.goodsFilterPriceSubmit { display: none; }
В main.js найдите:
// Слайдер, который используется для удобства выбора цены priceSliderBlock.slider({ range: true, min: priceFilterMinAvailable, max: priceFilterMaxAvailable, values: [ parseInt($('#goods-filter-min-price').val()) ,parseInt($('#goods-filter-max-price').val()) ], slide: function( event, ui ) { priceInputMin.val( ui.values[ 0 ] ); priceInputMax.val( ui.values[ 1 ] ); priceSubmitButtonBlock.show(); priceInputsChangeWidthByChars(); }
замените на:
// Слайдер, который используется для удобства выбора цены priceSliderBlock.slider({ range: true, min: priceFilterMinAvailable, max: priceFilterMaxAvailable, values: [ parseInt($('#goods-filter-min-price').val()) ,parseInt($('#goods-filter-max-price').val()) ], slide: function( event, ui ) { priceInputMin.val( ui.values[ 0 ] ); priceInputMax.val( ui.values[ 1 ] ); priceSubmitButtonBlock.show(); priceInputsChangeWidthByChars(); setTimeout(function() { $('.goodsFilterPriceSubmit button').click(); }, 1000); }
#14
Отправлено 24 Июль 2016 - 20:31
girlsmile (24 Июль 2016 - 18:21) писал:
В настройках категории этого нет или я не вижу ((
Здравствуйте.
У Вас отсутствовал код вывода счетчика по цене, добавил его Вам в шаблон HTML:
<!-- Если есть возможность фильтрации товаров по ценам --> {% IF SHOW_GOODS_PRICE_FILTERS %} <div class="title-filter">Фильтры по ценам</div> <div class="layout-slider clearfix"> <input id="goods-filter-min-price" type="text" name="form[filter][price][min]" value="{% IF GOODS_FILTER_MIN_PRICE %}{GOODS_FILTER_MIN_PRICE}{% ELSE %}{GOODS_FILTER_MIN_AVAILABLE_PRICE}{% ENDIF %}" min="1" onkeypress="return keyPress('0123456789')" /> <span class="price-separator">-</span> <input id="goods-filter-max-price" type="text" name="form[filter][price][max]" value="{% IF GOODS_FILTER_MAX_PRICE %}{GOODS_FILTER_MAX_PRICE}{% ELSE %}{GOODS_FILTER_MAX_AVAILABLE_PRICE}{% ENDIF %}" min="1" onkeypress="return keyPress('0123456789')" /> <input type="hidden" name="form[filter][available_price][min]" value="{GOODS_FILTER_MIN_AVAILABLE_PRICE}" /> <input type="hidden" name="form[filter][available_price][max]" value="{GOODS_FILTER_MAX_AVAILABLE_PRICE}" /> <!-- Фильтры по цене --> <div class="goodsFilterPriceRangePointers"> <span class="min" style="display:none;">{GOODS_FILTER_MIN_AVAILABLE_PRICE}</span> <span class="max" style="display:none;">{GOODS_FILTER_MAX_AVAILABLE_PRICE}</span> </div> <div id="goods-filter-price-slider"></div> <div class="goodsFilterPriceSubmit"> <button class="button" type="submit">Показать</button> </div> </div> {% ENDIF %} <!-- /END Если есть возможность фильтрации товаров по ценам -->
#15
Отправлено 05 Сентябрь 2016 - 14:15
#16
Отправлено 06 Сентябрь 2016 - 05:26
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных