Очередной сайт на битрикс и надо вывести мета (title, description) для категорий, при этом чтоб не менялись мета в дочерних категориях.
Вскрытие показало что шаблон для категорий переносился вручную и битрикс об этом ничего не знает, что немного затрудняет доступ к шаблону.
Реализация вывода мета данных
Создал у раздела во вкладке «Доп. поля» (Дополнительные поля), два поля UF_SEO_TITLE, UF_SEO_DESC.
Теперь надо соответственно вывести их значение в title и description.
Нашел шаблон вывода категории
прописал в нем
<?
. . .
$dbSection = CIBlockSection::GetList(Array(), array("ID" => $arResult["VARIABLES"]["SECTION_ID"], "IBLOCK_ID" => $arParams["IBLOCK_ID"]), false ,Array("UF_*"));
if($arSection = $dbSection->GetNext()){
$rain_title = $arSection["UF_SEO_TITLE"];
$rain_desc = $arSection["UF_SEO_DESC"];
if(!empty($rain_title)){
$arResult["VARIABLES"]["UF_SEO_TITLE"] = $rain_title;
}
if(!empty($rain_desc)){
$arResult["VARIABLES"]["UF_SEO_DESC"] = $rain_desc;
}
}
. . .
?>
Но если попытаться с шаблона вывести в title и description значения, то ничего не получится, так как модуль SEO перебьет их.
Для этого правим файл component_epilog.php. Его кстати небыло в папке компонента, по этому залил пустой
Содержимое файла component_epilog.php
<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
global $APPLICATION;
?>
Файл эпилог сразу же подхватил битрикс и стал доступен на морде сайта при включенном «Режим правки».
После добавил уже и вывод мета.
Содержимое файла component_epilog.php
<? if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); global $APPLICATION; if (!empty($arResult["VARIABLES"]["UF_SEO_TITLE"])){ $APPLICATION->SetPageProperty("title", $arResult["VARIABLES"]["UF_SEO_TITLE"]);
$APPLICATION->SetTitle($arResult["VARIABLES"]["UF_SEO_TITLE"]);
}
if(!empty($arResult["VARIABLES"]["UF_SEO_DESC"])){
$APPLICATION->SetPageProperty("description",$arResult["VARIABLES"]["UF_SEO_DESC"]);
}
?>


