Постраничная навигация встроена в стандартные компоненты Битрикса news.list, catalog.section и дт. Обычно при разработке страниц новостей, акций используют стандартные компоненты. Но не всегда это удобно, когда ведется узконаправленная разработка или изначально постраничная навигация не предполагалась в с своей компоненте, то еще не все потеряно и можно разместить постраничную навигацию без каких-то сложных доработок.
Чтобы установить постраничную навигацию в свой компонент нужно:
В файле component.php разместить следующий код:
$request = Application::getInstance()->getContext()->getRequest(); $PAGEN = $request->getQuery('PAGEN_1');
Передаем в переменную $PAGEN get параметр PAGEN_1
$resS = CIBlockElement::GetList(['sort'=>'asc'], $arFilterS, false, ["nPageSize" => $arParams['I_PAGE']], $arSelectS); $resS->NavStart($PAGEN*$arParams['I_PAGE']); while($obS = $resS->Fetch()) { $arResult['ITEM'][] = $obS; } $arResult['NAV'] = $resS;
В свой GetList запрос добавляем параметр nPageSize в который передается значение параметра — количество элементов отображаемых на странице (например, 30).
NavStart — позволяет разбить все записи на страницы, также туда передаем значение параметра I_PAGE
В массив $arResult[‘NAV’] записываем результат, чтобы достать его в шаблоне
В файле template.php размещаем следующий код:
$navStr = $arResult['NAV']->GetPageNavStringEx($navComponentObject, "Страницы:", "round");
«round» — шаблон постраничной навигации. Желательно указать в начале шаблона.
<?=$navStr;?>
Далее вызываем сам шаблон постраничной навигации в требуемом месте шаблона.