Передать данные в component_epilog.php
Иногда требуется в шаблоне компонента дополучить данные и перенести их в component_epilog.php
, например возьмем стандартный компонент bitrix:news.list
. Даже если мы добавим новый ключ в массив $arResult
и разместим в нем наши данные:
<?
$arResult['TEXT'] = 'Hello world!';
Данные не попадут в component_epilog.php
, потому что компонент bitrix:news.list
не добавляет в кэш все данные, он кэширует вывод всего HTML-кода
, который выводит шаблон и дополнительно кэширует некоторые, но не все элементы массива $arResult
.
Для того, что бы нужные данные попали в component_epilog.php
, их нужно добавить вручную. Нам нужно, что бы наши данные попали в дата-кэш компонента, который отвечает за массив данных компонента.
Для нашего примера $arResult['TEXT']
в result_modifier.php
добавим следующие строки:
<?
$this->__component->SetResultCacheKeys(['TEXT']);
В метод SetResultCacheKeys()
мы должны передать массив ключей из $arResult
которые должны попасть в component_epilog.php
. Если нам нужно передать в component_epilog.php
данные из $arResult['KEY1']
, $arResult['KEY2']
, $arResult['KEY3']
то код будет выглядеть так:
<?
$this->__component->SetResultCacheKeys(['KEY1', 'KEY2', 'KEY3']);