Бортовой журнал Ктулху

Битрикс: GetList и постраничная навигация

В функции GetList есть плохо документированный параметр, отвечающий за разбивку результата выборки на страницы. Если более точно, то у объекта CIBlockResult есть метод GetPageNavStringEx, который выстраивает навигацию.

$arFilter = Array("IBLOCK_ID" => 22, "ACTIVE_DATE" => "Y", "ACTIVE" => "Y");
$res = CIBlockElement::GetList(Array(), $arFilter, false, array("nPageSize" => 20), Array());
$res->NavStart(0);
while ($ob = $res->GetNextElement()) {
$product_fields_list = $ob->GetFields();
$product_props_list = $ob->GetProperties();
echo "<pre>";
print_r($product_fields_list);
echo "</pre>";
}
echo $res->NavPrint();

 

Этот код будет выводить содержимое инфоблока, разбитое по 20 элементов на страницу.

Параметр NavStart(0) показывает, какой отступ сделать от начала.

NavPrint() выводит постраничную навигацию.

 

Можно ее немного модифицировать и использовать шаблоны компонента system.pagenavigation.

$navStr = $res->GetPageNavStringEx($navComponentObject, "Страницы:", ".default");
echo $navStr;

Шаблон постраничной навигации находится здесь: /bitrix/components/system.pagenavigation/templates/
Для того, что бы изменить шаблон просто копируем например шаблон .default в папку с шаблоном сайта.