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.'">');
}
}