Первое что хочу сказать, они используются для вывода чего либо в хидере, но не просто вывода, а зависящего от определенных параметров которые передаются на самой странице.
На примере, допустим нам нужно в левую колонку (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’)