KiyoshiSaundo
6/22/2018 - 1:26 PM

rel next prev bx paging_params

rel next prev bx paging_params

<?
/*
 * Проверяем есть ли страница с таким номером и, при необходимости, устанавливаем 404
 * добавляем теги rel="next" и rel="prev"
 *
 * !!!
 * Подключать внутри component_epilog.php
 */

$pagen = intval($arResult['NAV_RESULT']->NavNum);
$navNum = intval($arResult['NAV_RESULT']->NavPageNomer);
$navCount = intval($arResult['NAV_RESULT']->NavPageCount);

$pagenGet = false;
foreach ($_GET as $key => $value) {
	if (preg_match('/PAGEN_(\d+)/', $key, $matches)) {
		$pagenGet = $matches[1];
	}
}

// 404 для несуществующих страниц пагинации
$navNumGet = $_GET['PAGEN_'.$pagen];
if ($navNumGet > $navCount || ($pagenGet && $pagen != $pagenGet)) {
	@define("ERROR_404","Y");
}
// существующая страница пагинации
else {
	// canonical
	if ($navNum > 1) {
		$APPLICATION->AddHeadString('<link rel="canonical" href="http://www.aqua-stroi.ru'.$APPLICATION->GetCurPage().'">');
	}

	// rel - предыдущая страница
	$prevPage = false;
	if ($navNum > 2) {
		$prevPage = $APPLICATION->GetCurPageParam(
			'PAGEN_'.$pagen.'='.($navNum-1),
			array('PAGEN_'.$pagen, 'clear_cache', 'ELEMENT_ID', 'PROPERTY')
		);
	} else if ($navNum == 2) {
		$prevPage = $APPLICATION->GetCurPageParam(
			'',
			array('PAGEN_'.$pagen, 'clear_cache', 'ELEMENT_ID', 'PROPERTY')
		);
	}
	if ($prevPage) {
		$APPLICATION->AddHeadString('<link rel="prev" href="'.$prevPage.'">');
	}

	// rel - следующая страница
	$nextPage = false;
	if ($navNum < $navCount) {
		$nextPage = $APPLICATION->GetCurPageParam(
			'PAGEN_'.$pagen.'='.($navNum+1),
			array('PAGEN_'.$pagen, 'clear_cache', 'ELEMENT_ID', 'PROPERTY')
		);
	}
	if ($nextPage) {
		$APPLICATION->AddHeadString('<link rel="next" href="'.$nextPage.'">');
	}
}