Можно ещё прояснить по SetResultCacheKeys? =)) В result_modifier.php выполняю такой код:
[CODE]//Код отрабатывает в result_modifier.php
$arResult["ITEM_PRICES"] = $prices; //$prices - это ранее полученый массив цен
$this->__component->SetResultCacheKeys(array("ITEM_PRICES"));
[/CODE]
После чего в component_epilog.php в $arResult появляются ITEM_PRICES (т.е. по идеи кеш текущего компонента дополнился ITEM_PRICES ), а примеры (довольно старые правда) на форумах показывают что добавлять свои данные в кеш нужно через объект компонента, в затем отдельно в копию $arResult с которым работает шаблон, например:
[CODE]$cp = $this->__component; // объект компонента
if (is_object($cp)) {
// добавим в arResult компонента два поля - MY_TITLE и IS_OBJECT
$cp->arResult['MY_TITLE'] = 'Мое название';
$cp->arResult['IS_OBJECT'] = 'Y';
$cp->SetResultCacheKeys(array('MY_TITLE','IS_OBJECT'));
// сохраним их в копии arResult, с которой работает шаблон
$arResult['MY_TITLE'] = $cp->arResult['MY_TITLE'];
$arResult['IS_OBJECT'] = $cp->arResult['IS_OBJECT'];
}
[/CODE]
Но при первом варианте ITEM_PRICES доступен и в result_modiofier.php [URL=http://joxi.ru/l2ZvyOxf8dw9k2]http://joxi.ru/l2ZvyOxf8dw9k2[/URL] и в component_epilog.php [URL=http://joxi.ru/4Ak3Y4lhMayOBA]http://joxi.ru/4Ak3Y4lhMayOBA[/URL] вот и непонятно, а правильно ли я вообще делаю?
[CODE]//Код отрабатывает в result_modifier.php
$arResult["ITEM_PRICES"] = $prices; //$prices - это ранее полученый массив цен
$this->__component->SetResultCacheKeys(array("ITEM_PRICES"));
[/CODE]
После чего в component_epilog.php в $arResult появляются ITEM_PRICES (т.е. по идеи кеш текущего компонента дополнился ITEM_PRICES ), а примеры (довольно старые правда) на форумах показывают что добавлять свои данные в кеш нужно через объект компонента, в затем отдельно в копию $arResult с которым работает шаблон, например:
[CODE]$cp = $this->__component; // объект компонента
if (is_object($cp)) {
// добавим в arResult компонента два поля - MY_TITLE и IS_OBJECT
$cp->arResult['MY_TITLE'] = 'Мое название';
$cp->arResult['IS_OBJECT'] = 'Y';
$cp->SetResultCacheKeys(array('MY_TITLE','IS_OBJECT'));
// сохраним их в копии arResult, с которой работает шаблон
$arResult['MY_TITLE'] = $cp->arResult['MY_TITLE'];
$arResult['IS_OBJECT'] = $cp->arResult['IS_OBJECT'];
}
[/CODE]
Но при первом варианте ITEM_PRICES доступен и в result_modiofier.php [URL=http://joxi.ru/l2ZvyOxf8dw9k2]http://joxi.ru/l2ZvyOxf8dw9k2[/URL] и в component_epilog.php [URL=http://joxi.ru/4Ak3Y4lhMayOBA]http://joxi.ru/4Ak3Y4lhMayOBA[/URL] вот и непонятно, а правильно ли я вообще делаю?