Делал на сайте интернет магазина раздел с новинками ,там необходимо было сделать ограничение на вывод товаров 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
|
|
|