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


Модуль Фильтра


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

#1 antonsk8

antonsk8

    Новичок

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

Отправлено 18 Сентябрь 2011 - 01:33

Здравствуйте!
Уважаемые господа, как разместить модуль фильтра в каталоге товаров (что бы он отражался на этой странице: Вы здесь: Главная > Каталог товаров)?
И еще вопрос по фильтру:
Возможно-ли его сделать выпадающим?
Очень много разных модификаций и модуль будет очень длинным на странице.
Спасибо!

#2 support

support

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

  • Модераторы
  • 3 686 сообщений
  • ГородМосква

Отправлено 14 Октябрь 2011 - 04:49

Разместить модуль фильтра в каталоге всех товаров пока не представляется возможным, думаю возможность появится в будущем, сделать выпадающим естественно можно. Например используя вместо стандартного рендеринга формы фильтров с галочками от шаблона Мокко из шаблона "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"{% ENDIF %} /> 
						  <label for="filterAttrVal{filter_attr_list.values.ID}">{filter_attr_list.values.VALUE}</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"{% ENDIF %} > 
						  <label for="filterPropVal{filter_prop_list.values.ID}">{filter_prop_list.values.VALUE}</label><br />
						{% ENDFOR %}
						</div>
					  {% ENDFOR %}
					</div>
				  </form>
				{% ENDIF %}
			  {% ENDIF %}
	  				<!-- END Если в тарифном плане подключен модуль фильтров по товарам -->

Следующий, генерирующий поля с выпадающими списками:
			<!-- Если в тарифном плане подключен модуль фильтров по товарам -->
			{% IF TARIFF_FEATURE_GOODS_FILTERS %}
			  <!-- Фильтры по товарам. Появляются только на странице категории и поиска по товарам -->
			  {% IF SHOW_GOODS_FILTERS %}
				<div class="filters">   
				  <!-- Форма поиска отправляет всегда на ту же страницу, на которой находится пользователь -->
				  <form action="" method="get">
					<!-- Фильтры по характеристикам товаров (Например: Производитель, разрешение экрана, заряд аккомулятора) -->
					{% FOR filter_attr_list %}
					  <div class="filter">
						{filter_attr_list.NAME}:<br />
						<select onchange="$(this).attr('name', $(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" 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 onchange="$(this).attr('name', $(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" 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 %}
					<div class="clear"></div> 
				  </form>
				</div>
			  {% ENDIF %}
			{% ENDIF %}
			<!-- END Если в тарифном плане подключен модуль фильтров по товарам -->


#3 at1ce

at1ce

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

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

Отправлено 25 Март 2012 - 10:46

Как упорядочить данные внутри такого списка по нарастающей или алфавиту?

#4 Vaccina

Vaccina

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

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

Отправлено 26 Март 2012 - 20:14

К сожалению, это реализовать нельзя.

#5 at1ce

at1ce

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

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

Отправлено 27 Март 2012 - 14:58

Надо бы сделать))) многим пригодится.
Очень некрасиво, когда список фильтра разбросан хаотично 123123.JPG

#6 Vaccina

Vaccina

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

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

Отправлено 27 Март 2012 - 20:05

Попробуйте в разделе Товары -> Характеристики изменить положение перемещая  характеристику тянув  за неё. Это может действовать только для фильтра по характеристикам.

#7 kaisyRUS

kaisyRUS

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

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

Отправлено 09 Октябрь 2012 - 23:31

Подскажите пожалуйста, не могу найти. Как блок фильтра товаров разместить над товарами?

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

  • перемещение блока фильтров по товарам.jpg


#8 Vaccina

Vaccina

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

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

Отправлено 10 Октябрь 2012 - 21:19

Данный вопрос обсуждался в следующей теме форума http://forum.storela...ndpost__p__9752

#9 zabota-mama

zabota-mama

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

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

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

Добрый день.

Реализовал фильтры по производителю и размерам: http://zabota-mama.r...[1382991]=- все+-

