Jump to content

Recommended Posts

Помогите пожалуйста разобраться с фильтром товаров:
работает фильтр когда вывожу его в одну строчку:

<!-- Фильтр по брендам /-->
{if $brands}
<div id="category_description">
{foreach name=brands item=b from=$brands}
{if $b->brand_id == $brand->brand_id}
{$b->name|escape}
{else}
<a href='catalog/{$category->url}/{$b->url}{$filter_params}'>{$b->name|escape}</a>
{/if}
{if not $smarty.foreach.brands.last}
|
{/if}
{/foreach}
</div>
{/if}
<!-- Фильтр по брендам #End /-->


при нажатии на бренд все хорошо выводит.
Нужно сделать чтоб выводилось в выпадающий список. Сделала так:

<!-- Фильтр по брендам /-->
<div id="boxsortir">
{if $brands}
Фильтр по брендам:  
<select onchange="clicker(this)">
{foreach name=brands item=b from=$brands}

{if $b->brand_id == $brand->brand_id}
{$b->name|escape}
{else}
<option value="catalog/{$category->url}/{$b->url}{$filter_params}">
<a href='catalog/{$category->url}/{$b->url}{$filter_params}'>{$b->name|escape}</a>
</option>
{/if}
{if not $smarty.foreach.brands.last}
|
{/if}
{/foreach}
</select>
</div>
{/if}
<!-- Фильтр по брендам #End /-->

фильтр появляется в виде выпадающего списка, но при выборе бренда не происходит фильтрация.
Может кто знает как исправить проблему?

Link to post
Share on other sites

:::::Kosjak76
Спасибо сделала. В шеге от решения. Вставила так:

<!-- Фильтр по брендам /-->
<div id="boxsortir">
{if $brands}
Фильтр по брендам:  
<select onchange="document.location.href='brands/'+this.options[this.selectedIndex].value">
{foreach name=brands item=b from=$brands}

{if $b->brand_id == $brand->brand_id}
{$b->name|escape}
{else}
<option value="catalog/{$category->url}/{$b->url}{$filter_params}">
<a href='catalog/{$category->url}/{$b->url}{$filter_params}'>{$b->name|escape}</a>
</option>
{/if}
{if not $smarty.foreach.brands.last}
|
{/if}
{/foreach}
</select>
</div>
{/if}
<!-- Фильтр по брендам #End /-->


При выборе бренда выдает "Страница не найдена"

Link to post
Share on other sites

:::::Kosjak76
всплыла еще одна проблема: фильтр работает НО! у нас скажем есть 5 вариантов брендов в фильтре, выбираем один из вариантов система фильтрует но в фильтре после фильтрации остается только один вариант бренда тот который мы выбрали, как сделать чтоб после фильтрации в выпадающем меню отображались все бренды?

Link to post
Share on other sites

{if $b->brand_id == $brand->brand_id}
{$b->name|escape}
{else} вот это убрать)))
Можно эту проверку поставить внутрь опции, чтобы текущий бренд был выбранным

Link to post
Share on other sites

:::::Kosjak76
"Можно эту проверку поставить внутрь опции, чтобы текущий бренд был выбранным"

не напишите , как это сделать просо я немного не представляю, как это сделать?(

И еще один вопрос сейчас у меня все работает но при выборе бренда 1 в списки после фильтрации стоит не этот брунд и визуально получается, как будто фильтрации не было. Если мы проверку поставим во внутрь опции это поможет?

Link to post
Share on other sites

В общем так, привожу рабочий код, правда не для фильтра, а для Брендов:
{if $all_brands}



{/if}
Как это выглядит: http://simpla.pp.ua/
Фильтр по тому же принципу...

Link to post
Share on other sites

:::::Kosjak76D
в миллионный раз спасибо все отлично выводит, но есть небольшое но, как сделать чтоб выводило не все бренды, а бренды данной категории (ранее было так: мужская одежда- бренд1, бренд2, бренд3. женская одежда-бренд 1, брнед 2, бренд 3, и выводило когда мы в мужской одежде выводило бренды 1-2-3 мужской обежды, сейчас выводит 1-2-3 из мужской одежды и 1-2-3 из женской). с подозреваю это из за "{if $all_brands}" попробовала написать так: "{if $brands}" и во здесь так: "{foreach name=brands from=$brands item=b}" выдает ошибку(

Link to post
Share on other sites

:::::Kosjak76
сделала так:

{if $all_brands}
<!-- Список брендов /-->
<select name="brand_cat" size="1" style="width: 90%; margin: auto;" onchange="document.location.href='brands/'+this.options[this.selectedIndex].value">
<option disabled>Выберите бренд</option>
{foreach name=brands from=$all_brands item=b}
<option value="{$b->url}" {if $b->brand_id == $brand->brand_id}selected{/if}>{$b->name|escape}</option>
{/foreach}
</select>
<!-- Список брендов #End /-->
{/if}

Все отличнго сортирует, но! при выборе бренда переходит на страницу со споском товаров данного бренда но там поле выбора брендов почемуто исчезает((

Link to post
Share on other sites

Интересно, почему?)))
Это код Брендов, он выводит все товары бренда, и должен находится в индекс.тпл, если его в продуктс поставить, то так все и получится...

Link to post
Share on other sites

:::::Kosjak76
Хмммм получается этот код мне нужно вставить в индекс а не в продуктс? Тогда в продуктс, что вставлять? Какую строчку дописать в диве где болжно быть выпадающее меню?

Link to post
Share on other sites

В симпле 2 массива, которые работают с брендами:
1. all_brands - все бренды - выводится в шаблоне index.tpl
2. brands - бренды доступные в данной категории - выводится в шаблоне products.tpl
Вот и смотрите что и куда Вам надо ставить.

Link to post
Share on other sites
  • 9 months later...

помогите пожалуйста перевожу на 2.1 и кусок кода не работает

<!-- Список брендов /-->
<[div] id="cloud">
<[select] class="dsR13" name="selectName" size="1" onchange="window.location.href=this.options[this.selectedIndex].value" >
<option value="">Выберите производителя</option>
{assign var=min_size value=10}
{assign var=max_size value=25}
{assign var=max_count value=0}
{assign var=min_count value=$all_brands.0->products_num}
{foreach name=brands from=$all_brands item=b}
{if $b->products_num >= $max_count}{assign var=max_count value=$b->products_num}{/if}
{if $b->products_num <= $min_count}{assign var=min_count value=$b->products_num}{/if}
{/foreach}

{foreach name=brands from=$all_brands item=b}
{assign var=coef value=$b->products_num/$max_count}
{math assign=size equation="min_size+(max_size-min_size)*(count-min_count)/(max_count-min_count)" max_size=$max_size min_size=$min_size max_count=$max_count min_count=$min_count count=$b->products_num}
<!-- <span class="item"><a style='font-size:{$size}px;' href='brands/{$b->url}'>{$b->name|escape}</a></span> -->
<option value="brands/{$b->url}">{$b->name|escape}</option>
{/foreach}
</select>
<!-- Список брендов /-->

Подскажите пожалуйста что изменилось в 2.1 и как поправить ? Заранее спасибо

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...