Судя по этой схеме:

component_epilog.php подключается до создания шаблона, а значит через него можно повлять на ключи шаблона.
Но используя такой код в component_epilog.php:
<?if(!defined("B_PROLOG_INCLUDED" ;) || B_PROLOG_INCLUDED!==true)die();
// Кешировать по дате изменения элемента
$resElement = CIBlockElement::GetByID($arResult["ID"] ;) ;
$arElementN = $resElement->Fetch();
$cp = $this->__component; // объект компонента
if (is_object($cp)) {
$cp->arResult['TIMESTAMP_EDIT'] = $arElementN['TIMESTAMP_X'];
$cp->SetResultCacheKeys(Array('TIMESTAMP_EDIT'));
}
?>
В файле кеша в конце переменной $ser_content среди ключей хэша нет добавленного TIMESTAMP_EDIT.
Если размещать этот код в result_modifier.php, то среди ключей появляется новый, но тогда теряется смысл такого кеширования, т.к. result_modifier.php вызывается только после истечения срока кеширования.
Как быть в такой ситуации? Кастомизировать компонент?
component_epilog.php подключается до создания шаблона, а значит через него можно повлять на ключи шаблона.
Но используя такой код в component_epilog.php:
<?if(!defined("B_PROLOG_INCLUDED" ;) || B_PROLOG_INCLUDED!==true)die();
// Кешировать по дате изменения элемента
$resElement = CIBlockElement::GetByID($arResult["ID"] ;) ;
$arElementN = $resElement->Fetch();
$cp = $this->__component; // объект компонента
if (is_object($cp)) {
$cp->arResult['TIMESTAMP_EDIT'] = $arElementN['TIMESTAMP_X'];
$cp->SetResultCacheKeys(Array('TIMESTAMP_EDIT'));
}
?>
В файле кеша в конце переменной $ser_content среди ключей хэша нет добавленного TIMESTAMP_EDIT.
Если размещать этот код в result_modifier.php, то среди ключей появляется новый, но тогда теряется смысл такого кеширования, т.к. result_modifier.php вызывается только после истечения срока кеширования.
Как быть в такой ситуации? Кастомизировать компонент?
postoev.ru/blog/