- Модуль: webdav
- Путь к файлу: ~/bitrix/modules/webdav/classes/general.php
- Класс: CWebDavBase
- Вызов: CWebDavBase::CustomDataCache
static function CustomDataCache($path, $id, $value = null, $tags = null, $time=86400)
{
static $data = array();
$CACHE_PATH = str_replace(array("///", "//"), "/", "/".SITE_ID."/".$path."/");
$CACHE_ID = $id;
$CACHE_TIME = intval($time);
static $arOCache = array();
if (!isset($arOCache[$path]))
$arOCache[$path] = new CPHPCache;
$docCache =& $arOCache[$path];
if ($value === null) // GET
{
if (!isset($data[$path][$id]))
{
$value = false;
if ($docCache->InitCache($CACHE_TIME, $CACHE_ID, $CACHE_PATH))
$value = $docCache->GetVars();
$data[$path][$id] = $value;
}
if (isset($data[$path][$id]))
return $data[$path][$id];
else
return false;
}
else
{
if (empty($docCache->basedir))
$docCache->InitCache($CACHE_TIME, $CACHE_ID, $CACHE_PATH);
if ($docCache->StartDataCache())
{
global $CACHE_MANAGER;
$CACHE_MANAGER->StartTagCache($CACHE_PATH);
if (is_string($tags))
$tags = explode(',', $tags);
foreach ($tags as $tag)
$CACHE_MANAGER->RegisterTag(trim($tag));
$CACHE_MANAGER->EndTagCache();
$docCache->EndDataCache($value);
}
}
}