kozhushko8 Posted July 8, 2020 Report Share Posted July 8, 2020 Уважаемые знатоки! Сейчас ситуация выгладит следующим образом... Если выбрать бренд а потом значение в фильтре то все ок. Но если выбрать сначала значение в фильтре а потом бренд, то значение в фильтре сбросится. Ну например: Ссылка на фильтр - /brands/stimma?8=черныйНиже ссылка на бренд - /brands/lurex Как сделать так чтобы, если выбран фильтр, к ссылкам на бренды он дописывался? То есть - /brands/lurex?8=черный. В случае с ключевым словом все работает примерно так - {if $keyword}?keyword={$keyword|escape}{/if}, но ссылки для фильтрации включают не только utm но и адрес категории или бренда. Quote Link to post Share on other sites
kozhushko8 Posted July 8, 2020 Author Report Share Posted July 8, 2020 (edited) Можно конечно замутить такого вида конструкцию - 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=черный. Если будете предлагать такой вариант, тогда говорите сразу как убрать все что до "?". Edited July 8, 2020 by kozhushko8 Quote Link to post Share on other sites
phukortsin Posted July 8, 2020 Report Share Posted July 8, 2020 Довольно хлопотно. И к тому же если сделать "к ссылкам на бренды он дописывался", выйдет много ссылок с пустым результатом поиска. Так что сначала попробуйте продумать ТОЧНО, что хотите получить... Quote Link to post Share on other sites
kozhushko8 Posted July 16, 2020 Author Report Share Posted July 16, 2020 Вообще не хлопотно! В 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} Будет выводится как фильтр! Писалось под себя, кому нужно адаптируйте... Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.