Рассмотрим произвольный шаблон (решение не имеет к стилям, прописанным в шаблоне, никакого отношения, поэтому подойдет любой ваш шаблон).
Для начала, после подключения пролога в шаблоне, подключим класс Asset:
use Bitrix\Main\Page\Asset; $asset = Asset::getInstance();
Далее, определим функцию, которая из настроек сайтов в базе вытягивает информацию о текущем сайте:
if(!function_exists('PaiGetSiteInfo')){
function PaiGetSiteInfo($siteId = SITE_ID)
{
if (empty($siteId))
{
return "";
}
$arSite = false;
$obCache = new \CPHPCache();
if ($obCache->InitCache(36000, 'site_' . $siteId, '/'))
{
$arSite = $obCache->GetVars();
} elseif ($obCache->StartDataCache())
{
$arSite = \CSite::GetByID($siteId)->Fetch();
$obCache->EndDataCache($arSite);
}
return $arSite;
}
}
Далее, определяем ссылки на предыдущую и следующую страницы:
$context = \Bitrix\Main\Application::getInstance()->getContext(); $server = $context->getServer(); $curPage = $server->getRequestUri(); $arSiteInfo = PaiGetSiteInfo(); $arResult['PROTOCOL'] = CMain::IsHTTPS() ? "https://" : "http://"; $arResult['SERVER_NAME'] = $arSiteInfo['SERVER_NAME']; $arResult['NEXT_NUM'] = $arResult['NavPageNomer'] + 1; $arResult['PREV_NUM'] = $arResult['NavPageNomer'] - 1; $arResult['NEXT_PAGE'] = $arResult['PROTOCOL'] . $arResult['SERVER_NAME'] . $arResult['sUrlPath'] . '?' .$strNavQueryString.'PAGEN_'.$arResult["NavNum"].'=' . $arResult['NEXT_NUM']; $arResult['PREV_PAGE'] = $arResult['PROTOCOL'] . $arResult['SERVER_NAME'] . $arResult['sUrlPath'] . '?' .$strNavQueryString.'PAGEN_'.$arResult["NavNum"].'=' . $arResult['PREV_NUM'];
И последний штрих - выводим все это в шапку сайта (естественно, с проверкой количества страниц - если страница всего одна, то выводить ничего и не нужно):
if(intval($arResult['NavPageCount']) > 1){
if($arResult['PREV_NUM']>=1){
$asset->addString('<link rel="prev" href="'.$arResult['PREV_PAGE'].'" />');
}
if($arResult['NEXT_NUM']<=$arResult['NavPageCount']){
$asset->addString('<link rel="next" href="'.$arResult['NEXT_PAGE'].'" />');
}
if($arResult['NavPageNomer']>1){
$APPLICATION->SetDirProperty('robots','noindex,follow');
// если не выводится, можете попробовать так:
// asset->addString('<meta name="robots" content="noindex, follow" />');
}
}
Если заметили, тут кроме ссылок на следующую и предыдущую страницы, также выведен тег robots. В его логику подробно вдаваться не буду. Скажу только, что сео-шники сказали "Надо!". Если вы считаете иначе - удалите этот кусок.