Фильтрация по одному значению, а не по нескольким

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

alexneuro
alexneuro

Сообщение #1 alexneuro » 01.04.2017, 21:30

Проблема в следующем. При выборе фильтра, к примеру объем 10мл, первый раз к url прибавляется obiem-10ml. Если после этого выбрать 30мл, то к тому url прибавится 30ml, то есть будет url ...obiem-10ml_30ml. Таким образом фильтр показывает как товары 10мл, так и 30мл. Подскажите, как можно сделать так, чтобы url всегда менялся по выбранному фильтру для конкретного значения. в файле features.tpl фильтр формируется следующим образом:
{foreach $f->options as $o}
<option {if $smarty.get.{$f@key} && in_array($o->translit,$smarty.get.{$f@key})} selected{/if} value="{furl params=[$f->url=>$o->translit, page=>null]}">{$o->value|escape}</option>
{/foreach}

korshunov
korshunov
Репутация: 89
Сообщения: 1097
Зарегистрирован: 03.12.2015
С нами: 4 года
Skype

Сообщение #2 korshunov » 02.04.2017, 06:37

ProductsView.php

Вместо
$result_array['features'][$k][] = $v;
вставляйте
$result_array['features'][$k][0] = $v;

А вообще, ИМХО, Ваш вопрос - классический пример того, как хороший фильтр с богатыми возможностями превратить в заурядный...

softmobidev
softmobidev
Репутация: 3
Сообщения: 92
Зарегистрирован: 16.02.2018
С нами: 1 год 9 месяцев

Сообщение #3 softmobidev » 09.04.2019, 10:23

подскажите пожалуйста как в версии 2.3.2 такое сделать? там поменялся код теперь такого нет как вы написали :(

softmobidev
softmobidev
Репутация: 3
Сообщения: 92
Зарегистрирован: 16.02.2018
С нами: 1 год 9 месяцев

Сообщение #4 softmobidev » 03.06.2019, 12:30

никто не знает как это исправить в новой версии?

reteri
reteri
Репутация: 3
Сообщения: 61
Зарегистрирован: 02.05.2018
С нами: 1 год 7 месяцев

Сообщение #5 reteri » 03.06.2019, 16:22

строка 389

softmobidev
softmobidev
Репутация: 3
Сообщения: 92
Зарегистрирован: 16.02.2018
С нами: 1 год 9 месяцев

Сообщение #6 softmobidev » 04.06.2019, 11:06

по брендам получилось, сделал вот так

Код: Выделить всё

$result_array['brand'][0] = $param_values;


а по фильтрам непонятно, там и filter и features теперь есть, что за что отвечает?

389 строка это вот

Код: Выделить всё

if(!empty($result_array['filter'])) {
            if(count($result_array['filter']) > $this->max_filter_filter) {
                $seo_hide_filter = true;
            }
            $filter_params_count ++;
            $result_string .= '/filter-' . implode("_", $result_array['filter']);
        }


но это я так понял "хиты продаж" в категориях, это немного не то


Название раздела: Вопросы по работе с OkayCMS
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Вопросы по работе с OkayCMS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 1 гость