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


Множественный Выбор В Выпадающем Фильтре


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

#1 zabota-mama

zabota-mama

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

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

Отправлено 06 Август 2013 - 15:40

Добрый день!

Сейчас вот так(1), как перейти на такой вариант (2)?

Поясню:
1. Сделать множественный выбор как на картинке 2.
2. Убрать "производитель" и "размер", а в самих фильтрах заменить "Все" на "Выберите бренд" или "Выберите размер"
3. Увеличить шрифт
4. Вопрос чисто на юзабилити: не является ли поле сортировки здесь лишним? Не загромождает ли оно пространство?

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

  • 1.png
  • 2.png


#2 Taisia

Taisia

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

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

Отправлено 06 Август 2013 - 19:01

Что бы настроить фильтры категории вам необходимо открыть вкладку Товары пункт меню "Товар"
в открывшемся слева списке категорий выбрать категорию для которой вы настраиваете фильтры и нажать на ней правой кнопкой мышки что бы появилось контекстное меню
в нем выбрать пункт "настроить категорию"
в самом низу открывшейся страницы вы найдете два пункта

Фильтры по характеристикам товаров

Фильтры по свойствам товаров a

используя их вы можете настроить фильтры как вам удобно


2.

найдите в файле ТОВАРЫ код (33-34 строка)

<font color="blue"> {filter_attr_list.NAME}: </font>						 <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 value="0"> - все - </option>

замените на код

<font color="blue" style="display:none;"> {filter_attr_list.NAME}: </font>						 <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 value="0"> - Выберите бренд - </option>

далее найдите код

<!-- Фильтры по свойствам товарных модификаций (Например: Цвет, размер, модификация) -->
				 {% FOR filter_prop_list %}
					 <div class="filter">
		 <font color="blue">				 {filter_prop_list.NAME}: </font>
					 <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 filter_prop_list %}
					 <div class="filter">
		 <font color="blue" style="display:none;>				 {filter_prop_list.NAME}: </font>
					 <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>

что бы изменить шрифт добавьте в конец файла main.css код

div.filter select {font-size:20px;}
меняйте этот параметр font-size:20px; на свое усмотрение

#3 zabota-mama

zabota-mama

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

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

Отправлено 19 Август 2013 - 11:03

Просмотр сообщенияTaisia (06 Август 2013 - 19:01) писал:

Что бы настроить фильтры категории вам необходимо открыть вкладку Товары пункт меню "Товар"
в открывшемся слева списке категорий выбрать категорию для которой вы настраиваете фильтры и нажать на ней правой кнопкой мышки что бы появилось контекстное меню
в нем выбрать пункт "настроить категорию"
в самом низу открывшейся страницы вы найдете два пункта

Фильтры по характеристикам товаров

Фильтры по свойствам товаров a

используя их вы можете настроить фильтры как вам удобно
Эти фильтры у меня включены. Я имею ввиду как сделать множественный выбор из значений одного фильтра. То есть сделать возможность выбрать чек-боксами и бренд "8 март" и бренд "1001". Чек-боксы как на рисунке 2.

#4 Vaccina

Vaccina

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

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

Отправлено 20 Август 2013 - 05:06

Возможно в данном случае лучше будет списку задать возможность множественного выбора через атрибут multiple. Для этого достаточно тегу select задать multiple="multiple" size="5"
Где size это количество отображаемых элементов. Только необходимо будет удалить атрибут onchange у тега select, так как он не даст возможности выбрать несколько вариантов. По сути необходимо будет добавить ниже всех списков кнопку, которая уже и будет применять фильтр.

#5 zabota-mama

zabota-mama

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

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

Отправлено 20 Август 2013 - 21:43

Просмотр сообщенияTaisia (06 Август 2013 - 19:01) писал:


найдите в файле ТОВАРЫ код (33-34 строка)

<font color="blue"> {filter_attr_list.NAME}: </font>						 <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 value="0"> - все - </option>

замените на код