Но если такой комбинации нету, например производитель 8 марта и размер 12, то отображается "Нет товаров для выбранных условий" и фильтры пропадают!!!

Как сделать:

1. Чтобы фильтры не исчезали, даже если "Нет товаров для выбранных условий" ?

2. Отображать размеры, только выбранного производителя.

Например, у производителя 8 марта, есть только 2 размера 110 и 116.
Как сделать чтобы при выборе этого производителя в фильтре по размерам отображались только эти 2 размера?
(а не как сейчас все размеры что есть в категории)

3. Тоже самое в обратную сторону. Если выбрать размер 110, то в фильтре по производителю отображались только производители у которых есть этот размер.

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

#10 Koderhan

Koderhan

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

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

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

Пробуйте из кода фильтра убрать код:
{% ENDIF %}
<!-- END Если в тарифном плане подключен модуль фильтров по товарам --> 
И код:
 <!-- Фильтры по товарам. Появляются только на странице категории и поиска по товарам -->
  {% IF SHOW_GOODS_FILTERS %}

Отобразить размеры выбранного пользователя на сколько мне известно затруднительно.

И в обратную строну тоже.

#11 zabota-mama

zabota-mama

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

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

Отправлено 19 Ноябрь 2012 - 20:48

Убрал, тоже самое.

#12 Vaccina

Vaccina

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

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

Отправлено 20 Ноябрь 2012 - 16:17

Как я понимаю вы перенесли фильтры в шаблон "Товары", и код фильтров находиться в условии отображения товаров. Пожалуйста, приведите ваш полный код шаблона "Товары".

#13 zabota-mama

zabota-mama

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

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

Отправлено 20 Ноябрь 2012 - 19:40

Первую строку убрал,
а то вместо всего кода всего один кусок на форум пролазит - <p id="breadcrumb">Вы здесь: <a href="

<!-- Если отображаем полный каталог товаров, без указания категории -->
	  {% IF IS_FULL_CATALOG %}
		&gt; <strong>Каталог товаров</strong>
	  <!-- Если отображаем товары в категории -->
	  {% ELSE %}
		&gt; <a href="{CATALOG_URL}" >Каталог товаров</a> 
		{% FOR upper_navigation %}
		  {% IF upper_navigation.CURRENT %} &gt; <strong>{upper_navigation.NAME}</strong>{% ELSEIF upper_navigation.CURRENT_PARENT %} &gt; <a href="{upper_navigation.URL}" >{upper_navigation.NAME}</a>{% ENDIF %}
		{% ENDFOR %}
	  {% ENDIF %}
</p>

<h1>{CATEGORY_NAME}</h1>

<!-- Короткое SEO описание категории -->
{CATEGORY_SEO_DESCRIPTION_SHORT}

  <table>


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

  <!-- Фильтры по товарам. Появляются только на странице категории и поиска по товарам --> 

  

	<style> 
	  .filters { } 
	  .filters .filter { float:left;padding-right:10px;width:150px; } 
	  .filters .filter select { width:150px; } 
	</style> 



		<div class="filters">	  
		<!-- Форма поиска отправляет всегда на ту же страницу, на которой находится пользователь --> 
		<form action="" method="get"> 
		  <!-- Фильтры по характеристикам товаров (Например: Производитель, разрешение экрана, заряд аккомулятора) --> 
		  {% FOR filter_attr_list %} 
			<div class="filter"> 
			 <h3>  <font size="7" color="blue"> {filter_attr_list.NAME}: </font>   </h3>

			 <select onchange="$(this).attr('name', $(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" 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"> 
			 <h3><font size="7" color="blue">  {filter_prop_list.NAME}:  </font></h3>			<select onchange="$(this).attr('name', $(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" 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 %} 
		  <div class="clear"></div>  
		</form> 
	  </div> 
	</li> 
  {% ENDIF %} 
<!-- END Если в тарифном плане подключен модуль фильтров по товарам -->

  <tr>
