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


Как Убрать Из Фильтра Отображение Нулевых (0) Значений?


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

#1 defistaf

defistaf

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

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

Отправлено 19 Май 2016 - 14:41

Добрый день, нужно убрать в фильтре по товарам все значение с (0), скрыть их,  вот пример: клиент заходит в "каталог" на сайте , выбирает марку авто - модель - и тут ему нужно пролистать все модели всех марок на сайте и найти свою! Вот в этом и неудобство!

#2 defistaf

defistaf

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

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

Отправлено 25 Май 2016 - 17:36

Жду ответ!

#3 Vaccina

Vaccina

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

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

Отправлено 26 Май 2016 - 05:47

В шаблоне Товары найдите:
<!-- Фильтры по характеристикам товаров (Например: Производитель, разрешение экрана, заряд аккомулятора) -->
				{% FOR filter_attr_list %}
				  <div class="filter">
					<div>
					  {filter_attr_list.NAME}:<br />
					  <select onchange="$(this).attr('name', $(this).find('option:selected').attr('value') == -1 ? '' : $(this).find('option:selected').attr('rel'));this.form.submit();" 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" {% IF filter_attr_list.values.CHECKED %}selected="selected"{% ELSEIF filter_attr_list.values.NB_GOODS_FILTERED=0 %}disabled="disabled"{% ENDIF %} rel="form[filter][attr][{filter_attr_list.ID}][{filter_attr_list.values.ID}]">{filter_attr_list.values.VALUE} ({filter_attr_list.values.NB_GOODS_FILTERED})</option>
						{% ENDFOR %}
					  </select>
					</div>
				  </div>
				{% ENDFOR %}
   
				<!-- Фильтры по свойствам товарных модификаций (Например: Цвет, размер, модификация) -->
				{% FOR filter_prop_list %}
				  <div class="filter">
					<div>
					  {filter_prop_list.NAME}:<br />
					  <select onchange="$(this).attr('name', $(this).find('option:selected').attr('value') == -1 ? '' : $(this).find('option:selected').attr('rel'));this.form.submit();" 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" {% IF filter_prop_list.values.CHECKED %}selected="selected"{% ELSEIF filter_prop_list.values.NB_GOODS_FILTERED=0 %}disabled="disabled"{% ENDIF %} rel="form[filter][prop][{filter_prop_list.ID}][{filter_prop_list.values.ID}]">{filter_prop_list.values.VALUE} ({filter_prop_list.values.NB_GOODS_FILTERED})</option>
						{% ENDFOR %}
					  </select>
					</div>
				  </div>
				{% ENDFOR %}

замените на:
<!-- Фильтры по характеристикам товаров (Например: Производитель, разрешение экрана, заряд аккомулятора) -->
				{% FOR filter_attr_list %}
				  <div class="filter">
					<div>
					  {filter_attr_list.NAME}:<br />
					  <select onchange="$(this).attr('name', $(this).find('option:selected').attr('value') == -1 ? '' : $(this).find('option:selected').attr('rel'));this.form.submit();" 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 %}{% IFNOT filter_attr_list.values.NB_GOODS_FILTERED = 0 %}
						  <option value="1" {% IF filter_attr_list.values.CHECKED %}selected="selected"{% ELSEIF filter_attr_list.values.NB_GOODS_FILTERED=0 %}disabled="disabled"{% ENDIF %} rel="form[filter][attr][{filter_attr_list.ID}][{filter_attr_list.values.ID}]">{filter_attr_list.values.VALUE} ({filter_attr_list.values.NB_GOODS_FILTERED})</option>
						{% ENDIF %}{% ENDFOR %}
					  </select>
					</div>
				  </div>
				{% ENDFOR %}
   
				<!-- Фильтры по свойствам товарных модификаций (Например: Цвет, размер, модификация) -->
				{% FOR filter_prop_list %}
				  <div class="filter">
					<div>
					  {filter_prop_list.NAME}:<br />
					  <select onchange="$(this).attr('name', $(this).find('option:selected').attr('value') == -1 ? '' : $(this).find('option:selected').attr('rel'));this.form.submit();" 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 %}{% IFNOT filter_prop_list.values.NB_GOODS_FILTERED = 0 %}
						  <option value="1" {% IF filter_prop_list.values.CHECKED %}selected="selected"{% ELSEIF filter_prop_list.values.NB_GOODS_FILTERED=0 %}disabled="disabled"{% ENDIF %} rel="form[filter][prop][{filter_prop_list.ID}][{filter_prop_list.values.ID}]">{filter_prop_list.values.VALUE} ({filter_prop_list.values.NB_GOODS_FILTERED})</option>
						{% ENDIF %}{% ENDFOR %}
					  </select>
					</div>
				  </div>
				{% ENDFOR %}


#4 defistaf

defistaf

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

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

Отправлено 26 Май 2016 - 10:54

Просмотр сообщенияVaccina (26 Май 2016 - 05:47) писал:

В шаблоне Товары найдите:
<!-- Фильтры по характеристикам товаров (Например: Производитель, разрешение экрана, заряд аккомулятора) -->
			 {% FOR filter_attr_list %}
				 <div class="filter">
				 <div>
					 {filter_attr_list.NAME}:<br />
					 <select onchange="$(this).attr('name', $(this).find('option:selected').attr('value') == -1 ? '' : $(this).find('option:selected').attr('rel'));this.form.submit();" 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" {% IF filter_attr_list.values.CHECKED %}selected="selected"{% ELSEIF filter_attr_list.values.NB_GOODS_FILTERED=0 %}disabled="disabled"{% ENDIF %} rel="form[filter][attr][{filter_attr_list.ID}][{filter_attr_list.values.ID}]">{filter_attr_list.values.VALUE} ({filter_attr_list.values.NB_GOODS_FILTERED})</option>
					 {% ENDFOR %}
					 </select>
				 </div>
				 </div>
			 {% ENDFOR %}

			 <!-- Фильтры по свойствам товарных модификаций (Например: Цвет, размер, модификация) -->
			 {% FOR filter_prop_list %}
				 <div class="filter">
				 <div>
					 {filter_prop_list.NAME}:<br />
					 <select onchange="$(this).attr('name', $(this).find('option:selected').attr('value') == -1 ? '' : $(this).find('option:selected').attr('rel'));this.form.submit();" 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" {% IF filter_prop_list.values.CHECKED %}selected="selected"{% ELSEIF filter_prop_list.values.NB_GOODS_FILTERED=0 %}disabled="disabled"{% ENDIF %} rel="form[filter][prop][{filter_prop_list.ID}][{filter_prop_list.values.ID}]">{filter_prop_list.values.VALUE} ({filter_prop_list.values.NB_GOODS_FILTERED})</option>
					 {% ENDFOR %}
					 </select>
				 </div>
				 </div>
			 {% ENDFOR %}

замените на:
<!-- Фильтры по характеристикам товаров (Например: Производитель, разрешение экрана, заряд аккомулятора) -->
			 {% FOR filter_attr_list %}
				 <div class="filter">
				 <div>
					 {filter_attr_list.NAME}:<br />
					 <select onchange="$(this).attr('name', $(this).find('option:selected').attr('value') == -1 ? '' : $(this).find('option:selected').attr('rel'));this.form.submit();" 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 %}{% IFNOT filter_attr_list.values.NB_GOODS_FILTERED = 0 %}
						 <option value="1" {% IF filter_attr_list.values.CHECKED %}selected="selected"{% ELSEIF filter_attr_list.values.NB_GOODS_FILTERED=0 %}disabled="disabled"{% ENDIF %} rel="form[filter][attr][{filter_attr_list.ID}][{filter_attr_list.values.ID}]">{filter_attr_list.values.VALUE} ({filter_attr_list.values.NB_GOODS_FILTERED})</option>
					 {% ENDIF %}{% ENDFOR %}
					 </select>
				 </div>
				 </div>
			 {% ENDFOR %}

			 <!-- Фильтры по свойствам товарных модификаций (Например: Цвет, размер, модификация) -->
			 {% FOR filter_prop_list %}
				 <div class="filter">
				 <div>
					 {filter_prop_list.NAME}:<br />
					 <select onchange="$(this).attr('name', $(this).find('option:selected').attr('value') == -1 ? '' : $(this).find('option:selected').attr('rel'));this.form.submit();" 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 %}{% IFNOT filter_prop_list.values.NB_GOODS_FILTERED = 0 %}
						 <option value="1" {% IF filter_prop_list.values.CHECKED %}selected="selected"{% ELSEIF filter_prop_list.values.NB_GOODS_FILTERED=0 %}disabled="disabled"{% ENDIF %} rel="form[filter][prop][{filter_prop_list.ID}][{filter_prop_list.values.ID}]">{filter_prop_list.values.VALUE} ({filter_prop_list.values.NB_GOODS_FILTERED})</option>
					 {% ENDIF %}{% ENDFOR %}
					 </select>
				 </div>
				 </div>
			 {% ENDFOR %}
Не получилось, при выборе "Фирмы"  появляется JS ошибка и страница не реагирует на фильтр, другие значения фильтра тоже не работают.

#5 Vaccina

Vaccina

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

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

Отправлено 27 Май 2016 - 04:37

Данное изменения проверялось на вашем аккаунте, над товарами фильтры работают корректно, в коде из изменений добавлено условие, если в фильтре значение ноль, то скрываем характеристику в фильтре, никаких добавочных js в инструкции нет.




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

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