Отложенные функции [bitrix api]

Комментарии отключены

Первое что хочу сказать, они используются для вывода чего либо в хидере, но не просто вывода, а зависящего от определенных параметров которые передаются на самой странице.

На примере, допустим нам нужно в левую колонку (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’)

И еще вот что есть...

Comments are closed.