<br> </br>
</tr>


  <!-- Фильтры показываются только если есть товары в категории   -->
{% IFNOT goods_empty %} 
	  <!-- Дополнительная навигация для работы со списком товаров -->
	<tr>
	  <!-- Блок выбора параметра по которому производится сортировка списка товаров и возможность изменения лимитов выдачи -->
	  <td>
		<form action="">
		  <!-- Список фильтров, которые сейчас действуют на результаты поиска -->
		  {% FOR goods_filters %}
			<input type="hidden" name="{goods_filters.NAME}" value="{goods_filters.VALUE}" />
		  {% ENDFOR %}
  
		  <!-- Поле выбора сортировки -->
		  {% IF goods_show_order_fields %}
			Сортировать по:
			<select name="goods_search_field_id" onchange="this.form.submit();">
			  {% FOR goods_order_fields %}
				<option value="{goods_order_fields.ID}" {% IF goods_order_fields.SELECTED %}selected="selected"{% ENDIF %}>{goods_order_fields.NAME}</option>
			  {% ENDFOR %}
			</select>
		  {% ENDIF %}
		  
		  <!-- Поле выбора лимитов -->
		  {% IF goods_show_per_page %}
			Показывать по:
			<select name="per_page" onchange="this.form.submit();">
			  {% FOR goods_per_page_list %}
				<option value="{goods_per_page_list.LIMIT}" {% IF goods_per_page_list.SELECTED %}selected="selected"{% ENDIF %}>{goods_per_page_list.LIMIT}</option>
			  {% ENDFOR %}
			</select>
		  {% ENDIF %}

		</form>
	  </td>
	  <!-- END Блок выбора параметра по которому производится сортировка списка товаров -->
	  
	  <!-- Страницы -->
	  <td class="alignRight">
		<div>
		  {% IF show_pages %}
		  <div class="square_pages">
			<span>Страницы: </span>
			  {% FOR goods_pages %}
				{% IF goods_pages.CURRENT %}
				  <b>{goods_pages.PAGE}</b>
				{% ELSE %}
				  <a href="{GOODS_PAGINATE_URL}&page={goods_pages.PAGE}">{goods_pages.PAGE}</a>
				{% ENDIF %}
			  {% ENDFOR %}
		  </div>
		  {% ENDIF %}
		</div>
	  </td>
	 <!--  END Страницы -->
	</tr>
	<!-- END Дополнительная навигация для работы со списком товаров -->
  {% ENDIF %}
  <!-- END Фильтры показываются только если есть товары в категории -->




  <!-- Список товаров -->
  <tr>
	<td colspan="2">
	  <table style="padding:0px;margin:0px;">
		<tr>
		  
		  <!-- Если список товаров пуст -->
		  {% IF goods_empty %}
			<td>
			  <!-- Если не применено ни одного фильтра, значит в категории нет товаров -->
			  {% IF goods_filters_empty %}
			   
				<!-- Если в категории нет товаров, но есть категории, то отобразим их -->
				{%IFNOT nested_categories_list_empty %}
		  
				  <!-- Блок навигации по категориям, вложенным в текущую категорию -->
				  <ul class="content_catalog_nested_categories">
					{% FOR nested_categories_list %}
					  <li>
						<div class="withBorder cornerAll" style="padding:1em">
						  <div><a href="{nested_categories_list.URL}" title="Перейти к категории &laquo;{nested_categories_list.NAME}&raquo;"><img {% IF nested_categories_list.IMAGE_EMPTY %}src="{ASSETS_IMAGES_PATH}no-photo-small.png"{% ELSE %}src="{nested_categories_list.IMAGE_MEDIUM}"{% ENDIF %} alt="{nested_categories_list.NAME}" /></a></div>
						  <a href="{nested_categories_list.URL}" title="Перейти к категории &laquo;{nested_categories_list.NAME}&raquo;">{nested_categories_list.NAME}</a>
						</div>
					  </li>
					{% ENDFOR %}
				  </ul>
				  <br clear="all"/>

				<!-- Если в категории нет ни товаров, ни категорий то сообщим пользователю что ничего нет -->
				{% ELSE %}
				 <h3>Нет товаров в категории</h3>
				{% ENDIF %}
		  
			  <!-- Если производили фильтрацию товаров в категории -->
			  {% ELSE %}
				<h3>Нет товаров для выбранных условий</h3>
			  {% ENDIF %}
			</td>

		  <!-- Если есть товары -->
		  {% ELSE %}
			{% FOR goods %}
			<td class="goodsListItem">  
				<div class="goodsListItemBlock withBorder cornerAll">
				<div class="goodsListItemImage"><a href="{goods.URL}"><img src="{% IF goods.IMAGE_EMPTY %}{ASSETS_IMAGES_PATH}no-photo-small.png{% ELSE %}{goods.IMAGE_SMALL}{% ENDIF %}" alt="{goods.NAME}" /></a></div>
				<h3 class="goodsListItemName"><a href="{goods.URL}">{goods.NAME}</a></h3>
				<div class="goodsListItemPriceNew">
				  <a href="{goods.URL_MIN_PRICE_NOW}">{goods.MIN_PRICE_NOW | money_format}</a>
				</div>  
				<div class="goodsListItemPriceOld">
				  {% IF goods.MIN_PRICE_NOW_WITHOUT_DISCOUNT>goods.MIN_PRICE_NOW %}
					  <a href="{goods.URL_MIN_PRICE_NOW_WITHOUT_DISCOUNT}" class="lineThrough">{goods.MIN_PRICE_NOW_WITHOUT_DISCOUNT | money_format}</a>
					{% ELSEIF goods.MIN_PRICE_OLD>goods.MIN_PRICE_NOW %}
					  <a href="{goods.URL_MIN_PRICE_OLD}" class="lineThrough">{goods.MIN_PRICE_OLD | money_format}</a>
					{% ENDIF %}
				</div>
				</div>
			  </td>
			{goods.index | is_divided("4","</tr><tr>","")}
		   {% ENDFOR goods %}
		 {% ENDIF %}
		</tr>
	  </table>
	</td>
  </tr>
  <!-- END Список товаров -->
  
  <!-- Подвал таблицы со списком товаров -->
  <tr>
	<!-- Страницы -->
	<td colspan="2" class="alignRight">
	  <div>
		{% IF show_pages %}
		<div class="square_pages">
		  <span>Страницы: </span>
			{% FOR goods_pages %}
			  {% IF goods_pages.CURRENT %}
				<b>{goods_pages.PAGE}</b>
			  {% ELSE %}
				<a href="{GOODS_PAGINATE_URL}&page={goods_pages.PAGE}">{goods_pages.PAGE}</a>
			  {% ENDIF %}
			{% ENDFOR %}
		</div>
		{% ENDIF %}
	  </div>
	</td>
	<!-- END Страницы -->
  </tr>
  <!-- END Подвал таблицы со списком товаров -->

