Бортовой журнал Ктулху

Битрикс: передача переменной из шаблона в epilog

Задача была в том чтобы через epilog передать значение title взятое из компонента. Не знаю, правильный ли я путь выбрал, но это работает.

 

 component_epilog.php в битриксе отрабатывает последним, т.е. после всех компонентов и даже после кеша. Это удобн тем, что позволяет обходить некоторые баги кеширования.

comp ch 3

Но в данном случае его особенность позволила перезаписать переменную в title.

Получаем от элемента инфоблока SECTION пользовательское поле UF_CUSTOMTITLE с новым значением для title и записываем его в переменную $GLOBAL['titel'].

$uf_arresult = CIBlockSection::GetList(Array("SORT"=>"­­ASC"), Array("IBLOCK_ID" => $uf_iblock_id, "ID" => $arResult[ID]), false, array('UF_*'));
if($uf_value = $uf_arresult->GetNext())
 { 
 if(strlen($uf_value['~UF_CUSTOMTITLE']) > 0)
 {
 $parameter['cat_id'] = $uf_value;
$GLOBALS['titel'] = $uf_value['UF_CUSTOMTITLE']; // передаем в component_epilog, там задаем тайтл
}
 }

В эпилоге просто можно вывести

<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
global $APPLICATION;
$APPLICATION->SetPageProperty('title', $GLOBALS['titel']);
$APPLICATION->SetTitle($GLOBALS['titel']);
// var_dump($GLOBALS);
?>