Вывожу элементы инфоблока примерно так:
Думаю суть понятна, нужно выводить элементы и фильтровать по свойствам используя "ИЛИ".
Но при такой конструкции "ломается" полностью навигация. То есть например CIBlockElement::GetList возвращает 20 элементов, а при выводе по условию 10 отсеиваются, а навигация выводится как для 20 элементов.
Как решить эту проблему?
Код |
---|
$arFilter = Array("IBLOCK_ID"=>1, "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y"); $arSelect = Array("ID", "NAME", "DETAIL_PAGE_URL", "PREVIEW_PICTURE", "PRICE_base"); $res = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>12), $arSelect); $res->NavStart(12); while($ob = $res->GetNextElement()) { $arFields = $ob->GetFields(); $arProperty = $ob->GetProperties(); //здесь еще условия типа if ($arProperty["S_1"]["VALUE"] > 0 || $arProperty["S_2"]["VALUE"] > 0) { echo $arFields["NAME"]; } } $res->NavPrint(); |
Думаю суть понятна, нужно выводить элементы и фильтровать по свойствам используя "ИЛИ".
Но при такой конструкции "ломается" полностью навигация. То есть например CIBlockElement::GetList возвращает 20 элементов, а при выводе по условию 10 отсеиваются, а навигация выводится как для 20 элементов.
Как решить эту проблему?