добавлении/редактировании элемента с датой создания в будущем...
// ...добавляем агент на очистку тегированного кеша.
// Агент взводится на каждый элемент отдельно.
function AddClearingAgent(&$arFields)
{
if (!defined('BX_COMP_MANAGED_CACHE'))
return true;
$ID = array_key_exists('ID', $arFields) ? $arFields['ID'] : false;
$IBLOCK_ID = array_key_exists('IBLOCK_ID', $arFields) ? $arFields['IBLOCK_ID'] : false;
$date = array_key_exists('ACTIVE_FROM', $arFields) ? MakeTimeStamp($arFields['ACTIVE_FROM']) : 0;
if ($ID && $IBLOCK_ID && $date > time())
{
$agentName = "ClearLongCache::ClearCacheByIBlockID($IBLOCK_ID, $ID);";
// удаляем агент, если он есть
\CAgent::RemoveAgent($agentName, 'main');
// добавляем агент
\CAgent::AddAgent(
$agentName,
'main',
'N',
0,
'',
'Y',
ConvertTimeStamp($date, 'FULL')
);
}
}
// функция, вызываемая агентом
function ClearCacheByIBlockID($IBLOCK_ID, $ID)
{
if (defined('BX_COMP_MANAGED_CACHE') && is_object($GLOBALS['CACHE_MANAGER']))
$GLOBALS['CACHE_MANAGER']->ClearByTag('iblock_id_'.$IBLOCK_ID);
return '';
}
}
Доброе утро! Вопрос: \CAgent::RemoveAgent($agentName, 'main'); и \CAgent::AddAgent( тут нужны слэши?
Обсуждают сегодня