Прошу помочь с переносом вот такого фильтра по цене из шаблона Движение на мой сайт - в рамку с остальными фильтрами.
0
Добавить Фильтр По Цене От Движения В Мокко
Автор ogonek7777, 15 нояб. 2016 19:16
В теме одно сообщение
#1
Отправлено 15 Ноябрь 2016 - 19:16
#2
Отправлено 19 Ноябрь 2016 - 05:33
Зайдите в раздел Сайт - Редактор шаблонов - Товары - найдите:
замените на:
В main.css найдите:
после него вставьте:
В конец main.js вставьте:
<!-- Если в тарифном плане подключен модуль фильтров по товарам --> {% IF TARIFF_FEATURE_GOODS_FILTERS %} <!-- Фильтры по товарам. Появляются только на странице категории и поиска по товарам --> {% IF SHOW_GOODS_FILTERS %} <!-- Форма поиска отправляет всегда на ту же страницу, на которой находится пользователь --> <form action="" method="get" "><!--h1>Фильтры</h1--> <div class="contentTbodySearchFilterBlock cornerAll"> <!-- Фильтры по характеристикам товаров (Например: Производитель, разрешение экрана, заряд батареи) --> <table ><tr> {% FOR filter_attr_list %} <span class="contentTbodySearchFilterBlockHeader" > <td width="300px"> <i><b></form>{filter_attr_list.NAME}</b></form></i></span> <div class="contentTbodySearchFilterBlockValues"> {% FOR values %} <div style="float:left;"> <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"{% ENDIF %} /> <label for="filterAttrVal{filter_attr_list.values.ID}">{filter_attr_list.values.VALUE}</label><br /> </div> {% ENDFOR %} </td> </div> {% ENDFOR %}</tr></table> <br><br> <!-- Фильтры по свойствам товарных модификаций (Например: Цвет, размер, модификация) --> {% FOR filter_prop_list %} <span class="contentTbodySearchFilterBlockHeader">{filter_prop_list.NAME}</span> <div class="contentTbodySearchFilterBlockValues"> {% FOR values %} <input type="checkbox" name="form[filter][prop][{filter_prop_list.ID}][{filter_prop_list.values.ID}]" value="1" id="filterPropVal{filter_prop_list.values.ID}" {% IF filter_prop_list.values.CHECKED %}checked="checked"{% ENDIF %} > <label for="filterPropVal{filter_prop_list.values.ID}">{filter_prop_list.values.VALUE}</label><br /> {% ENDFOR %} </div> {% ENDFOR %} {% ENDIF %} {% ENDIF %}</span></div> </form> <!-- END Если в тарифном плане подключен модуль фильтров по товарам -->
замените на:
<!-- Если в тарифном плане подключен модуль фильтров по товарам --> {% IF TARIFF_FEATURE_GOODS_FILTERS %} <!-- Фильтры по товарам. Появляются только на странице категории и поиска по товарам --> {% IF SHOW_GOODS_FILTERS %} <!-- Форма поиска отправляет всегда на ту же страницу, на которой находится пользователь --> <form action="" method="get"> <div class="contentTbodySearchFilterBlock cornerAll"> <!-- Если есть возможность фильтрации товаров по ценам --> {% IF SHOW_GOODS_PRICE_FILTERS %} <div class="filter"> Цена:<br /> <div class="contentTbodySearchPriceFilterBlock"> <!-- Фильтры по цене --> <div class="goodsFilterPriceRangePointers"><div class="min">{GOODS_FILTER_MIN_AVAILABLE_PRICE}</div><div class="max">{GOODS_FILTER_MAX_AVAILABLE_PRICE}</div></div> <div id="goods-filter-price-slider"></div> <div class="goodsFilterPriceInfo"> от <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 %}" autocomplete="off" /> до <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 %}" autocomplete="off" /> <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> <div class="goodsFilterPriceSubmit"> <button class="button" type="submit">Показать</button> </div> </div> </div> {% ENDIF %} <!-- END Если есть возможность фильтрации товаров по ценам --> <!-- Фильтры по характеристикам товаров (Например: Производитель, разрешение экрана, заряд батареи) --> <table ><tr> {% FOR filter_attr_list %} <span class="contentTbodySearchFilterBlockHeader" > <td width="300px"> <i><b></form>{filter_attr_list.NAME}</b></form></i></span> <div class="contentTbodySearchFilterBlockValues"> {% FOR values %} <div style="float:left;"> <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"{% ENDIF %} /> <label for="filterAttrVal{filter_attr_list.values.ID}">{filter_attr_list.values.VALUE}</label><br /> </div> {% ENDFOR %} </div> </td> {% ENDFOR %}</tr></table> <br><br> <!-- Фильтры по свойствам товарных модификаций (Например: Цвет, размер, модификация) --> {% FOR filter_prop_list %} <span class="contentTbodySearchFilterBlockHeader">{filter_prop_list.NAME}</span> <div class="contentTbodySearchFilterBlockValues"> {% FOR values %} <input type="checkbox" name="form[filter][prop][{filter_prop_list.ID}][{filter_prop_list.values.ID}]" value="1" id="filterPropVal{filter_prop_list.values.ID}" {% IF filter_prop_list.values.CHECKED %}checked="checked"{% ENDIF %} > <label for="filterPropVal{filter_prop_list.values.ID}">{filter_prop_list.values.VALUE}</label><br /> {% ENDFOR %} </div> {% ENDFOR %} {% ENDIF %} {% ENDIF %}</span></div> </form> <!-- END Если в тарифном плане подключен модуль фильтров по товарам -->
В main.css найдите:
/* Фильтры по товарам в колонке меню */ .contentTbodySearchFilterBlock {padding:1em ;border:1px solid #e5e5e5;} .contentTbodySearchFilterBlockValues {padding:1em 0 1em 1em;} .contentTbodySearchFilterBlockValues label {font-weight:normal; margin-right: 15px; vertical-align: top;}
после него вставьте:
/* Фильтр по цене */ .contentTbodySearchPriceFilterBlock {padding: 0 5px;text-align:center;} .goodsFilterPriceInfo {padding:5px 0;} .goodsFilterPriceInfo input {width: 65px;text-align: center;margin-bottom: 0;border: solid 1px #ddd;} #goods-filter-price-slider {position: relative;margin: 5px 0;} .goodsFilterPriceRangePointers {height: 16px;font-size: 0.9em;color: #CCC;width: 100%;overflow: visible; display: none;} .goodsFilterPriceRangePointers .min {float: left; margin-left: -7px; } .goodsFilterPriceRangePointers .max {float: right; margin-right: -8px;} .goodsFilterPriceSubmit {padding: 0.5em 0 0.4em;display:none;} .ui-slider { position: relative;} .ui-slider .ui-slider-handle {position: absolute;z-index: 2;width: 13px;height: 13px;border: 1px solid #d3d3d3;background: #e6e6e6;cursor: pointer} .ui-slider .ui-slider-range {position: absolute; z-index: 1;font-size: .7em;display: block;border: 0;overflow: hidden;} .ui-slider-horizontal {height: 3px;} .ui-slider-horizontal .ui-slider-handle {top: -5px;margin-left: -6px;} .ui-slider-horizontal .ui-slider-range {top: 0;height: 3px;} .ui-slider-horizontal .ui-slider-range-min {left: 0;} .ui-slider-horizontal .ui-slider-range-max {right: 0;} .ui-widget-content {border: 1px solid #cdcdcd;background: #fff;/*height: 5px;*/} .ui-widget-header {border: 1px solid #D4D4D4;background: #ccc;} .ui-corner-all {-moz-border-radius: 2px;-webkit-border-radius: 2px;border-radius: 2px;} /* END Фильтр по цене */
В конец main.js вставьте:
// Фильтры по товарам. $(document).ready(function () { // При нажании на какую либо характеристику или свойство товара происходит фильтрация товаров $('.contentTbodySearchFilterBlock input').click(function(){ $(this)[0].form.submit(); }); var // Минимальное значение цены для фильтра priceFilterMinAvailable = parseInt($('.goodsFilterPriceRangePointers .min').text()) // Максимальное значение цены для фильтра ,priceFilterMaxAvailable = parseInt($('.goodsFilterPriceRangePointers .max').text()) // Максимальное значение цены для фильтра ,priceSliderBlock = $('#goods-filter-price-slider') // Поле ввода текущего значения цены "От" ,priceInputMin = $( "#goods-filter-min-price" ) // Поле ввода текущего значения цены "До" ,priceInputMax = $( "#goods-filter-max-price" ) // Блок с кнопкой, которую есть смысл нажимать только тогда, когда изменялся диапазон цен. ,priceSubmitButtonBlock = $( ".goodsFilterPriceSubmit" ) ; // Слайдер, который используется для удобства выбора цены 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(); }, stop: function( event, ui ) { ajaxCountFiltered () } }); // При изменении минимального значения цены priceInputMin.keyup(function(){ var newVal = parseInt($(this).val()); if(newVal < priceFilterMinAvailable) { newVal = priceFilterMinAvailable; } priceSliderBlock.slider("values", 0, newVal); //priceSubmitButtonBlock.show(); ajaxCountFiltered(); //priceInputsChangeWidthByChars(); }); // При изменении максимального значения цены priceInputMax.keyup(function(){ var newVal = parseInt($(this).val()); if(newVal > priceFilterMaxAvailable) { newVal = priceFilterMaxAvailable; } priceSliderBlock.slider("values", 1, newVal); //priceSubmitButtonBlock.show(); ajaxCountFiltered(); //priceInputsChangeWidthByChars(); }); // Обновить размеры полей ввода диапазона цен //priceInputsChangeWidthByChars(); // END Фильтры по товарам. }); });
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных