• Модуль: 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; }