Полный цикл в digital

Устройство постраничной навигации

Постраничная навигация в Битрикс формируется и выводится с помощью системного компонента bitrix:system.pagenavigation. Компонент разработан для использования совместно с другими компонентами и тесно связан с ними. Посмотрим, как можно использовать этот компонент для постраничного вывода списка элементов инфоблока.

Пример использования системного компонента bitrix:system.pagenavigation:

<?
if (!CModule::IncludeModule('iblock')) {
ShowError('Модуль «Информационные блоки» не установлен');
}
// сортировка элементов
$arSort = array(
'SORT' => 'ASC'
);
// условия выборки элементов инфоблока
$arFilter = array(
'IBLOCK_ID' => 1             // идентификатор инфоблока
);
// постраничная навигация
$arNavParams = array(
'nPageSize' => 2,   // количество элементов на странице
'bShowAll' => true, // показывать ссылку «Все элементы»?
);
// какие поля элементов инфоблока выбираем
$arSelect = array(
'ID',
'CODE',
'NAME',
'PREVIEW_TEXT',
);
// выполняем запрос к базе данных
$dbResult = CIBlockElement::GetList(
$arSort,
$arFilter,
false,
$arNavParams,
$arSelect
);
// начинаем буферизацию вывода
ob_start(); 
$APPLICATION->IncludeComponent(
'bitrix:system.pagenavigation',
'round',
array(
'NAV_TITLE'   => 'Элементы', // поясняющий текст для постраничной навигации
'NAV_RESULT'  => $dbResult,  // результаты выборки из базы данных
'SHOW_ALWAYS' => false       // показывать постраничную навигацию всегда?
)
);
// завершаем буферизацию вывода
$navString = ob_get_clean(); 
// переборка результатов выборки
while ($arElement = $dbResult->Fetch()) {
echo '<h2>'.$arElement['NAME'].'</h2>', PHP_EOL;
echo '<p>'.$arElement['PREVIEW_TEXT'].'</p>', PHP_EOL;
}
// выводим постраничную навигацию
echo $navString;
?>

Метод CDBResult::GetPageNavString()

Можно упростить наш код, используя метод GetPageNavString класса CDBResult:

<?
if (!CModule::IncludeModule('iblock')) {
ShowError('Модуль «Информационные блоки» не установлен');
}
// сортировка элементов
$arSort = array(
'SORT' => 'ASC'
);
// условия выборки элементов инфоблока
$arFilter = array(
'IBLOCK_ID' => 1             // идентификатор инфоблока
);
// постраничная навигация
$arNavParams = array(
'nPageSize' => 2,   // количество элементов на странице
'bShowAll' => true, // показывать ссылку «Все элементы»?
);
// какие поля элементов инфоблока выбираем
$arSelect = array(
'ID',
'CODE',
'NAME',
'PREVIEW_TEXT',
);
// выполняем запрос к базе данных
$dbResult = CIBlockElement::GetList(
$arSort,
$arFilter,
false,
$arNavParams,
$arSelect
);
// html-код постраничной навигации
$navString = $dbResult->GetPageNavString(
'Элементы', // поясняющий текст
'round',    // имя шаблона
false       // показывать всегда?
);
// переборка результатов выборки
while ($arElement = $dbResult->Fetch()) {
echo '<h2>'.$arElement['NAME'].'</h2>', PHP_EOL;
echo '<p>'.$arElement['PREVIEW_TEXT'].'</p>', PHP_EOL;
}
// выводим постраничную навигацию
echo $navString;
?>

Как нетрудно догадаться, внутри метода GetPageNavString() идет подключение системного компонента bitrix:system.pagenavigation и весь вывод компонента записывается в буфер. В предыдущем примере мы делали это сами, а теперь просто вызываем метод GetPageNavString().

Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг