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

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

Уважаемые знатоки! Сейчас ситуация выгладит следующим образом... Если выбрать бренд а потом значение в фильтре то все ок. Но если выбрать сначала значение в фильтре а потом бренд, то значение в фильтре сбросится. Ну например:

 

Ссылка на фильтр - /brands/stimma?8=черный

Ниже ссылка на бренд - /brands/lurex

 

Как сделать так чтобы, если выбран фильтр, к ссылкам на бренды он дописывался? То есть - /brands/lurex?8=черный.

 

В случае с ключевым словом все работает примерно так - {if $keyword}?keyword={$keyword|escape}{/if}, но ссылки для фильтрации включают не только utm но и адрес категории или бренда.

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

Можно конечно замутить такого вида конструкцию - href="brands/{$b->url}

{foreach $features as $key=>$f}
    {foreach $f->options as $o}
       {if $smarty.get.$key == $o->value}
           {url params=[$f->id=>$o->value, page=>null]}
       {/if}
     {/foreach}
{/foreach}
{if $keyword}?keyword={$keyword|escape}{/if}"
 
но тогда ссылки на бренды имеют следующий вид - /brands/stimma/brands/lurex?8=черный. Если будете предлагать такой вариант, тогда говорите сразу как убрать все что до "?".
Изменено пользователем kozhushko8
Ссылка на сообщение
Поделиться на другие сайты

Довольно хлопотно. И к тому же если сделать "к ссылкам на бренды он дописывался", выйдет много ссылок с пустым результатом поиска. Так что сначала попробуйте продумать ТОЧНО, что хотите получить... 

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

Вообще не хлопотно! В ProductsView.php:

 

// Если задан бренд, выберем его из базы

 

if ($val = $this->request->get('b'))

            $filter['brand_id'] = $val;

               elseif (!empty($brand_url)) {

                   $brand = $this->brands->get_brand((string) $brand_url);

            if (empty($brand)) return false;

            $this->design->assign('brand', $brand);

            $filter['brand_id'] = $brand->id;

}

 

Выводим в шаблоне таким способом:

 

{if $category->brands|count>1}

                        {foreach name=brands item=b from=$category->brands}

                        <label><input type="checkbox" name="b[]" value="{$b->id}"{if $smarty.get.b && $b->id|in_array:$smarty.get.b}checked{/if}>{$b->name|escape}</label>

                        {/foreach}

            {/if}

 

Будет выводится как фильтр! Писалось под себя, кому нужно адаптируйте...

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

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

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

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

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

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

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

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

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

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