Сайт веб-разработчика Николая Семенцова

Партнер компании 1с-битрикс

CIBlockElement::GetList ограничение вывод элементов

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




Помогла заметка? Жмите кнопки ниже


ВКонтакт Facebook Google Plus Одноклассники Twitter Яндекс Livejournal Liveinternet Mail.Ru





comments powered by Disqus

Партнер 1c-bitrix