Здравствуйте, столкнулся со следующей проблемой. На странице у меня есть компонент Список элементов разделов и Фильтр. У обоих указан один массив данных фильтра. В фильтре есть свойства как множественные, так и нет. Свойства, которые могут принимать одно значение, выводятся radio, которые могут принимать несколько значений - в виде checkbox-ов. Так вот, проблема какая, фильтр корректно работает между свойствами, которые принимают одно значение по логике И - тут нормально. Но стоит мне выбрать у множественного свойства несколько значений - он выдает мне все результаты по логике ИЛИ.
Т.е. например, у меня есть множественное свойство телефона "Основные характеристики", в нем есть значения Android, Bluetoooth, SMS. Если я выберу все три значения - мне выведет все все телефоны, у которых есть ИЛИ Android, ИЛИ Bluetooth, ИЛИ SMS. А мне нужно чтобы выводил только те телефоны, у которых есть все три свойства одновременно (т.е. И Android, И Bluetooth, И SMS).
Вложенность фильтров теоритически не ограничена. Так же условия фильтра могут объединяться не только по условию "И", но и "ИЛИ". Для этого в качестве фильтруемого поля надо указать "LOGIC". Может принимать два значения: "AND" и "OR". По умолчанию - "AND". Например выберем маленькие зрелые и большие не зрелые апельсины:
если ты используешь битриксовый компонент то там есть параметр - массив для фильтрации ... $arrFilter по умолчанию ты можеш перед подклюением компонента допустим $arFilter присвоить массив с любыми фильтрами $arFilter = array( array( "LOGIC" => "OR", array("<PROPERTY_RADIUS" => 50, "=PROPERTY_CONDITION" => "Y"), array(">=PROPERTY_RADIUS" => 50, "!=PROPERTY_CONDITION" => "Y"), ), );
Ок, я понял. Попробую. Единственное, что это статический вариант. Мне бы желательно динамический, но это я уже попробую поизвлекать нужные значения и свойства и сформировать фильтр. Спасибо большое! Если возникнут по этой теме еще вопросы - здесь напишу