php Автоматическаяочисткатегированногокеша添加了
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php Автоматическаяочисткатегированногокеша添加了相关的知识,希望对你有一定的参考价值。
<?php
AddEventHandler('iblock', 'OnAfterIBlockElementAdd', array('CMyCache', 'AddClearingAgent'));
AddEventHandler('iblock', 'OnAfterIBlockElementUpdate', array('CMyCache', 'AddClearingAgent'));
class CMyCache
{
// При добавлении/редактировании элемента с датой создания в будущем...
// ...добавляем агент на очистку тегированного кеша.
// Агент взводится на каждый элемент отдельно.
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 = "CMyCache::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 '';
}
}
以上是关于php Автоматическаяочисткатегированногокеша添加了的主要内容,如果未能解决你的问题,请参考以下文章
apache_conf FlexGet:АвтоматическаяRSS-скачкасериаловLostfilm.tvдляновойверсиисайта
text АвтоматическаяSK-авторизацияпоключу
sh АвтоматическаяSK-авторизацияпоключу
php расстояниемеждудвумяточками
php Методыдляработыскоэффициентамимассивыпишемсключамикаквгетлисте
python Естьдваспискаразнойдлины。 Впервомсодержатсяключи,авовторомзначения。 Напишитефункцию,котораясо