2. обьект nav предоставляет значения для offset и limit которые можно подставить в запрос или getlist
3. ну и далее в нужном месте необходимо вывести main.pagenavigation с указанием ранее созданного обьекта PageNavigation в качестве аргумента
c system.pagenavigation все тоже относительно просто.
1. при написании компонента необходимо использовать объект выдающий результат в виде cdbresult и в параметрах указать указать постраничную навигацию
$arSelect = array( 'ID', 'CODE', 'NAME', 'PREVIEW_TEXT',);
// условия выборки элементов инфоблока
$arFilter = array( 'IBLOCK_ID' => 5, 'ACTIVE' => 'Y', );
// сортировка элементов
$arSort = array( 'SORT' => 'ASC');
// постраничная навигация
$arNavParams = array(
'nPageSize' => 2, // количество элементов на странице
'bShowAll' => true, // показывать ссылку «Все элементы»?
);
// выполняем запрос к базе данных
$dbResult = CIBlockElement::GetList(
$arSort,
$arFilter,
false,
$arNavParams,
$arSelect
);
2. Собственно все. Остается только потребовать нарисовать system.pagenavigation любым удобным способом.
например записать html код сформированной постраничной навигации в переменную а потом вывести при необходимости
$navStr = $dbResult ->GetPageNavStringEx($navComponentObject, "", ".default");
или просто вывести на экран компонент если это дозволяет структура кода.
$APPLICATION->IncludeComponent(
'bitrix:system.pagenavigation',
'',
array(
'NAV_TITLE' => 'Элементы', // поясняющий текст для постраничной навигации
'NAV_RESULT' => $dbResult, // результаты выборки из базы данных
'SHOW_ALWAYS' => false // показывать постраничную навигацию всегда?
)
);
Если требуется добавить постраничную навигацию для результатов выборки из базы все делается почти так же. Создается обьект CDBResult и для запросов используется его метод NavQuery.
$sql="select * from b_iblock_element ";// sql запрос
$cnt=999;//количество элементов
$arNavStartParams=array("nPageSize"=>4,'bShowAll' => false );//постраничня навигация
$res = new CDBResult();
$res->NavQuery($sql, $cnt, $arNavStartParams);
$navStr = $res->GetPageNavStringEx($navComponentObject, "", ".default");
while ($row = $res->Fetch())
{
$list[]=$row;
}
далее на экран выводится значение переменной содержащей html код постраничной навигации