kozhushko8 Опубликовано 8 июля, 2020 Жалоба Поделиться Опубликовано 8 июля, 2020 Уважаемые знатоки! Сейчас ситуация выгладит следующим образом... Если выбрать бренд а потом значение в фильтре то все ок. Но если выбрать сначала значение в фильтре а потом бренд, то значение в фильтре сбросится. Ну например: Ссылка на фильтр - /brands/stimma?8=черныйНиже ссылка на бренд - /brands/lurex Как сделать так чтобы, если выбран фильтр, к ссылкам на бренды он дописывался? То есть - /brands/lurex?8=черный. В случае с ключевым словом все работает примерно так - {if $keyword}?keyword={$keyword|escape}{/if}, но ссылки для фильтрации включают не только utm но и адрес категории или бренда. Цитата Ссылка на сообщение Поделиться на другие сайты
kozhushko8 Опубликовано 8 июля, 2020 Автор Жалоба Поделиться Опубликовано 8 июля, 2020 (изменено) Можно конечно замутить такого вида конструкцию - 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=черный. Если будете предлагать такой вариант, тогда говорите сразу как убрать все что до "?". Изменено 8 июля, 2020 пользователем kozhushko8 Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 8 июля, 2020 Жалоба Поделиться Опубликовано 8 июля, 2020 Довольно хлопотно. И к тому же если сделать "к ссылкам на бренды он дописывался", выйдет много ссылок с пустым результатом поиска. Так что сначала попробуйте продумать ТОЧНО, что хотите получить... Цитата Ссылка на сообщение Поделиться на другие сайты
kozhushko8 Опубликовано 16 июля, 2020 Автор Жалоба Поделиться Опубликовано 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} Будет выводится как фильтр! Писалось под себя, кому нужно адаптируйте... Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.