Title для страниц пагинации, формирование rel prev/next для CMS Bitrix
В примере для вывода используется компонент bitrix.news.list Добавляем title:
if(isset($arResult["NAV_RESULT"]->NavPageNomer) && $arResult["NAV_RESULT"]->NavPageNomer != 1){ $titleWithPage = '-страница ' . $arResult["NAV_RESULT"]->NavPageNomer; $title = isset($titleWithPage) ? $arResult['NAME'] . $titleWithPage : $arResult['NAME']; $APPLICATION->SetPageProperty("title", $title);
Необходимо проследить, чтобы title был установлен только в одном месте.
В шаблоне компонента переменная $arResult хранит все необходимые нам данные для построения rel prev/next
$request = $APPLICATION->GetCurPage(false);//передаем false как аргумент, чтобы не возвращало index.php $page = $arResult["NAV_RESULT"]->NavPageNomer; $page_full_url = 'http://'. $_SERVER['HTTP_HOST'] . $request . 'page'; $page_count = $arResult["NAV_RESULT"]->NavPageCount; switch($page){ case '1': case 'default': $next_page = $page_full_url . '2'; $APPLICATION->AddHeadString('<link rel="next" href="' . $next_page . '/"/>',true); break; case $page_count: if(($page-1) == 1){ $prev_page = 'http://'. $_SERVER['HTTP_HOST'] . $request; } else{ $prev_page = $page_full_url . ($page_count-1) . '/'; } $APPLICATION->AddHeadString('<link rel="prev" href="'.$prev_page.'"/>',true); break; case ($page < $page_count): case ($page > 1): if(($page-1) > 1){ $next_page = $page_full_url . ($page+1) . '/'; $prev_page = $page_full_url . ($page-1) . '/'; } else{ $next_page = $page_full_url . ($page+1) . '/'; $prev_page = 'http://'. $_SERVER['HTTP_HOST'] . $request'; } $APPLICATION->AddHeadString('<link rel="prev" href="'.$prev_page.'">',true); $APPLICATION->AddHeadString('<link rel="next" href="'.$next_page.'">',true); break; }