</table>

<!-- Описание категории -->
<div class="htmlDataBlock">
  {CATEGORY_DESCRIPTION}
</div>

<!-- Полное SEO описание категории -->
<div class="htmlDataBlock">
  {CATEGORY_SEO_DESCRIPTION_LARGE}
</div>



#14 support

support

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

  • Модераторы
  • 3 686 сообщений
  • ГородМосква

Отправлено 20 Ноябрь 2012 - 20:13

Насколько помню, подобный код фильтров сделанных в виде выпадающего списка есть в шаблоне "Техника", там запрещён переход по фильтру, выбрав который не найдётся ни одного товара, возможно Вы ищете именно его, вот он:
<!-- Если в тарифном плане подключен модуль фильтров по товарам -->
			{% IF TARIFF_FEATURE_GOODS_FILTERS %}
			  <!-- Фильтры по товарам. Появляются только на странице категории и поиска по товарам -->
			  {% IF SHOW_GOODS_FILTERS %}
				<div class="filters">   
				  <!-- Форма поиска отправляет всегда на ту же страницу, на которой находится пользователь -->
				  <form action="" method="get">
					<!-- Фильтры по характеристикам товаров (Например: Производитель, разрешение экрана, заряд аккомулятора) -->
					{% FOR filter_attr_list %}
					  <div class="filter">
						{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 value="0"> - все - </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 %} {% IF filter_attr_list.values.NB_GOODS_FILTERED=0 %}disabled="disabled" class="disabled"{% ENDIF %} >{filter_attr_list.values.VALUE} ({filter_attr_list.values.NB_GOODS_FILTERED})</option>
						  {% ENDFOR %}
						</select>
					  </div>
					{% ENDFOR %}

					<!-- Фильтры по свойствам товарных модификаций (Например: Цвет, размер, модификация) -->
					{% FOR filter_prop_list %}
					  <div class="filter">
						{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" rel="form[filter][prop][{filter_prop_list.ID}][{filter_prop_list.values.ID}]" {% IF filter_prop_list.values.CHECKED %}selected="selected"{% ENDIF %} {% IF filter_prop_list.values.NB_GOODS_FILTERED=0 %}disabled="disabled" class="disabled"{% ENDIF %}>{filter_prop_list.values.VALUE} {% IF filter_prop_list.values.NB_GOODS_FILTERED > 0 %}({filter_prop_list.values.NB_GOODS_FILTERED}){% ENDIF %}</option>
						  {% ENDFOR %}
						</select>
					  </div>
					{% ENDFOR %}
					<div class="clear"></div> 
				  </form>
				</div>
			  {% ENDIF %}
			{% ENDIF %}
			<!-- END Если в тарифном плане подключен модуль фильтров по товарам -->

Добавляется в шаблон "Товары"

#15 zabota-mama

zabota-mama

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

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

Отправлено 21 Ноябрь 2012 - 09:37

Спасибо, то что надо :)/>

