17.05.2014

Правильная постраничная навигация

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

blog_1.jpg

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

Затем нужно перейти в параметры компонента, для которого вы хотите применить новый шаблон постраничной навигации и перейти в раздел «Настройки постраничной навигации», затем выбрать из выпадающего списка название шаблона или вписать его в поле:

blog_3.jpg

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

blog_4.jpg

<?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"]."&amp;" : "");
$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>

Нам будет приятно

Поделитесь

Комментарии

Загрузка комментариев...