Перейти к содержанию
Официальный форум поддержки Simpla

Рекомендуемые сообщения

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

<!-- Фильтр по брендам /-->
{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 /-->

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

Ссылка на сообщение
Поделиться на другие сайты

:::::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 /-->


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

Ссылка на сообщение
Поделиться на другие сайты

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

Ссылка на сообщение
Поделиться на другие сайты

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

Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Ссылка на сообщение
Поделиться на другие сайты

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



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

Ссылка на сообщение
Поделиться на другие сайты

:::::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}" выдает ошибку(

Ссылка на сообщение
Поделиться на другие сайты

:::::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}

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

Ссылка на сообщение
Поделиться на другие сайты

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

Ссылка на сообщение
Поделиться на другие сайты

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

Ссылка на сообщение
Поделиться на другие сайты

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

Ссылка на сообщение
Поделиться на другие сайты

так я пробовала вместо all_brands писать просто brand при переходе в категорию бренда исчезает поле выбора брандов(

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

помогите пожалуйста перевожу на 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 и как поправить ? Заранее спасибо

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...