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>
Нам будет приятно
Поделитесь
Комментарии