1. Сейчас переход по фильтру, выбрав который не найдётся ни одного товара отображается серым с (0). Как сделать чтобы эти позиции вообще не отображались? (картинка 1)

2. Как фильтры выстроить в линию, а шрифт названия увеличить до h3 (картинка 2)

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

  • 1.png
  • 2.png


#16 Koderhan

Koderhan

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

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

Отправлено 21 Ноябрь 2012 - 11:18

2. В файле "товары" найти код. Ваш код будет отличаться, можете найти по <div class="filter">  этот код и у вас должен быть таким же.
<!-- Если в тарифном плане подключен модуль фильтров по товарам -->
			{% IF TARIFF_FEATURE_GOODS_FILTERS %}
			  <!-- Фильтры по товарам. Появляются только на странице категории и поиска по товарам -->
			  {% IF SHOW_GOODS_FILTERS %}
				<div class="filters">   
				  <!-- Форма поиска отправляет всегда на ту же страницу, на которой находится пользователь -->
				  <form action="" method="get">
					<!-- Фильтры по характеристикам товаров (Например: Производитель, разрешение экрана, заряд аккомулятора) -->
					{% FOR filter_attr_list %}
					  <div class="filter">
						{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 value="0"> - все - </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 %} {% IF filter_attr_list.values.NB_GOODS_FILTERED=0 %}disabled="disabled" class="disabled"{% ENDIF %} >{filter_attr_list.values.VALUE} ({filter_attr_list.values.NB_GOODS_FILTERED})</option>
						  {% ENDFOR %}
						</select>
					  </div>
					{% ENDFOR %}
<br><!-- Тег отвечающий за переход на новую строку.-->
					<!-- Фильтры по свойствам товарных модификаций (Например: Цвет, размер, модификация) -->
					{% FOR filter_prop_list %}
					  <div class="filter">
						{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" rel="form[filter][prop][{filter_prop_list.ID}][{filter_prop_list.values.ID}]" {% IF filter_prop_list.values.CHECKED %}selected="selected"{% ENDIF %} {% IF filter_prop_list.values.NB_GOODS_FILTERED=0 %}disabled="disabled" class="disabled"{% ENDIF %}>{filter_prop_list.values.VALUE} {% IF filter_prop_list.values.NB_GOODS_FILTERED > 0 %}({filter_prop_list.values.NB_GOODS_FILTERED}){% ENDIF %}</option>
						  {% ENDFOR %}
						</select>
					  </div>
					{% ENDFOR %}
					<div class="clear"></div> 
				  </form>
				</div>
			  {% ENDIF %}
			{% ENDIF %}
			<!-- END Если в тарифном плане подключен модуль фильтров по товарам -->

И удалить тег "<br>" из-за него происходит переход на новую строку.
В файле main.csstemplate добавить код:
.filter {
	display: inline-block;
}

1. Мне так и не удалось найти "серое отображение". Пожалуйста скажите, на какой странице оно находится.
ScreenShot 116.jpg

#17 zabota-mama

zabota-mama

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

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

Отправлено 21 Ноябрь 2012 - 16:33

2. <br> убрал, но фильтры в линию не встали (просто исчез отступ между ними).

от кода в файле main.csstemplate ничего не изменилось.

картинку приложил

Мой код:
<!-- Если в тарифном плане подключен модуль фильтров по товарам --> 
			{% IF TARIFF_FEATURE_GOODS_FILTERS %} 
			  <!-- Фильтры по товарам. Появляются только на странице категории и поиска по товарам --> 
			  {% IF SHOW_GOODS_FILTERS %} 
				<div class="filters">	
				  <!-- Форма поиска отправляет всегда на ту же страницу, на которой находится пользователь --> 
				  <form action="" method="get"> 
					<!-- Фильтры по характеристикам товаров (Например: Производитель, разрешение экрана, заряд аккомулятора) --> 
					{% FOR filter_attr_list %} 
					  <div class="filter"> 
					   <font color="green">  {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 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 %} {% IF filter_attr_list.values.NB_GOODS_FILTERED=0 %}disabled="disabled" class="disabled"{% ENDIF %} >{filter_attr_list.values.VALUE} ({filter_attr_list.values.NB_GOODS_FILTERED})</option> 
						  {% ENDFOR %} 
						</select> 
					  </div> 
					{% ENDFOR %} 


					<!-- Фильтры по свойствам товарных модификаций (Например: Цвет, размер, модификация) --> 
					{% FOR filter_prop_list %} 
					  <div class="filter"> 
			<font color="green">					{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 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 %} {% IF filter_prop_list.values.NB_GOODS_FILTERED=0 %}disabled="disabled" class="disabled"{% ENDIF %}>{filter_prop_list.values.VALUE} {% IF filter_prop_list.values.NB_GOODS_FILTERED > 0 %}({filter_prop_list.values.NB_GOODS_FILTERED}){% ENDIF %}</option> 
						  {% ENDFOR %} 
						</select> 
					  </div> 
					{% ENDFOR %} 
					<div class="clear"></div>  
				  </form> 
				</div> 
			  {% ENDIF %} 
			{% ENDIF %} 
			<!-- END Если в тарифном плане подключен модуль фильтров по товарам -->



1. По поводу серых производителей: надо сначала выбрать какой-нибудь размер, а потом открыть фильтры по производителю.
Ссылка - http://zabota-mama.r...og/Девочкам-0-1 . Приложил картинку 4

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

  • ScreenShot 2.jpg
  • ScreenShot 4.jpg


#18 Koderhan

Koderhan

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

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

Отправлено 21 Ноябрь 2012 - 16:56

1. Размеры и производитель отображаются в одну строку. Скриншот.
ScreenShot 127.jpg

2. В файле Товары.
Найти код:
<!-- Если в тарифном плане подключен модуль фильтров по товарам --> 
			{% IF TARIFF_FEATURE_GOODS_FILTERS %} 
			  <!-- Фильтры по товарам. Появляются только на странице категории и поиска по товарам --> 
			  {% IF SHOW_GOODS_FILTERS %} 
				<div class="filters">	
				  <!-- Форма поиска отправляет всегда на ту же страницу, на которой находится пользователь --> 
				  <form action="" method="get"> 
					<!-- Фильтры по характеристикам товаров (Например: Производитель, разрешение экрана, заряд аккомулятора) --> 
					{% FOR filter_attr_list %} 
					  <div class="filter"> 
					   <font color="green">  {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 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 %} {% IF filter_attr_list.values.NB_GOODS_FILTERED=0 %}disabled="disabled" class="disabled"{% ENDIF %} >{filter_attr_list.values.VALUE} ({filter_attr_list.values.NB_GOODS_FILTERED})</option> 
						  {% ENDFOR %} 
						</select> 
					  </div> 
					{% ENDFOR %} 


					<!-- Фильтры по свойствам товарных модификаций (Например: Цвет, размер, модификация) --> 
					{% FOR filter_prop_list %} 
					  <div class="filter"> 
			<font color="green">					{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 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 %} {% IF filter_prop_list.values.NB_GOODS_FILTERED=0 %}disabled="disabled" class="disabled"{% ENDIF %}>{filter_prop_list.values.VALUE} {% IF filter_prop_list.values.NB_GOODS_FILTERED > 0 %}({filter_prop_list.values.NB_GOODS_FILTERED}){% ENDIF %}</option> 
						  {% ENDFOR %} 
						</select> 
					  </div> 
					{% ENDFOR %} 
					<div class="clear"></div>  
				  </form> 
				</div> 
			  {% ENDIF %} 
			{% ENDIF %} 
			<!-- END Если в тарифном плане подключен модуль фильтров по товарам -->
Заменить на:
<!-- Если в тарифном плане подключен модуль фильтров по товарам --> 
			{% IF TARIFF_FEATURE_GOODS_FILTERS %} 
			  <!-- Фильтры по товарам. Появляются только на странице категории и поиска по товарам --> 
			  {% IF SHOW_GOODS_FILTERS %} 
				<div class="filters">	
				  <!-- Форма поиска отправляет всегда на ту же страницу, на которой находится пользователь --> 
				  <form action="" method="get"> 
					<!-- Фильтры по характеристикам товаров (Например: Производитель, разрешение экрана, заряд аккомулятора) --> 
					{% FOR filter_attr_list %} 
					  <div class="filter"> 
					   <font color="green">  {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 values %} 
							{% IF filter_attr_list.values.NB_GOODS_FILTERED>0 %}<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} ({filter_attr_list.values.NB_GOODS_FILTERED})</option> {% ENDIF %}
						  {% ENDFOR %} 
						</select> 
					  </div> 
					{% ENDFOR %} 


					<!-- Фильтры по свойствам товарных модификаций (Например: Цвет, размер, модификация) --> 
					{% FOR filter_prop_list %} 
					  <div class="filter"> 
			<font color="green">					{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 values %} 
							{% IF filter_prop_list.values.NB_GOODS_FILTERED>0 %}<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} {% IF filter_prop_list.values.NB_GOODS_FILTERED > 0 %}({filter_prop_list.values.NB_GOODS_FILTERED}){% ENDIF %}</option> {% ENDIF %} 
						  {% ENDFOR %} 
						</select> 
					  </div> 
					{% ENDFOR %} 
					<div class="clear"></div>  
				  </form> 
				</div> 
			  {% ENDIF %} 
			{% ENDIF %} 
			<!-- END Если в тарифном плане подключен модуль фильтров по товарам -->
