Как можно поменять местами каталог и фильтр, как сделать, чтоб фильтр всегда был раскрыт.
1
Поменять Местами Каталог И Фильтр
Автор a.korkishko, 05 июня 2015 14:30
Сообщений в теме: 5
#1
Отправлено 05 Июнь 2015 - 14:30
#2
Отправлено 05 Июнь 2015 - 15:15
a.korkishko (05 Июнь 2015 - 14:30) писал:
Как можно поменять местами каталог и фильтр, как сделать, чтоб фильтр всегда был раскрыт.
Зайдите в админ. панель -> Сайт -> Редактор шаблонов -> Шаблоны -> HTML, найдите код:
<!-- Если в тарифном плане подключен модуль фильтров по товарам --> {% IF TARIFF_FEATURE_GOODS_FILTERS && SHOW_GOODS_FILTERS %} <div class="block filters"> <div class="block-title"><span>Фильтры</span></div> <div class="block-content"> <!-- Форма поиска отправляет всегда на ту же страницу, на которой находится пользователь --> <form action="" method="get"> <!-- ПРОВЕРИТЬ --> <!-- Если есть возможность фильтрации товаров по ценам --> {% 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')" /> <!-- Фильтры по цене --> <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"> <input class="button small" type="submit" value="Показать" /> </div> </div> {% ENDIF %} <!-- /END Если есть возможность фильтрации товаров по ценам --> <!-- Фильтры по характеристикам товаров (Например: Производитель, разрешение экрана, заряд аккомулятора) --> {% FOR filter_attr_list %} <div class="filter"> {filter_attr_list.NAME}:<br /> <select class="form-control" 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 class="form-control" 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 %} </form> </div> </div> {% ENDIF %} <!-- /END Если в тарифном плане подключен модуль фильтров по товарам -->
Переместите данный код перед:
<!-- Каталог -->
Фильтр отображается на странице в том случае, если есть возможность фильтрации (например: по ценам, цвету, размеру, модификации)
#3
Отправлено 05 Июнь 2015 - 15:46
Спасибо! а как сделать, чтоб пункты фильтрации всегда были раскрыты?
#4
Отправлено 06 Июнь 2015 - 03:39
Попробуйте:
заменить на:
{% FOR filter_attr_list %} <div class="filter"> {filter_attr_list.NAME}:<br /> <select class="form-control" 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_attr_list %} <div class="filter"> {filter_attr_list.NAME}:<br /> {% IF filter_attr_list.NAME=Расцветка %} {% FOR values %} {% IF filter_attr_list.values.NB_GOODS_FILTERED > 0 %} <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} ({filter_attr_list.values.NB_GOODS_FILTERED})</label><br /> {% ENDIF %} {% ENDFOR %}
#5
Отправлено 13 Октябрь 2015 - 21:01
Уважаемая Vaccina!
Хотел в Лазури сделать фильтры "чекбоксовыми".
Я ваш код упростил. Заново установил шаблон Лазурь, в HTML вставил этот код там где создаются фильтры по характеристикам товаров (строки 1052-1062):
Не работает. Фильтры рисуются, "чекаются", но событие на обновление формы не отправляется (или форма его не ловит). Куда копать?
Хотел в Лазури сделать фильтры "чекбоксовыми".
Я ваш код упростил. Заново установил шаблон Лазурь, в HTML вставил этот код там где создаются фильтры по характеристикам товаров (строки 1052-1062):
{% FOR filter_attr_list %} <div class="filter"> {filter_attr_list.NAME}:<br /> {% FOR values %} <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} {% IF filter_attr_list.values.NB_GOODS_FILTERED > 0 %}({filter_attr_list.values.NB_GOODS_FILTERED}){% ENDIF %}</label><br /> {% ENDFOR %} </div> {% ENDFOR %}
Не работает. Фильтры рисуются, "чекаются", но событие на обновление формы не отправляется (или форма его не ловит). Куда копать?
#6
Отправлено 14 Октябрь 2015 - 02:09
Уважаемые суппорты!
Спасибо, докапался сам. Учитывая вашу занятость теперь прошу только подтвердить правильно ли я сделал и не будет ли каких-то подводных камней.
В main.js увидел что события ловятся от класса ".form-control"
соответственно изменил код чекбокса на:
<input type="checkbox" class="form-control" name="form[filter][attr][{filter_attr_list.ID}][{filter_attr_list.values.ID}]" value="1" id="filterAttrVal{filter_attr_list.values.ID}" и т.д....
т.е. присвоил ему этот класс - заработало.
Спасибо, докапался сам. Учитывая вашу занятость теперь прошу только подтвердить правильно ли я сделал и не будет ли каких-то подводных камней.
В main.js увидел что события ловятся от класса ".form-control"
$('.filter').on('change', '.form-control', function() { $(this).attr('name', $(this).find('option:selected').attr('value') == -1 ? '' : $(this).find('option:selected').attr('rel')); $(this).closest('form').submit(); return (false); });
соответственно изменил код чекбокса на:
<input type="checkbox" class="form-control" name="form[filter][attr][{filter_attr_list.ID}][{filter_attr_list.values.ID}]" value="1" id="filterAttrVal{filter_attr_list.values.ID}" и т.д....
т.е. присвоил ему этот класс - заработало.
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных