Фильтрация по списку с автодополненинем

Заметил своеобразное поведение при фильтрации через mFilter2.
Если у товара несколько опций (например: опция1, опция2), то фильтрация происходит по принципу «или». Т.е. в фильтре выводится чекбокс с именем «опция1, опция2», но при выборе его, выводятся все товары, у которых есть хотя бы одна из этих опций. А нужно, чтобы выводились товары, у которых указаны обе опции.
Можно ли сделать это штатными средствами? Или подскажите, в какую сторону думать. Спасибо.
Evgeny Epifanov
10 марта 2024, 19:30
modx.pro
374
0

Комментарии: 6

Артур Шевченко
11 марта 2024, 19:54
0
Не знаю расстроишься ты или обрадуешься, но «из коробки» mFilter2 фильтрует по условию И. Если у тебя не так то, либо кто-то написал свой класс фильтрации, либо что-то у тебя не правильно настроено.
    Evgeny Epifanov
    11 марта 2024, 21:50
    0
    Спасибо за ответ. Я и сам уверен, что так и должно быть, но… факт.
    Буду искать, что у меня не так. Теперь я, хоть понимаю куда искать)
    Наумов Алексей
    11 марта 2024, 23:09
    0
    Все правильно работает.
    Допустим 2 товара:
    1. Размер — XL, Цвет — Синий, Красный.
    1. Размер — XL, Цвет — Синий.

    Ты ставишь в фильтре размер XL — видим оба товара, т.к. они есть размера XL.
    Добавляем галочку Синий — видим оба товара, т.к. они есть размера XL и синего цвета.
    Ставим галочку Красный — видим оба товара, т.к. по логике компонента мы хотим увидеть товары, которые размера XL, а цвет нас интересует и синий и красный, т.е. любой из них (синий ИЛИ красный).

    Если нужно в 3м случае видеть только товар 1 — то придется дописывать свою логику, mFilter2 так не может.
    Но! тогда представь, что будет, если у тебя есть еще Товар 3 размера L. В этом случае, ты выбираешь себе джинсы, но знаешь, что на тебе хорошо сидит то L, то XL, смотря от бренда. Ставишь обе галочки — и что? Товаров будет 0, вряд ли ты этого ждал.
      Evgeny Epifanov
      11 марта 2024, 23:30
      0
      То, что Вы описываете присуще типу опции множественный список. В моем случае список с авто дополнением. Из примера выше, получим 2 блока с чекбоксами:
      1. Размер
      — XL
      2. Цвет
      — Красный
      — Синий, Красный
      — Синий
      И при выборе «Синий, Красный» будет показана оба товара, т.к. сработало условие по принципу ИЛИ
      Как мне кажется, так не должно быть.
        Наумов Алексей
        12 марта 2024, 12:36
        0
        Касательно второй строчки здесь
        2. Цвет
        — Красный
        — Синий, Красный
        — Синий
        стоит посмотреть на параметр values_delimeter сниппета mFilter2. В нем по умолчанию запятая, и такая же запятая стоит в значении опции. Я в этом параметре обычно указываю точку с запятой.
      Дмитрий Середюк
      02 апреля 2024, 11:29
      0
      Была такая же проблема, как написал Алексей выше избавьтесь от запятых в значениях на другой символ и будет счастье.
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        6