Первое что хочу сказать, они используются для вывода чего либо в хидере, но не просто вывода, а зависящего от определенных параметров которые передаются на самой странице.
На примере, допустим нам нужно в левую колонку (header.php) выводить список товаров, но по определенному условию, если на странице находится товар с ценой больше 1000 р. или еще по какому-либо критерию. Важно то, что мы не знаем значение по которому можно определить это и оно было-бы нам доступно в header.php, только если это $_GET параметр, но я думаю все цены товара «поднимать» в $_GET это бред.
Вот для передачи значения в header и служат отложенные функции. Заголовок странице устанавливается тоже так, передача значения идет с самой страницы.
С помощью метода $APPLICATION->SetPageProperty(‘KEY’, ‘VALUE’) на самой странице добавляем в ее свойства наше значение, в примере с ценой это будет примерно так:
$APPLICATION->SetPageProperty('MAX_PRICE', $i_ProductPrice);
Далее пишем функцию и ложем ее в init.php например,
function getLeftCatalogList() { global $APPLICATION; # вот тут нам будет доступно наше значение, # можно делать условие или передавать в компонент и т.д. if(isset($APPLICATION->GetProperty('MAX_PRICE')) && intval($APPLICATION->GetProperty('MAX_PRICE')) > 1000) { ob_start(); $APPLICATION->IncludeComponent("bitrix:catalog.section", '', array()); $contentTime = ob_get_contents(); ob_end_clean(); return $contentTime; } }
Теперь в том месте где нужно выводить этот список (header.php), вызываем функцию
... ... $APPLICATION->AddBufferContent("getLeftCatalogList"); ... ...
Условие сработает, так как значение будет доступно и все будет как надо.
Если нужно что-то вывести в правой колонке т.е. footer.php то достаточно просто указать параметр с помощью
$APPLICATION->SetPageProperty(‘KEY’, ‘VALUE’);
и получить его можно в футере функцией
$APPLICATION->GetPageProperty(‘KEY’, ‘VALUE’)