Изменения количества страниц при показе навигации в bitrix

pagnavigation

Один из вариантов для изменения отображение количества страниц при показе навигации в bitrix. Сделаем вывод 14 страниц в навигации, как показано на рисунке.


Копируем шаблон system.pagenavigation в свой шаблон сайта, открываем файл template.php и вставляем код вначале шаблона:

function numStartPage($var_1, $var_2){
    $var_3 = $var_2 - $var_1;
    
	if ($var_3 >= 6){
		$var_4 = $var_1 - 7;
	}elseif ($var_3 >= 5){
		$var_4 = $var_1 - 8;
	}elseif ($var_3 >= 4){
		$var_4 = $var_1 - 9;
	}elseif ($var_3 >= 3){
		$var_4 = $var_1 - 10;
	}elseif ($var_3 >= 2){
		$var_4 = $var_1 - 11;
	}elseif ($var_3 >= 1){
		$var_4 = $var_1 - 12;
	}else {
		$var_4 = $var_1 - 13;
	}
	
	return $var_4;
}

function numEndPage($var_1, $var_2){
    $var_3 = $var_2 - $var_1;
    
	if ($var_3 >= 6){
		$var_4 = $var_1 + 6;
	}elseif ($var_3 >= 5){
		$var_4 = $var_1 + 5;
	}elseif ($var_3 >= 4){
		$var_4 = $var_1 + 4;
	}elseif ($var_3 >= 3){
		$var_4 = $var_1 + 3;
	}elseif ($var_3 >= 2){
		$var_4 = $var_1 + 2;
	}elseif ($var_3 >= 1){
		$var_4 = $var_1 + 1;
	}else {
		$var_4 = $var_1;
	}
    
	return $var_4;
}

$pageCount = 14;
$pageMiddleCount = 8;

$var_1 = $arResult["NavPageNomer"]; 
$var_2 = $arResult["NavPageCount"]; 

if ($arResult["NavPageCount"] > $pageCount){
    if ($arResult["NavPageNomer"] > $arResult["nStartPage"] && $arResult["NavPageNomer"] > $pageMiddleCount){
        $arResult["nStartPage"] = numStartPage($var_1, $var_2);
		$arResult["nEndPage"] = numEndPage($var_1, $var_2);
    }else{
		$arResult["nStartPage"] = 1;
		$arResult["nEndPage"] = $pageCount;
	}
}else{
	$arResult["nStartPage"] = 1;
	$arResult["nEndPage"] = $arResult["NavPageCount"];
}


Чтобы поменять количество страниц при показе навигации на свое усмотрение, нужно в коде заменить переменные $pageCount, $pageMiddleCount и поменять условие в функциях numStartPage(), numEndtPage().