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


Поменять Местами Каталог И Фильтр


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

#1 a.korkishko

a.korkishko

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

  • Пользователи
  • PipPipPip
  • 72 сообщений
  • ГородКраснодар

Отправлено 05 Июнь 2015 - 14:30

Как можно поменять местами каталог и фильтр, как сделать, чтоб фильтр всегда был раскрыт.

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

  • местами.jpg


#2 Firefly

Firefly

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

  • Модераторы
  • 3 810 сообщений

Отправлено 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 a.korkishko

a.korkishko

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

  • Пользователи
  • PipPipPip
  • 72 сообщений
  • ГородКраснодар

Отправлено 05 Июнь 2015 - 15:46

Спасибо! а как сделать, чтоб пункты фильтрации всегда были раскрыты?

#4 Vaccina

Vaccina

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

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

Отправлено 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 User1

User1

    Пользователь

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

Отправлено 13 Октябрь 2015 - 21:01

Уважаемая Vaccina!
Хотел в Лазури сделать фильтры "чекбоксовыми".
Я ваш код упростил. Заново установил шаблон Лазурь, в 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 User1

User1

    Пользователь

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

Отправлено 14 Октябрь 2015 - 02:09

Уважаемые суппорты!
Спасибо, докапался сам. Учитывая вашу занятость теперь прошу только подтвердить правильно ли я сделал и не будет ли каких-то подводных камней.

В 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 анонимных