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

Множественный фильтр ошибка


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

Столкнулся с такой ошибкой, появилась необходимость в фильтре с множественным выбором. На форуме есть тема как он делается, суть в том что из переменных делаем массивы. Но сейчас что-то не выходит, пробовал даже на демо результат посмотреть.
вот например http://demo.simplacms.ru/catalog/mobilnye-telefony?4=Android+2.2 тут все будет работать хорошо мы найдем телефоны с этим андроидом, но если же мы добавим квадратные скобки пример:
http://demo.simplacms.ru/catalog/mobilnye-telefony?4[]=Android+2.2 то уже не будет ничего работать и искать. Понятно что на демо я не залезу в API и не подправлю там запросы на value in(?@) но суть не в этом, даже если подправлю то работать не будет, т.к.
в последней ссылке $_GET['4'] теперь вернет 'array' и больше ничего полезного, сколько ни крутил результата не получил, кто может что подсказать, думаю не один я столкнулся с проблемой

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

Столкнулся с такой ошибкой, появилась необходимость в фильтре с множественным выбором. На форуме есть тема как он делается, суть в том что из переменных делаем массивы. Но сейчас что-то не выходит, пробовал даже на демо результат посмотреть.

вот например http://demo.simplacms.ru/catalog/mobilnye-telefony?4=Android+2.2 тут все будет работать хорошо мы найдем телефоны с этим андроидом, но если же мы добавим квадратные скобки пример:

http://demo.simplacms.ru/catalog/mobilnye-telefony?4[]=Android+2.2 то уже не будет ничего работать и искать. Понятно что на демо я не залезу в API и не подправлю там запросы на value in(?@) но суть не в этом, даже если подправлю то работать не будет, т.к.

в последней ссылке $_GET['4'] теперь вернет 'array' и больше ничего полезного, сколько ни крутил результата не получил, кто может что подсказать, думаю не один я столкнулся с проблемой

Если столкнулись с ошибкой, после прочтения топов на форуме и последущего внесения изменений в дефолтную Simpla, то подскажите где, и для какой версии Simpla, делали изменения.

Основной вопрос: кто, как и при каких ситуациях может ещё, кроме Вас "добавить квадратные скобки" перед =Android+2.2

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

Уточняю, вот тема на форуме про фильтр http://forum.simplacms.ru/topic/1335-%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5-%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D0%B0/
На версиях от 2.0 до 2.2 все работало отлично, но на 2.3 уже не получилось добиться такого же результата, (проверял на абсолютно дефолтной демо версии 2.3.6)
Не исключаю что проблема может быть и в человеческом факторе, но все уже проверил десятки раз. Может чего то не понимаю поэтому и прошу помощи.
Вот инструкция взятая из топа выше
Файл  ProductsView.php
После 72 строки вставляем - $filter['features'] = array();
После 102 строки вставляем - $this->design->assign('filter_features', $filter['features']);
Файл Products.php
Обновляем строку 101 - value in (?@)
Обновляем строку 184 - value in (?@)
Файл Features.php
Обновляем строку 172 - value in (?@)
Плюс правим шаблон на такие чекбоксы
<input type="checkbox" name="{$f->id}[]" {if $filter_features.{$f->id} && in_array($o->value,$filter_features.{$f->id})}checked="checked"{/if} value="{$o->value|escape}" />

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

Попробуйте в view/ProductsView.php заменить

                if(($val = strval($this->request->get($feature->id)))!='')

на
                if(($val = $this->request->get($feature->id))!='')
 

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

Попробуйте в view/ProductsView.php заменить

                if(($val = strval($this->request->get($feature->id)))!='')

на

                if(($val = $this->request->get($feature->id))!='')

 

Заменял и так и на if(($val = $_GET['$feature->id'])!='') для проверки, пробовал как на локали так и на сервере

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

kors извиняюсь, верное утверждение, просто я эту манипуляцию тоже делал но результата не увидел, т.к. не заметил что прописал print вместо print_r (для показа переменной). Все таки оказался человеческий фактор)

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

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

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

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

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

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

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

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

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

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