Очередной сайт на битрикс и надо вывести мета (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"]); } ?>