Шаблон для пагинации элементов system.pagenavigation в 1С-Битрикс
Упрощённый и легко редактируемый шаблон битрикса для пагинации в списке элементов news.list или catalog.section с цифрами, стрелками и многоточиемШаблон для пагинации элементов system.pagenavigation в 1С-Битрикс
Упрощённый и легко редактируемый шаблон битрикса для пагинации в списке элементов news.list или catalog.section с цифрами, стрелками и многоточием
📅 09 апреля 2023
👁🗨 544
Стандартные шаблоны от 1С-Битрикс новичкам порой доставляют много неудобств, ведь нужно понимать всю логику и хорошо знать PHP. Для этого я перебрал стандартный шаблон пагинации и расставил всё по полочкам, чтобы было удобно внедрять в другие проекты.
<? if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
/**
* @var array $arResult
* @var array $arParam
* @var CBitrixComponentTemplate $this
*/
$this->setFrameMode(true);
?>
<? if (!$arResult['NavShowAlways']) { ?>
<? if ($arResult['NavRecordCount'] == 0 || ($arResult['NavPageCount'] == 1 && $arResult['NavShowAll'] == false)) return; ?>
<? } ?>
<div class="pagination">
<?
$strNavQueryString = ($arResult['NavQueryString'] != "" ? $arResult['NavQueryString'] . "&" : "");
$strNavQueryStringFull = ($arResult['NavQueryString'] != "" ? "?".$arResult['NavQueryString'] : "");
?>
<? if ($arResult['NavPageNomer'] > 1) { ?>
<? if ($arResult['nStartPage'] > 1) { ?>
<? if ($arResult['bSavePage']) { ?>
<a class="page-link 1" href="<?= $arResult['sUrlPath']; ?>?<?= $strNavQueryString; ?>PAGEN_<?= $arResult['NavNum']; ?>=1">1</a>
<? } else { ?>
<a href="<?= $arResult['sUrlPath']; ?><?= $strNavQueryStringFull?>">1</a>
<? } ?>
<? if ($arResult['nStartPage'] > 2) { ?>
<a href="<?= $arResult['sUrlPath']; ?>?<?= $strNavQueryString; ?>PAGEN_<?= $arResult['NavNum']; ?>=<?= round($arResult['nStartPage'] / 2)?>">...</a>
<? } ?>
<? } ?>
<? } ?>
<? do { ?>
<? if ($arResult['nStartPage'] == $arResult['NavPageNomer']) { ?>
<a href="javascript:void(0);" class="active"><?= $arResult['nStartPage']; ?></a>
<? } else if ($arResult['nStartPage'] == 1 && $arResult['bSavePage'] == false) { ?>
<a href="<?= $arResult['sUrlPath']; ?><?= $strNavQueryStringFull?>"><?= $arResult['nStartPage']; ?></a>
<? } else { ?>
<a href="<?= $arResult['sUrlPath']; ?>?<?= $strNavQueryString; ?>PAGEN_<?= $arResult['NavNum']; ?>=<?= $arResult['nStartPage']; ?>"><?= $arResult['nStartPage']; ?></a>
<? } ?>
<? $arResult['nStartPage']++; ?>
<? } while($arResult['nStartPage'] <= $arResult['nEndPage']); ?>
<? if ($arResult['NavPageNomer'] < $arResult['NavPageCount']) { ?>
<? if ($arResult['nEndPage'] < $arResult['NavPageCount']) { ?>
<? if ($arResult['nEndPage'] < ($arResult['NavPageCount'] - 1)) { ?>
<a href="<?= $arResult['sUrlPath']; ?>?<?= $strNavQueryString; ?>PAGEN_<?= $arResult['NavNum']; ?>=<?= round($arResult['nEndPage'] + ($arResult['NavPageCount'] - $arResult['nEndPage']) / 2)?>">...</a>
<? } ?>
<a href="<?= $arResult['sUrlPath']; ?>?<?= $strNavQueryString; ?>PAGEN_<?= $arResult['NavNum']; ?>=<?= $arResult['NavPageCount']; ?>"><?= $arResult['NavPageCount']; ?></a>
<? } ?>
<? } ?>
<? if ($arResult['NavPageNomer'] > 1) { ?>
<? if ($arResult['bSavePage']) { ?>
<a class="page-link 8" href="<?= $arResult['sUrlPath']; ?>?<?= $strNavQueryString; ?>PAGEN_<?= $arResult['NavNum']; ?>=<?=($arResult['NavPageNomer']-1)?>">
<?=GetMessage("MAIN_UI_PAGINATION__PREV")?>
</a>
<? } else { ?>
<? if ($arResult['NavPageNomer'] > 2) { ?>
<a class="prev" href="<?= $arResult['sUrlPath']; ?>?<?= $strNavQueryString; ?>PAGEN_<?= $arResult['NavNum']; ?>=<?=($arResult['NavPageNomer']-1)?>">
<img src="<?=SITE_TEMPLATE_PATH?>/files/icons/arrow.svg">
</a>
<? } else { ?>
<a class="prev" href="<?= $arResult['sUrlPath']; ?><?= $strNavQueryStringFull?>">
<img src="<?=SITE_TEMPLATE_PATH?>/files/icons/arrow.svg">
</a>
<? } ?>
<? } ?>
<? } ?>
<? if ($arResult['bShowAll']) { ?>
<? if ($arResult['NavShowAll']) { ?>
<a class="page-link 11" href="<?= $arResult['sUrlPath']; ?>?<?= $strNavQueryString; ?>SHOWALL_<?= $arResult['NavNum']; ?>=0">
<?=GetMessage("MAIN_UI_PAGINATION__PAGED")?>
</a>
<? } else { ?>
<a class="page-link 12" href="<?= $arResult['sUrlPath']; ?>?<?= $strNavQueryString; ?>SHOWALL_<?= $arResult['NavNum']; ?>=1">
<?=GetMessage("MAIN_UI_PAGINATION__ALL")?>
</a>
<? } ?>
<? } ?>
<? if ($arResult['NavPageNomer'] < $arResult['NavPageCount']) { ?>
<a class="next" href="<?= $arResult['sUrlPath']; ?>?<?= $strNavQueryString; ?>PAGEN_<?= $arResult['NavNum']; ?>=<?=($arResult['NavPageNomer']+1)?>">
<img src="<?=SITE_TEMPLATE_PATH?>/files/icons/arrow.svg">
</a>
<? } ?>
</div>