Делал на сайте интернет магазина раздел с новинками ,там необходимо было сделать ограничение на вывод товаров 60 штук, ну и естественно фильтрация и сортировка по различным параметрам для этого используем класс CIBlockElement::GetList .
Столкнулся с такой проблемой что параметр 'nTopCount' => 60 в массиве отвечающий за постраничную навигацию не работал вместе с навигацией, тоесть либо навигация но выборка без ограничения количества либо выборка 60 товаров но без постраничной навигации.
Вот код решения проблемы с комментариями
// первое делаю выборку без постраничной навигации а просто с ограничением $res = CIBlockElement::GetList( $arOrder, $arFilter, false , Array( 'nTopCount' => 60), array('ID')); // создаю массив с выбранными элементами while($el = $res->Fetch()){ $arFilter['ID'][] = $el['ID']; } // далее формирую массив но уже с постраничной навигацией $res = CIBlockElement::GetList($arOrder , $arFilter, false , Array("nPageSize"=>$arParams["PAGER_COUNT"], "iNumPage"=>$ajaxpage , "bShowAll"=> false), $arSelect); // реализаую постраницную навигацию $arResult["NAV_STRING"] = $res->GetPageNavStringEx($navComponentObject, "", $arParams["PAGER_TEMPLATE"]); // ну и далее while и формирование необходимого нам массива
Вот собственно так решил проблему , но отписал о проблеме в тех.поддержку так как тут косяк работы API :)
Опубликовано: 21 октября 2011
|
|