Перейти к содержимому


Добавить Фильтр По Цене От Движения В Мокко


  • Авторизуйтесь для ответа в теме
В теме одно сообщение

#1 ogonek7777

ogonek7777

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 2 109 сообщений
  • ГородМосква

Отправлено 15 Ноябрь 2016 - 19:16

Прошу помочь с переносом вот такого фильтра по цене из шаблона Движение на мой сайт - в рамку с остальными фильтрами.2016-11-15_19-12-37.png

#2 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 353 сообщений

Отправлено 19 Ноябрь 2016 - 05:33

Зайдите в раздел Сайт - Редактор шаблонов - Товары - найдите:
<!-- Если в тарифном плане подключен модуль фильтров по товарам -->
			 {% 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 анонимных