17.05.2014
Правильная постраничная навигация
Многие, наверное, замечали неудобство стандартного шаблона постраничной навигации в 1С-Битрикс:

Создать собственную постраничную навигацию в 1С-Битрикс совсем не сложно. Для этого необходимо создать шаблон компонента постраничной навигации в папке вашей темы. Необходимо перейти в раздел /bitrix/templates/Ваш_шаблон/components/bitrix/ и создать там папку с названием system.pagenavigation. В ней необходимо создать папку с названием шаблона, например, keengo_pagenavigation и внутри файл с названием template.php. Код этого файла должен выглядеть следующим образом (см.ниже).
Затем нужно перейти в параметры компонента, для которого вы хотите применить новый шаблон постраничной навигации и перейти в раздел «Настройки постраничной навигации», затем выбрать из выпадающего списка название шаблона или вписать его в поле:

Теперь наша постраничная навигация выглядит симпотично и можно добавлять стили, чтобы получилось что-то вроде этого:

<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
if(!$arResult["NavShowAlways"]) {
if ($arResult["NavRecordCount"] == 0 || ($arResult["NavPageCount"] == 1 && $arResult["NavShowAll"] == false))
return;
}
$strNavQueryString = ($arResult["NavQueryString"] != "" ? $arResult["NavQueryString"]."&" : "");
$strNavQueryStringFull = ($arResult["NavQueryString"] != "" ? "?".$arResult["NavQueryString"] : "");
?>
<div class="pagination">
<?if ($arResult["NavPageNomer"] > 1) {?>
<a class="paginationPrevNext" href="<?=$arResult["sUrlPath"]?><?=$strNavQueryStringFull?>">Начало</a>
<?if ($arResult["NavPageNomer"] > 2) {?>
<a class="paginationPrevNext" href="<?=$arResult["sUrlPath"]?>?<?=$strNavQueryString?>PAGEN_<?=$arResult["NavNum"]?>=<?=($arResult["NavPageNomer"]-1)?>">Предыдущая</a>
<?} else {?>
<a class="paginationPrevNext" href="<?=$arResult["sUrlPath"]?><?=$strNavQueryStringFull?>">Предыдущая</a>
<?}?>
<?} else { // Если страница первая?>
<span class="paginationPrevNext">Начало</span>
<span class="paginationPrevNext">Предыдущая</span>
<?}?>
<?$page = $arResult["nStartPage"]?>
<?while($page <= $arResult["nEndPage"]) {?>
<?if ($page == $arResult["NavPageNomer"]) {?>
<span class="paginationCurrent"><?=$page?></span>
<?} else {?>
<a class="paginationPage" href="<?=$arResult["sUrlPath"]?>?<?=$strNavQueryString?>PAGEN_<?=$arResult["NavNum"]?>=<?=$page?>"><?=$page?></a>
<?}?>
<?$page++?>
<?}?>
<?if($arResult["NavPageNomer"] < $arResult["NavPageCount"]) {?>
<a class="paginationPrevNext" href="<?=$arResult["sUrlPath"]?>?<?=$strNavQueryString?>PAGEN_<?=$arResult["NavNum"]?>=<?=($arResult["NavPageNomer"]+1)?>">Следующая</a>
<a class="paginationPrevNext" href="<?=$arResult["sUrlPath"]?>?<?=$strNavQueryString?>PAGEN_<?=$arResult["NavNum"]?>=<?=$arResult["NavPageCount"]?>">Конец</a>
<?} else { // Если страница последняя ?>
<span class="paginationPrevNext">Следующая</span>
<span class="paginationPrevNext">Конец</span>
<?}?>
</div>
Нам будет приятно
Поделитесь
Комментарии