<font color="blue" style="display:none;"> {filter_attr_list.NAME}: </font>						 <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 value="0"> - [color=#282828][font=helvetica, arial, sans-serif]Выберите бренд[/font][/color]- </option>

далее найдите код

<!-- Фильтры по свойствам товарных модификаций (Например: Цвет, размер, модификация) -->
				 {% FOR filter_prop_list %}
					 <div class="filter">
		 <font color="blue">				 {filter_prop_list.NAME}: </font>
					 <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 filter_prop_list %}
					 <div class="filter">
		 <font color="blue" style="display:none;>				 {filter_prop_list.NAME}: </font>
					 <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> - [color=#282828][font=helvetica, arial, sans-serif]Выберите размер[/font][/color]- </option>


Вот так получилось: в бренд код вылез, а размеры вообще исчезли.
Вернул обратно.
Подправьте код пж-та.

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

  • ScreenShot 21.jpg


#6 Vaccina

Vaccina

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

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

Отправлено 21 Август 2013 - 02:16

Код в сообщения попал в месте с тегами форума - такими как

[color=#282828][font=helvetica, arial, sans-serif]

Сообщение по которому вы производили изменения - откорректировала. Попробуйте выполнить инструкцию еще раз.

#7 zabota-mama

zabota-mama

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

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

Отправлено 15 Сентябрь 2013 - 15:56

Помогите пж-та ещё.

Сейчас в фильтре по брендам вот так:
"8 марта (11)"
Как переделать на "8 марта (11)", т.е. (11) немного засерить.

Такое же нужно и для фильтра размеров.

Заранее спасибо!

#8 Vaccina

Vaccina

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

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

Отправлено 17 Сентябрь 2013 - 02:21

К сожалению, этого сделать нельзя. В выпадающем списке нельзя использовать теги. Поэтому в данном случае можно только изменить полностью цвет пунктов.

#9 zabota-mama

zabota-mama

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

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

Отправлено 18 Сентябрь 2013 - 19:08

То есть отдельно цвет скобок (и значения в скобках) изменить нельзя?

#10 Vaccina

Vaccina

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

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

Отправлено 19 Сентябрь 2013 - 00:25

К сожалению, нет.

#11 zabota-mama

zabota-mama

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

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

Отправлено 12 Октябрь 2013 - 20:51

Просмотр сообщенияTaisia (06 Август 2013 - 19:01) писал:

2.

найдите в файле ТОВАРЫ код (33-34 строка)

<font color="blue"> {filter_attr_list.NAME}: </font> <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 value="0"> - все - </option>

замените на код

<font color="blue" style="display:none;"> {filter_attr_list.NAME}: </font> <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 value="0"> - Выберите бренд - </option>

далее найдите код

<!-- Фильтры по свойствам товарных модификаций (Например: Цвет, размер, модификация) -->
{% FOR filter_prop_list %}
<div class="filter">
<font color="blue"> {filter_prop_list.NAME}: </font>
<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 filter_prop_list %}
<div class="filter">
<font color="blue" style="display:none;> {filter_prop_list.NAME}: </font>
<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>




При добавлении 3-го фильтра, название фильтра дублируется - http://zabota-mama.r...log/Бюстгалтеры

То есть 3-й фильтр в карточке товара называется "Конструкция", а в каталоге он фигурирует как "Выберите бренд"

#12 miyako

miyako

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

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

Отправлено 13 Октябрь 2013 - 09:39

Просмотр сообщенияzabota-mama (12 Октябрь 2013 - 20:51) писал:

При добавлении 3-го фильтра, название фильтра дублируется - http://zabota-mama.r...log/Бюстгалтеры

То есть 3-й фильтр в карточке товара называется "Конструкция", а в каталоге он фигурирует как "Выберите бренд"

А как нужно, чтобы отображалось?

#13 zabota-mama

zabota-mama

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

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

Отправлено 13 Октябрь 2013 - 19:16

Выберите конструкцию

#14 miyako

miyako

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

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

Отправлено 14 Октябрь 2013 - 08:56

Просмотр сообщенияzabota-mama (13 Октябрь 2013 - 19:16) писал:

Выберите конструкцию

Найдите код в шаблоне Товары -
	  <option value="0"> - Выберите бренд - </option>
и замените на  -
	  <option value="0">{%IF filter_attr_list.NAME = Конструкция%} - Выберите конструкцию - {%ELSE%} - Выберите бренд - {%ENDIF%}</option>





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

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