Серые категории просто не будут выводиться.

#19 zabota-mama

zabota-mama

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

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

Отправлено 21 Ноябрь 2012 - 21:32

1. В хроме всё хорошо. А в мозилле 15.0.1 и IE8 фильтры отображаются в столбик.

2. Не только серые, всё перестало выводиться =). Обратно вернул.

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

  • ScreenShot 5.jpg


#20 Koderhan

Koderhan

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

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

Отправлено 22 Ноябрь 2012 - 09:19

1,2 В таком случае. Лучше будет Разместить фильтры в таблице.
Найти код:
<!-- Если в тарифном плане подключен модуль фильтров по товарам --> 
			{% IF TARIFF_FEATURE_GOODS_FILTERS %} 
			  <!-- Фильтры по товарам. Появляются только на странице категории и поиска по товарам --> 
			  {% IF SHOW_GOODS_FILTERS %} 
				<div class="filters">	
				  <!-- Форма поиска отправляет всегда на ту же страницу, на которой находится пользователь --> 
				  <form action="" method="get"> 
					<!-- Фильтры по характеристикам товаров (Например: Производитель, разрешение экрана, заряд аккомулятора) --> 
					{% FOR filter_attr_list %} 
					  <div class="filter"> 
					   <font color="green">  {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 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 %} {% IF filter_attr_list.values.NB_GOODS_FILTERED=0 %}disabled="disabled" class="disabled"{% ENDIF %} >{filter_attr_list.values.VALUE} ({filter_attr_list.values.NB_GOODS_FILTERED})</option> 
						  {% ENDFOR %} 
						</select> 
					  </div> 
					{% ENDFOR %} 


					<!-- Фильтры по свойствам товарных модификаций (Например: Цвет, размер, модификация) --> 
					{% FOR filter_prop_list %} 
					  <div class="filter"> 
			<font color="green">					{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 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 %} {% IF filter_prop_list.values.NB_GOODS_FILTERED=0 %}disabled="disabled" class="disabled"{% ENDIF %}>{filter_prop_list.values.VALUE} {% IF filter_prop_list.values.NB_GOODS_FILTERED > 0 %}({filter_prop_list.values.NB_GOODS_FILTERED}){% ENDIF %}</option> 
						  {% ENDFOR %} 
						</select> 
					  </div> 
					{% ENDFOR %} 
					<div class="clear"></div>  
				  </form> 
				</div> 
			  {% ENDIF %} 
			{% ENDIF %} 
			<!-- END Если в тарифном плане подключен модуль фильтров по товарам -->
Заменить на:
<!-- Если в тарифном плане подключен модуль фильтров по товарам --> 
			{% IF TARIFF_FEATURE_GOODS_FILTERS %} 
			  <!-- Фильтры по товарам. Появляются только на странице категории и поиска по товарам --> 
			  {% IF SHOW_GOODS_FILTERS %} 
				<div class="filters">	
<table>
<tr>
<td>
				  <!-- Форма поиска отправляет всегда на ту же страницу, на которой находится пользователь --> 
				  <form action="" method="get"> 
					<!-- Фильтры по характеристикам товаров (Например: Производитель, разрешение экрана, заряд аккомулятора) --> 
					{% FOR filter_attr_list %} 
					  <div class="filter"> 
					   <font color="green">  {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 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 %} {% IF filter_attr_list.values.NB_GOODS_FILTERED=0 %}disabled="disabled" style="display:none;" class="disabled"{% ENDIF %} >{filter_attr_list.values.VALUE} ({filter_attr_list.values.NB_GOODS_FILTERED})</option> 
						  {% ENDFOR %} 
						</select> 
					  </div> 
					{% ENDFOR %} 

</td><td>

					<!-- Фильтры по свойствам товарных модификаций (Например: Цвет, размер, модификация) --> 
					{% FOR filter_prop_list %} 
					  <div class="filter"> 
			<font color="green">					{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 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 %} {% IF filter_prop_list.values.NB_GOODS_FILTERED=0 %}disabled="disabled" style="display:none;" class="disabled"{% ENDIF %}>{filter_prop_list.values.VALUE} {% IF filter_prop_list.values.NB_GOODS_FILTERED > 0 %}({filter_prop_list.values.NB_GOODS_FILTERED}){% ENDIF %}</option> 
						  {% ENDFOR %} 
						</select> 
					  </div> 
					{% ENDFOR %} 
					<div class="clear"></div>  
				  </form> 
				</div> 
			  {% ENDIF %} 
			{% ENDIF %} 
			<!-- END Если в тарифном плане подключен модуль фильтров по товарам -->
</td>
</tr>
</table>
Строка в коде style="display:none;" будет скрывать серые элементы.




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

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