Closed mnoskov closed 6 years ago
Если у товара может быть только одно значение, то и птичку "множественное" ставить не нужно. Соответственно, не пришлось бы и комментировать тот кусок кода :) Т.е. "множественный" это не для вывода в фильтре (там всегда выводятся все значения), а для ввода в админке (например, чекбоксами несколько значений присваивается и пишется в базу через || )
Т.е. чтобы можно было выбрать несколько вариантов, достаточно просто поставить тип - Чекбокс?
Да, при типе чекбокс в любом случае можно выбрать несколько вариантов. Множественный тут ни при чем - это касается именно количества значений параметра у самого товара, т.е. в нашем случае записи в базу вида "раз||два||три". Не так давно предлагал в доклистер еще один тип фильтра https://github.com/AgelxNash/DocLister/issues/292 , который решил бы данную проблему и для множественных тв, но его не приняли по неизвестным для меня причинам.
Спасибо!
Насчет нового фильтра, еще такой вариант возможен:
SELECT * FROM modx_site_tmplvar_contentvalues WHERE CONCAT('||', value, '||') LIKE '%||197||%'
Ну мой вариант более универсальный, т.к. он ищет "по целым словам" - т.е. разделенным запятыми, пробелами, другими спец символами вроде || Это значит, что может быть хоть текстовое поле, в котором написано "синий, красный и желтый" и он найдет синий, но не найдет его в поле "темносиний".
Есть параметр, который задается целым числом - идентификатор из базы, и у каждого товара может быть только одно значение этого параметра.
В фильтре же я вывожу этот параметр как множественный.
Но при его выборе в выдачу попадают товары, которые не связаны с ним, с одной закономерностью - 4, 14, 24 и т.д. Т.е. если выбрали идентификатор 4 - то попадут все товары с идентификатором, в котором есть цифра 4.
После того, как я закомментировал указанный участок кода, все заработало как надо.
https://github.com/webber12/eFilter/blob/dd15d08e0aa935e010fafb6b67ff512bc1411af3/assets/snippets/eFilter/eFilter.class.php#L745-L747