Для подключения пагинации в своем шаблоне стандартного компонента в "1C-Bitrix" следуйте следующим шагам:
1. Создайте новый файл с расширением ".php" в папке вашего шаблона компонента. Например, создайте файл "pagination.php".
2. В новом файле "pagination.php" необходимо добавить следующий код для инициализации и отображения пагинации:
<?php if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die(); } if ($arResult["NavPageCount"] > 1) { $arResult["nStartPage"] = $arResult["NavPageCount"] - 4; $arResult["nEndPage"] = $arResult["NavPageCount"]; if ($arResult["nStartPage"] < 1) { $arResult["nStartPage"] = 1; } if ($arResult["NavPageNomer"] > 1) { $arResult["sPrevHref"] = $arResult["sUrlPath"] . "?PAGEN_" . $arResult["NavNum"] . "=" . ($arResult["NavPageNomer"] - 1); } if ($arResult["NavPageNomer"] < $arResult["NavPageCount"]) { $arResult["sNextHref"] = $arResult["sUrlPath"] . "?PAGEN_" . $arResult["NavNum"] . "=" . ($arResult["NavPageNomer"] + 1); } $arResult["sFirstHref"] = $arResult["sUrlPath"]; $arResult["sLastHref"] = $arResult["sUrlPath"] . "?PAGEN_" . $arResult["NavNum"] . "=" . $arResult["NavPageCount"]; } $this->SetViewTarget('pagination'); $APPLICATION->IncludeComponent( "bitrix:system.pagenavigation", "", array( "NAV_RESULT" => $arResult["NavResult"], "NAV_PAGE_COUNT" => $arResult["NavPageCount"], "NAV_PAGE_SIZE" => $arResult["NavPageSize"], "NAV_SHOW_ALWAYS" => "N", "NAV_TEMPLATE" => "", "NAV_SHOW_ALL" => "N", ), false ); $arResult["sNavText"] = ob_get_clean();
Представленный код добавляет необходимые переменные для отображения ссылок на страницы пагинации в массив результатов компонента.
3. В файле шаблона компонента добавьте следующий код для подключения файла "pagination.php" и отображения пагинации:
<?php if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die(); } if (!empty($arResult["Nav"])) { $this->__component->__template->SetViewTarget('pagination'); include($_SERVER['DOCUMENT_ROOT'] . $templateFolder . "/pagination.php"); $paginationHtml = $arResult["sNavText"]; $this->__component->__template->EndViewTarget(); echo "<div class="pagination">" . $paginationHtml . "</div>"; } ?>
В этом коде мы проверяем, существует ли переменная $arResult["Nav"], которая содержит информацию о пагинации. Если эта переменная не пуста, мы подключаем файл "pagination.php" и выводим пагинацию на странице.
4. В вашем шаблоне компонента, где вы хотите отобразить пагинацию, добавьте следующий код:
<?php if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die(); } if ($arResult["NavPageCount"] > 1) { $APPLICATION->ShowViewContent('pagination'); } ?>
В этом коде мы проверяем, если количество страниц больше одной, то отображаем содержимое вьюхи "pagination", которую мы определили в шаблоне компонента ранее.
После этих шагов пагинация будет подключена и отображена в вашем шаблоне стандартного компонента.