- Модуль: pull
- Путь к файлу: ~/bitrix/modules/pull/classes/general/pull_watch.php
- Класс: CAllPullWatch
- Вызов: CAllPullWatch::Add
static function Add($userId, $tag, $immediate = false)
{
global $DB, $CACHE_MANAGER;
$userId = intval($userId);
if ($userId == 0 || $tag == '')
return false;
$arResult = $CACHE_MANAGER->Read(3600, $cache_id="b_pw_".$userId, "b_pull_watch");
if ($arResult)
$arResult = $CACHE_MANAGER->Get($cache_id);
if(!$arResult)
{
CTimeZone::Disable();
$strSql = "
SELECT ID, USER_ID, TAG, ".$DB->DatetimeToTimestampFunction("DATE_CREATE")." DATE_CREATE
FROM b_pull_watch
WHERE USER_ID = ".intval($userId)."
";
CTimeZone::Enable();
$dbRes = $DB->Query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__);
while ($arRes = $dbRes->Fetch())
$arResult[$arRes["TAG"]] = $arRes;
$CACHE_MANAGER->Set($cache_id, $arResult);
}
if ($arResult && $arResult[$tag])
{
if ($arResult[$tag]['DATE_CREATE']+1860 > time())
{
self::$arUpdate[intval($arResult[$tag]['ID'])] = intval($arResult[$tag]['ID']);
return true;
}
else
{
self::Delete($userId, $tag);
return self::Add($userId, $tag);
}
}
$CACHE_MANAGER->Clean("b_pw_".$userId, "b_pull_watch");
self::$arInsert[trim($tag)] = trim($tag);
if ($immediate || defined('BX_CHECK_AGENT_START') && !defined('BX_WITH_ON_AFTER_EPILOG'))
{
self::DeferredSql($userId);
}
return true;
}