1
Расширенный Фильтр
Автор Eclipse, 28 февр. 2015 02:03
Сообщений в теме: 11
#1
Отправлено 28 Февраль 2015 - 02:03
Здравствуйте, как можно реализовать (пусть платной доработкой) такой фильтр? Необходима возможность выбирать несколько чекбоксов (а не только один вариант, как в выпадающем списке).
#3
Отправлено 03 Март 2015 - 01:05
Инструкция по реализации выбора сразу нескольких параметров и последующая их обработка после нажатия на кнопку "Применить":
http://forum.storela...ов/#entry135479
Вывод фильтров по характеристикам и свойствам ограничен до 10 штук на каждый раздел.
http://forum.storela...ов/#entry135479
Вывод фильтров по характеристикам и свойствам ограничен до 10 штук на каждый раздел.
#5
Отправлено 03 Март 2015 - 22:50
Очень нужно 11 фильтров! Очень!
#6
Отправлено 04 Март 2015 - 00:40
Это уже идет функционал самой админ панели, его редактировать нельзя, мы оповестили разработчиков о данной заявке об улучшении.
#7
Отправлено 04 Март 2015 - 01:16
Ок, а есть возможность сделать не выпадающие списки, а чекбоксы? Как в примере, на скриншоте в теме ветки? Чтобы была возможность выбрать несколько значений одного фильтра: например, все модели обуви жёлтого, зелёного и оранжевого цвета. Не выпадающие списки, а чекбоксы либо какую другую структуру, поддерживающую мультивыбор
#8
Отправлено 11 Март 2015 - 07:29
Для этого достаточно заменить select на input type="checkbox". В шаблоне Товары найдите код
и замените его на
<!-- Если в тарифном плане подключен модуль фильтров по товарам --> {% IF TARIFF_FEATURE_GOODS_FILTERS %} <!-- Фильтры по товарам. Появляются только на странице категории и поиска по товарам --> {% IF SHOW_GOODS_FILTERS %} <div class="filters"> <!-- Форма поиска отправляет всегда на ту же страницу, на которой находится пользователь --> <form action="" method="get"> <!-- Фильтры по характеристикам товаров (Например: Производитель, разрешение экрана, заряд аккумулятора) --> {% FOR filter_attr_list %} <div class="filter"> {filter_attr_list.NAME}:<br /> <select onchange="$(this).attr('name', $(this).find('option:selected').attr('value') == -1 ? '' : $(this).find('option:selected').attr('rel'));" name="{% FOR values %}{% IF filter_attr_list.values.CHECKED %}form[filter][attr][{filter_attr_list.ID}][{filter_attr_list.values.ID}]{% ENDIF %}{% ENDFOR %}"> <option> - все - </option> {% FOR values %} <option value="1" rel="form[filter][attr][{filter_attr_list.ID}][{filter_attr_list.values.ID}]" {% IF filter_attr_list.values.CHECKED %}selected="selected"{% ENDIF %}>{filter_attr_list.values.VALUE}</option> {% ENDFOR %} </select> </div> {% ENDFOR %} <!-- Фильтры по свойствам товарных модификаций (Например: Цвет, размер, модификация) --> {% FOR filter_prop_list %} <div class="filter"> {filter_prop_list.NAME}:<br /> <select onchange="$(this).attr('name', $(this).find('option:selected').attr('value') == -1 ? '' : $(this).find('option:selected').attr('rel'));" name="{% FOR values %}{% IF filter_prop_list.values.CHECKED %}form[filter][prop][{filter_prop_list.ID}][{filter_prop_list.values.ID}]{% ENDIF %}{% ENDFOR %}"> <option> - все - </option> {% FOR values %} <option value="1" rel="form[filter][prop][{filter_prop_list.ID}][{filter_prop_list.values.ID}]" {% IF filter_prop_list.values.CHECKED %}selected="selected"{% ENDIF %}>{filter_prop_list.values.VALUE}</option> {% ENDFOR %} </select> </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 Если в тарифном плане подключен модуль фильтров по товарам -->
и замените его на
<!-- Если в тарифном плане подключен модуль фильтров по товарам --> {% IF TARIFF_FEATURE_GOODS_FILTERS %} <!-- Фильтры по товарам. Появляются только на странице категории и поиска по товарам --> {% IF SHOW_GOODS_FILTERS %} <div class="filters"> <!-- Форма поиска отправляет всегда на ту же страницу, на которой находится пользователь --> <form action="" method="get"> <!-- Фильтры по характеристикам товаров (Например: Производитель, разрешение экрана, заряд аккумулятора) --> {% FOR filter_attr_list %} <div class="filter"> {filter_attr_list.NAME}:<br /> {% FOR values %} <input value="1" onchange="this.form.submit();" type="checkbox" name="form[filter][attr][{filter_attr_list.ID}][{filter_attr_list.values.ID}]" {% IF filter_attr_list.values.CHECKED %}checked="checked"{% ENDIF %} /> {filter_attr_list.values.VALUE} {% ENDFOR %} </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 Если в тарифном плане подключен модуль фильтров по товарам -->
#9
Отправлено 12 Март 2015 - 18:53
Я вам очень благодарен, но есть 2 момента:
1) Кнопка "применить фильтр" по сути не имеет смысла, ибо после каждой поставленной галочки страница перегружается, применяя отмеченный галочкой фильтр. А хотелось бы, чтобы сперва всё что нужно отметил человек, а потом уже применял фильтр кликом по кнопке Применить.
2) И со стилями поможете ещё что-то придумать? Потому что сейчас 2 товара в категории и при 10 фильтрах уже, конечно, не комильфо. Добавив 100 товаров, почти весь экран будет занят одними лишь фильтрами. Может, попробуем сделать, как на скриншоте из первого поста? Или это не только стилевые правки уже?
1) Кнопка "применить фильтр" по сути не имеет смысла, ибо после каждой поставленной галочки страница перегружается, применяя отмеченный галочкой фильтр. А хотелось бы, чтобы сперва всё что нужно отметил человек, а потом уже применял фильтр кликом по кнопке Применить.
2) И со стилями поможете ещё что-то придумать? Потому что сейчас 2 товара в категории и при 10 фильтрах уже, конечно, не комильфо. Добавив 100 товаров, почти весь экран будет занят одними лишь фильтрами. Может, попробуем сделать, как на скриншоте из первого поста? Или это не только стилевые правки уже?
#10
Отправлено 29 Март 2015 - 03:24
Гм! Форум умер?)
#11
Отправлено 30 Март 2015 - 14:02
Eclipse (29 Март 2015 - 03:24) писал:
Гм! Форум умер?)
В шаблоне Товары найдите код
<!-- Форма поиска отправляет всегда на ту же страницу, на которой находится пользователь --> <form action="" method="get"> <!-- Фильтры по характеристикам товаров (Например: Производитель, разрешение экрана, заряд аккумулятора) --> {% FOR filter_attr_list %} <div class="filter"> {filter_attr_list.NAME}:<br /> {% FOR values %} <input value="1" onchange="this.form.submit();" type="checkbox" name="form[filter][attr][{filter_attr_list.ID}][{filter_attr_list.values.ID}]" {% IF filter_attr_list.values.CHECKED %}checked="checked"{% ENDIF %} /> {filter_attr_list.values.VALUE} {% ENDFOR %} </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>и замените на
<!-- Форма поиска отправляет всегда на ту же страницу, на которой находится пользователь --> <form action="" method="get"> <!-- Фильтры по характеристикам товаров (Например: Производитель, разрешение экрана, заряд аккумулятора) --> {% FOR filter_attr_list %} <div class="filter"> {filter_attr_list.NAME}:<br /> {% FOR values %} <div><input value="1" onchange="this.form.submit();" type="checkbox" name="form[filter][attr][{filter_attr_list.ID}][{filter_attr_list.values.ID}]" {% IF filter_attr_list.values.CHECKED %}checked="checked"{% ENDIF %} /> {filter_attr_list.values.VALUE}</div> {% ENDFOR %} </div> {% ENDFOR %} <!-- Фильтры по свойствам товарных модификаций (Например: Цвет, размер, модификация) --> {% FOR filter_prop_list %} <div class="filter"> {filter_prop_list.NAME}:<br /> {% FOR values %} <div><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}</div> {% 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>
#12
Отправлено 31 Март 2015 - 14:37
Danil (30 Март 2015 - 14:02) писал:
Спасибо за отлик, но проблему 1-го пункта не помогло решить (из двух пунктов, по которым нужна помощь). Внесённые изменения же просто чуть аккуратнее выстраивают стилистику списка фильтров, правильно я понял?
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных