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


Добавлены Фильтры По Ценам Товаров

обновления фильтры uptime

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

#161 Dars

Dars

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

  • Модератоpы
  • 1 410 сообщений

Отправлено 12 Май 2014 - 14:10

Просмотр сообщенияipodushkin (12 Май 2014 - 13:54) писал:

Здравствуйте! В день нововведения установил этот фильтр, но сейчас понял что он мне не нужен. Пробовал заменять код на старый (который был приведен в вашем сообщении), но фильтр удалялся как-то криво. Помогите его убрать вообще. Шаблон Мокко. Спасибо.
В шаблоне HTML удалите этот код:
<!-- Если есть возможность фильтрации товаров по ценам -->
{% IF SHOW_GOODS_PRICE_FILTERS %}
		 <br /><h4 class="contentTbodyCatalogHeader noBorder">Цена</h4>
		 <div class="contentTbodySearchPriceFilterBlock cornerAll">
	   
		 <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" />
		 </div>
		 <script type="text/javascript">
				 $(function() {
				 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();
						 }
				 });
			   
				 // При изменении минимального значения цены
				 priceInputMin.keyup(function(){
						 var newVal = parseInt($(this).val());
						 if(newVal < priceFilterMinAvailable) {
						 newVal = priceFilterMinAvailable;
						 }
						 priceSliderBlock.slider("values", 0, newVal);
						 priceSubmitButtonBlock.show();
				 });
			   
				 // При изменении максимального значения цены
				 priceInputMax.keyup(function(){
						 var newVal = parseInt($(this).val());
						 if(newVal > priceFilterMaxAvailable) {
						 newVal = priceFilterMaxAvailable;
						 }
						 priceSliderBlock.slider("values", 1, newVal);
						 priceSubmitButtonBlock.show();
				 });
			   
				 });
		 </script>
	   
		 <div class="goodsFilterPriceSubmit">
				 <input type="submit" value="Показать" />
		 </div>
		 </div>
{% ENDIF %}
<!-- END Если есть возможность фильтрации товаров по ценам -->


#162 sofgtteam86

sofgtteam86

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 85 сообщений

Отправлено 01 Июнь 2014 - 22:52

ПОМОГИТЕ!!!
Я Пол дня не могу найти ошибку у себя....
Поставил фильтр по цене а кнопка "показать" не работает .
Аккаунт SL-217350,  Еврошоп.com

Буду очень признателен

Баг 100% во вкладке "Товары"
Скрытый текст


#163 Сake

Сake

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

  • Модератоpы
  • 5 979 сообщений

Отправлено 03 Июнь 2014 - 04:18

Код фильтра по цене

<!-- Если есть возможность фильтрации товаров по ценам -->
...
<!-- END Если есть возможность фильтрации товаров по ценам -->

должен находиться внутри тега <form>. Найдите в вашем шаблоне код

</form>
  </div>
{% ENDIF %}
<!-- END Если в тарифном плане подключен модуль фильтров по товарам, и они есть для указанного списка товаров -->
<!-- Если есть возможность фильтрации товаров по ценам -->
  {% IF SHOW_GOODS_PRICE_FILTERS %}
<div class="filter">
  <div>
Цена:
<div class="contentTbodySearchPriceFilterBlock">
  <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" />
<div class="clear"></div>
  </div>
  <!-- Фильтры по цене -->
  <div class="goodsFilterPriceRangePointers"><span class="min">{GOODS_FILTER_MIN_AVAILABLE_PRICE}</span><span class="max">{GOODS_FILTER_MAX_AVAILABLE_PRICE}</span></div>
  <div id="goods-filter-price-slider"></div>
  <div class="goodsFilterPriceSubmit">
<input class="exclusive" type="submit" value="Показать" />
  </div>
</div>
  </div>
</div>
  {% ENDIF %}
  <!-- END Если есть возможность фильтрации товаров по ценам -->

и замените его на

<!-- Если есть возможность фильтрации товаров по ценам -->
  {% IF SHOW_GOODS_PRICE_FILTERS %}
<div class="filter">
  <div>
Цена:
<div class="contentTbodySearchPriceFilterBlock">
  <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" />
<div class="clear"></div>
  </div>
  <!-- Фильтры по цене -->
  <div class="goodsFilterPriceRangePointers"><span class="min">{GOODS_FILTER_MIN_AVAILABLE_PRICE}</span><span class="max">{GOODS_FILTER_MAX_AVAILABLE_PRICE}</span></div>
  <div id="goods-filter-price-slider"></div>
  <div class="goodsFilterPriceSubmit">
<input class="exclusive" type="submit" value="Показать" />
  </div>
</div>
  </div>
</div>
  {% ENDIF %}
  <!-- END Если есть возможность фильтрации товаров по ценам -->
</form>
  </div>
{% ENDIF %}
<!-- END Если в тарифном плане подключен модуль фильтров по товарам, и они есть для указанного списка товаров -->


#164 sofgtteam86

sofgtteam86

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 85 сообщений

Отправлено 03 Июнь 2014 - 10:22

Спасибо.
Я вставил <form> в строку №1
Остальное даже менять не пришлось все само по себе решилось)))

#165 xoldn

xoldn

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 145 сообщений

Отправлено 17 Июнь 2014 - 16:44

хочу добавить у себя фильтр по ценам но забыл какой у меня шаблон. Админы подскажите?

#166 Ирина345

Ирина345

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

  • Модераторы
  • 5 418 сообщений

Отправлено 17 Июнь 2014 - 17:05

Просмотр сообщенияxoldn (17 Июнь 2014 - 16:44) писал:

хочу добавить у себя фильтр по ценам но забыл какой у меня шаблон. Админы подскажите?
Здравствуйте, у Вас шаблон Мокко

#167 xoldn

xoldn

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 145 сообщений

Отправлено 17 Июнь 2014 - 17:32

1. Подскажите как сделать, чтобы товар фильтровался сразу после того как передвинут ползунок или поставлена нужная цена. Т.е чтобы не приходилось нажимить кнопку "Показать".
2. Как переместить модуль фильтрации цены в самый низ (как показано на скриншоте)?

Прикрепленные изображения

  • Screenshot_3.png


#168 Сake

Сake

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

  • Модератоpы
  • 5 979 сообщений

Отправлено 18 Июнь 2014 - 00:31

Вам необходимо в шаблоне "HTML" найти код фильтров

{% IF TARIFF_FEATURE_GOODS_FILTERS %}
				<form action="" method="get">
				  <!-- Если есть возможность фильтрации товаров по ценам -->
				  {% IF SHOW_GOODS_PRICE_FILTERS %}
					<br /><h4 class="contentTbodyCatalogHeader noBorder">Цена</h4>
					<div class="contentTbodySearchPriceFilterBlock cornerAll">
					  <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" />
					  </div>
					  <div class="goodsFilterPriceSubmit">
						<input type="submit" value="Показать" />
					  </div>
					</div>
				  {% ENDIF %}
				  <!-- END Если есть возможность фильтрации товаров по ценам -->
				  <!-- Фильтры по товарам. Появляются только на странице категории и поиска по товарам -->
				  {% IF SHOW_GOODS_FILTERS %}
					<br /><h4 class="contentTbodyCatalogHeader noBorder">Фильтры по товарам</h4>
					<!-- Форма поиска отправляет всегда на ту же страницу, на которой находится пользователь -->
					<div class="contentTbodySearchFilterBlock cornerAll">
					  <!-- Фильтры по характеристикам товаров (Например: Производитель, разрешение экрана, заряд батареи) -->
					  {% FOR filter_attr_list %}
						<em>{filter_attr_list.NAME}</em>
						<div class="contentTbodySearchFilterBlockValues">
						  {% 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} ({filter_attr_list.values.NB_GOODS_FILTERED})</label><br />
						  {% ENDFOR %}
						</div>
					  {% ENDFOR %}
					  <!-- Фильтры по свойствам товарных модификаций (Например: Цвет, размер, модификация) -->
					  {% FOR filter_prop_list %}
						<em>{filter_prop_list.NAME}</em>
						<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"{% ELSEIF filter_prop_list.values.NB_GOODS_FILTERED=0 %}disabled="disabled"{% ENDIF %} >
							<label for="filterPropVal{filter_prop_list.values.ID}">{filter_prop_list.values.VALUE} ({filter_prop_list.values.NB_GOODS_FILTERED})</label><br />
						  {% ENDFOR %}
						</div>
					  {% ENDFOR %}
					</div>
				  {% ENDIF %}
				</form>
			  {% ENDIF %}
			  <!-- END Если в тарифном плане подключен модуль фильтров по товарам -->

и заменить его на

{% IF TARIFF_FEATURE_GOODS_FILTERS %}
				<form action="" method="get">
				  <!-- Фильтры по товарам. Появляются только на странице категории и поиска по товарам -->
				  {% IF SHOW_GOODS_FILTERS %}
					<br /><h4 class="contentTbodyCatalogHeader noBorder">Фильтры по товарам</h4>
					<!-- Форма поиска отправляет всегда на ту же страницу, на которой находится пользователь -->
					<div class="contentTbodySearchFilterBlock cornerAll">
					  <!-- Фильтры по характеристикам товаров (Например: Производитель, разрешение экрана, заряд батареи) -->
					  {% FOR filter_attr_list %}
						<em>{filter_attr_list.NAME}</em>
						<div class="contentTbodySearchFilterBlockValues">
						  {% 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} ({filter_attr_list.values.NB_GOODS_FILTERED})</label><br />
						  {% ENDFOR %}
						</div>
					  {% ENDFOR %}
					  <!-- Фильтры по свойствам товарных модификаций (Например: Цвет, размер, модификация) -->
					  {% FOR filter_prop_list %}
						<em>{filter_prop_list.NAME}</em>
						<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"{% ELSEIF filter_prop_list.values.NB_GOODS_FILTERED=0 %}disabled="disabled"{% ENDIF %} >
							<label for="filterPropVal{filter_prop_list.values.ID}">{filter_prop_list.values.VALUE} ({filter_prop_list.values.NB_GOODS_FILTERED})</label><br />
						  {% ENDFOR %}
						</div>
					  {% ENDFOR %}
					</div>
				  {% ENDIF %}
				  <!-- Если есть возможность фильтрации товаров по ценам -->
				  {% IF SHOW_GOODS_PRICE_FILTERS %}
					<br /><h4 class="contentTbodyCatalogHeader noBorder">Цена</h4>
					<div class="contentTbodySearchPriceFilterBlock cornerAll">
					  <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" />
					  </div>
					  <div class="goodsFilterPriceSubmit">
						<input type="submit" value="Показать" />
					  </div>
					</div>
				  {% ENDIF %}
				  <!-- END Если есть возможность фильтрации товаров по ценам -->
				</form>
			  {% ENDIF %}
			  <!-- END Если в тарифном плане подключен модуль фильтров по товарам -->

далее в файле main.js найдите код

range: true,
min: priceFilterMinAvailable,

и замените его на

range: true,
change: function(event, ui) {
   priceSubmitButtonBlock.closest('form').submit();
},
min: priceFilterMinAvailable,


#169 xoldn

xoldn

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 145 сообщений

Отправлено 18 Июнь 2014 - 09:25

Цитата

далее в файле main.js найдите код

range: true,
min: priceFilterMinAvailable,

и замените его на

range: true,
change: function(event, ui) {
priceSubmitButtonBlock.closest('form').submit();
},
min: priceFilterMinAvailable,



У мня нет такой строки в main.js и код в HTML у меня выглядит немного по другому.
Вот так

Цитата

<!-- Если в тарифном плане подключен модуль фильтров по товарам -->
              {% IF TARIFF_FEATURE_GOODS_FILTERS %}

                <!-- Фильтры по товарам. Появляются только на странице категории и поиска по товарам -->
                {% IF SHOW_GOODS_FILTERS %}
                  <br /><h4 class="contentTbodyCatalogHeader noBorder">Фильтры по товарам</h4>

                  <!-- Форма поиска отправляет всегда на ту же страницу, на которой находится пользователь -->
                  <form action="" method="get">
                    <div class="contentTbodySearchFilterBlock cornerAll">
                      <!-- Фильтры по характеристикам товаров (Например: Производитель, разрешение экрана, заряд батареи) -->
                      {% FOR filter_attr_list %}
                        <em>{filter_attr_list.NAME}</em>
                        <div class="contentTbodySearchFilterBlockValues">
                        {% 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} ({filter_attr_list.values.NB_GOODS_FILTERED})</label><br />
                        {% ENDFOR %}
                        </div>
                      {% ENDFOR %}

                      <!-- Фильтры по свойствам товарных модификаций (Например: Цвет, размер, модификация) -->
                      {% FOR filter_prop_list %}
                        <em>{filter_prop_list.NAME}</em>
                        <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"{% ELSEIF filter_prop_list.values.NB_GOODS_FILTERED=0 %}disabled="disabled"{% ENDIF %} >
                          <label for="filterPropVal{filter_prop_list.values.ID}">{filter_prop_list.values.VALUE} ({filter_prop_list.values.NB_GOODS_FILTERED})</label><br />
                        {% ENDFOR %}
                        </div>
                      {% ENDFOR %}
                    </div>
                  </form>
                {% ENDIF %}
              {% ENDIF %}
       <!-- END Если в тарифном плане подключен модуль фильтров по товарам -->


#170 Сake

Сake

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

  • Модератоpы
  • 5 979 сообщений

Отправлено 18 Июнь 2014 - 23:33

В вашем шаблоне фильтр по цене присутствует? Пожалуйста, приведите пример категории с использованием фильтра по цене, а так же уточните о каком номере аккаунте идет речь. Если у вас присутствует фильтрация по цене, то и код в шаблоне "HTML" и main.js должен присутствовать. Пример кода ранее был приведен из стандартного шаблона "Мокко".

#171 xoldn

xoldn

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 145 сообщений

Отправлено 19 Июнь 2014 - 12:34

Аккаунт 201825.
В моём шаблоне фильтра по цене нет. Я его хочу добавить так как показывал на скриншоте здесь http://forum.storela...160#entry143513
Код который я нашел в HTML, вот такой http://forum.storela...160#entry143631, не похожий на те что вы предлагаете изменить.

#172 Сake

Сake

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

  • Модератоpы
  • 5 979 сообщений

Отправлено 19 Июнь 2014 - 23:54

Для добавления фильтра по цене сделайте следующее - в шаблоне "HTML" найдите код

<!-- Если в тарифном плане подключен модуль фильтров по товарам -->
			  {% IF TARIFF_FEATURE_GOODS_FILTERS %}
			   
				<!-- Фильтры по товарам. Появляются только на странице категории и поиска по товарам -->
				{% IF SHOW_GOODS_FILTERS %}
				  <br /><h4 class="contentTbodyCatalogHeader noBorder">Фильтры по товарам</h4>
	   
				  <!-- Форма поиска отправляет всегда на ту же страницу, на которой находится пользователь -->
				  <form action="" method="get">
					<div class="contentTbodySearchFilterBlock cornerAll">
					  <!-- Фильтры по характеристикам товаров (Например: Производитель, разрешение экрана, заряд батареи) -->
					  {% FOR filter_attr_list %}
						<em>{filter_attr_list.NAME}</em>
						<div class="contentTbodySearchFilterBlockValues">
						{% 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} ({filter_attr_list.values.NB_GOODS_FILTERED})</label><br />
						{% ENDFOR %}
						</div>
					  {% ENDFOR %}
	   
					  <!-- Фильтры по свойствам товарных модификаций (Например: Цвет, размер, модификация) -->
					  {% FOR filter_prop_list %}
						<em>{filter_prop_list.NAME}</em>
						<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"{% ELSEIF filter_prop_list.values.NB_GOODS_FILTERED=0 %}disabled="disabled"{% ENDIF %} >
						  <label for="filterPropVal{filter_prop_list.values.ID}">{filter_prop_list.values.VALUE} ({filter_prop_list.values.NB_GOODS_FILTERED})</label><br />
						{% ENDFOR %}
						</div>
					  {% ENDFOR %}
					</div>
				  </form>
				{% ENDIF %}
			  {% ENDIF %}
		  <!-- END Если в тарифном плане подключен модуль фильтров по товарам -->

и замените его на

<!-- Если в тарифном плане подключен модуль фильтров по товарам -->
			  {% IF TARIFF_FEATURE_GOODS_FILTERS %}
				<form action="" method="get">
				  <!-- Фильтры по товарам. Появляются только на странице категории и поиска по товарам -->
				  {% IF SHOW_GOODS_FILTERS %}
					<br /><h4 class="contentTbodyCatalogHeader noBorder">Фильтры по товарам</h4>
					<!-- Форма поиска отправляет всегда на ту же страницу, на которой находится пользователь -->
					<div class="contentTbodySearchFilterBlock cornerAll">
					  <!-- Фильтры по характеристикам товаров (Например: Производитель, разрешение экрана, заряд батареи) -->
					  {% FOR filter_attr_list %}
						<em>{filter_attr_list.NAME}</em>
						<div class="contentTbodySearchFilterBlockValues">
						  {% 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} ({filter_attr_list.values.NB_GOODS_FILTERED})</label><br />
						  {% ENDFOR %}
						</div>
					  {% ENDFOR %}
					  <!-- Фильтры по свойствам товарных модификаций (Например: Цвет, размер, модификация) -->
					  {% FOR filter_prop_list %}
						<em>{filter_prop_list.NAME}</em>
						<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"{% ELSEIF filter_prop_list.values.NB_GOODS_FILTERED=0 %}disabled="disabled"{% ENDIF %} >
							<label for="filterPropVal{filter_prop_list.values.ID}">{filter_prop_list.values.VALUE} ({filter_prop_list.values.NB_GOODS_FILTERED})</label><br />
						  {% ENDFOR %}
						</div>
					  {% ENDFOR %}
					</div>
				  {% ENDIF %}
				 
				  <!-- Если есть возможность фильтрации товаров по ценам -->
				  {% IF SHOW_GOODS_PRICE_FILTERS %}
					<br /><h4 class="contentTbodyCatalogHeader noBorder">Цена</h4>
					<div class="contentTbodySearchPriceFilterBlock cornerAll">
					  <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" />
					  </div>
					  <div class="goodsFilterPriceSubmit">
						<input type="submit" value="Показать" />
					  </div>
					</div>
				  {% ENDIF %}
				  <!-- END Если есть возможность фильтрации товаров по ценам -->
				 
				</form>
			  {% ENDIF %}
			  <!-- END Если в тарифном плане подключен модуль фильтров по товарам -->

далее в файл main.js найдите код

// Фильтры по товарам. При нажании на какую либо характеристику или свойство товара происходит фильтрация товаров
  $('.contentTbodySearchFilterBlock input').click(function(){
	$(this)[0].form.submit();
  });

и замените его на

// Фильтры по товарам. При нажании на какую-либо характеристику или свойство товара происходит фильтрация товаров
  $('.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,
	change: function(event, ui) {
	  priceSubmitButtonBlock.closest('form').submit();
	},
	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();
	}
  });
  // При изменении минимального значения цены
  priceInputMin.keyup(function(){
	var newVal = parseInt($(this).val());
	if(newVal < priceFilterMinAvailable) {
	  newVal = priceFilterMinAvailable;
	}
	priceSliderBlock.slider("values", 0, newVal);
	priceSubmitButtonBlock.show();
  });
  // При изменении максимального значения цены
  priceInputMax.keyup(function(){
	var newVal = parseInt($(this).val());
	if(newVal > priceFilterMaxAvailable) {
	  newVal = priceFilterMaxAvailable;
	}
	priceSliderBlock.slider("values", 1, newVal);
	priceSubmitButtonBlock.show();
  });


#173 xoldn

xoldn

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 145 сообщений

Отправлено 20 Июнь 2014 - 09:29

Как поместить "фильтр по цене" в рамку "Фильтры по товарам" (показал на скришоте). и убрать кнопку показать, Убрать цифры вверху, и переместить значения "от и до" над ползунком? Схематично показал на скришоте)
Еще нужно чтобы этот фильтр показывался только в том случае если в категории включен "фильтр по товарам", а то он появляется даже в тех категориях где фильтр ненужен.

Прикрепленные изображения

  • Безымянный.jpg


#174 Сake

Сake

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

  • Модератоpы
  • 5 979 сообщений

Отправлено 21 Июнь 2014 - 01:14

Попробуйте заменить ранее предложенный код

