Все прекрасно знают что без доп обработки Bitrix не очень хороша для СЕО, поэтому приходится дописывать доп функционал. В этой статье я покажу свой способ решения проблемы с не уникальным тайтлом на 2,3 и и.д страницах категории (новости или любого инфоблока). Тайтл будет в виде #Название категории# страница #N#.
Для начала нам нужно определить номер страницы. Для этого в шаблоне стандартного компонента system.pagenavigation в глобальную переменную занесем наш номер страницы. Значение переменной хранится с переменной $arResult["nStartPage"]. Соответственно находим место определения текущей страницы и вставляем этот кусочек.
<? GLOBAL $page_counter; $page_counter=$arResult["nStartPage"];?>
Конечный результат будет таков:
<?if ($arResult["nStartPage"] == $arResult["NavPageNomer"]):?> <? GLOBAL $page_counter; $page_counter=$arResult["nStartPage"]; ?> <span class="nav-current-page"><?=$arResult["nStartPage"]?></span> <?elseif($arResult["nStartPage"] == 1 && $arResult["bSavePage"] == false):?> <a href="<?=$arResult["sUrlPath"]?><?=$strNavQueryStringFull?>"><?=$arResult["nStartPage"]?></a> <?else:?> <a href="<?=$arResult["sUrlPath"]?>?<?=$strNavQueryString?>PAGEN_<?=$arResult["NavNum"]?>=<?=$arResult["nStartPage"]?>"><?=$arResult["nStartPage"]?></a> <?endif?>
Теперь переходим в шаблон catalog.section и определяем нашу переменную тайтла. Также нам понадобится наша функция request_url для определения страницы и исключения не нужных.
<?GLOBAL $page_counter; $urlnow = request_url();?> <?if (preg_match("/PAGEN/", $urlnow, $matches, PREG_OFFSET_CAPTURE)):?> <?GLOBAL $title_section; $title_section= $arResult["NAME"].' страница '.$page_counter; ?> <?else:?> <?endif;?>
Теперь спокойно переносим наш title в header.php (шапка сайта) ис помощью функции ShowCondTitle переопределяем наш тайтл:
<? $urlnows = request_url(); if (preg_match("/PAGEN/", $urlnows, $matches, PREG_OFFSET_CAPTURE)):?> <?php function ShowCondTitle() { global $APPLICATION; GLOBAL $title_section; //echo $title_section; if (!$APPLICATION->GetTitle()) return "Стандартная страница"; else return $title_section; } ?> <title><?$APPLICATION->AddBufferContent('ShowCondTitle');?></title> <?else:?> <title><?$APPLICATION->ShowTitle()?></title> <?endif;?>