<!-- Если в тарифном плане подключен модуль фильтров по товарам -->
						  {% IF TARIFF_FEATURE_GOODS_FILTERS %}
								<form action="" method="get">
								  <!-- Фильтры по товарам. Появляются только на странице категории и поиска по товарам -->
								  {% IF SHOW_GOODS_FILTERS %}
										<br /><h4 class="contentTbodyCatalogHeader noBorder">Фильтры по товарам</h4>
										<!-- Форма поиска отправляет всегда на ту же страницу, на которой находится пользователь -->
										<div class="contentTbodySearchFilterBlock cornerAll">
										  <!-- Фильтры по характеристикам товаров (Например: Производитель, разрешение экрана, заряд батареи) -->
										  {% FOR filter_attr_list %}
												<em>{filter_attr_list.NAME}</em>
												<div class="contentTbodySearchFilterBlockValues">
												  {% 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} ({filter_attr_list.values.NB_GOODS_FILTERED})</label><br />
												  {% ENDFOR %}
												</div>
										  {% ENDFOR %}
										  <!-- Фильтры по свойствам товарных модификаций (Например: Цвет, размер, модификация) -->
										  {% FOR filter_prop_list %}
												<em>{filter_prop_list.NAME}</em>
												<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"{% ELSEIF filter_prop_list.values.NB_GOODS_FILTERED=0 %}disabled="disabled"{% ENDIF %} >
														<label for="filterPropVal{filter_prop_list.values.ID}">{filter_prop_list.values.VALUE} ({filter_prop_list.values.NB_GOODS_FILTERED})</label><br />
												  {% ENDFOR %}
												</div>
										  {% ENDFOR %}
										</div>
								  {% ENDIF %}
								
								  <!-- Если есть возможность фильтрации товаров по ценам -->
								  {% IF SHOW_GOODS_PRICE_FILTERS %}
										<br /><h4 class="contentTbodyCatalogHeader noBorder">Цена</h4>
										<div class="contentTbodySearchPriceFilterBlock cornerAll">
										  <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" />
										  </div>
										  <div class="goodsFilterPriceSubmit">
												<input type="submit" value="Показать" />
										  </div>
										</div>
								  {% ENDIF %}
								  <!-- END Если есть возможность фильтрации товаров по ценам -->
								
								</form>
						  {% ENDIF %}
						  <!-- END Если в тарифном плане подключен модуль фильтров по товарам -->

заменить на следующий

<!-- Если в тарифном плане подключен модуль фильтров по товарам -->
						  {% IF TARIFF_FEATURE_GOODS_FILTERS %}
								<form action="" method="get">
								  <!-- Фильтры по товарам. Появляются только на странице категории и поиска по товарам -->
								  {% IF SHOW_GOODS_FILTERS %}
										<br /><h4 class="contentTbodyCatalogHeader noBorder">Фильтры по товарам</h4>
										<!-- Форма поиска отправляет всегда на ту же страницу, на которой находится пользователь -->
										<div class="contentTbodySearchFilterBlock cornerAll">
										  <!-- Фильтры по характеристикам товаров (Например: Производитель, разрешение экрана, заряд батареи) -->
										  {% FOR filter_attr_list %}
												<em>{filter_attr_list.NAME}</em>
												<div class="contentTbodySearchFilterBlockValues">
												  {% 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} ({filter_attr_list.values.NB_GOODS_FILTERED})</label><br />
												  {% ENDFOR %}
												</div>
										  {% ENDFOR %}
										  <!-- Фильтры по свойствам товарных модификаций (Например: Цвет, размер, модификация) -->
										  {% FOR filter_prop_list %}
												<em>{filter_prop_list.NAME}</em>
												<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"{% ELSEIF filter_prop_list.values.NB_GOODS_FILTERED=0 %}disabled="disabled"{% ENDIF %} >
														<label for="filterPropVal{filter_prop_list.values.ID}">{filter_prop_list.values.VALUE} ({filter_prop_list.values.NB_GOODS_FILTERED})</label><br />
												  {% ENDFOR %}
												</div>
										  {% ENDFOR %}
										  <!-- Если есть возможность фильтрации товаров по ценам -->
								  {% IF SHOW_GOODS_PRICE_FILTERS %}
										<em>Цена</em>
										  <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" />
										  </div>
										  <div class="goodsFilterPriceSubmit" style="display: none !important;">
												<input type="submit" value="Показать" />
										  </div>
								  {% ENDIF %}
								  <!-- END Если есть возможность фильтрации товаров по ценам -->
										</div>
								  {% ENDIF %}
								</form>
						  {% ENDIF %}
						  <!-- END Если в тарифном плане подключен модуль фильтров по товарам -->

возможно дополнительно понадобиться выравнивание через стили.





Темы с аналогичным тегами обновления, фильтры, uptime

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных