• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/user_counter.php
  • Класс: CAllUserCounter
  • Вызов: CAllUserCounter::GetValues
static function GetValues($user_id, $site_id = SITE_ID, &$arLastDate = [])
{
	static $diff;

	$user_id = (int)$user_id;
	if ($user_id < 0)
	{
		return [];
	}

	if (!is_array($arLastDate))
	{
		$arLastDate = [];
	}

	if ($diff === false)
	{
		$diff = CTimeZone::GetOffset();
	}

	if (!isset(self::$counters[$user_id][$site_id]))
	{
		$arAll = self::getValuesFromDB($user_id);

		if (is_array($arAll))
		{
			foreach($arAll as $arItem)
			{
				if (
					$arItem["SITE_ID"] == $site_id
					|| $arItem["SITE_ID"] === self::ALL_SITES
				)
				{
					if (!isset(self::$counters[$user_id][$site_id][$arItem["CODE"]]))
					{
						self::$counters[$user_id][$site_id][$arItem["CODE"]] = 0;
					}
					self::$counters[$user_id][$site_id][$arItem["CODE"]] += $arItem["CNT"];

					if (!isset($arLastDate[$user_id]))
					{
						$arLastDate[$user_id] = [];
					}
					if (!isset($arLastDate[$user_id][$site_id]))
					{
						$arLastDate[$user_id][$site_id] = [];
					}

					if (isset($arItem["LAST_DATE_TS"]))
					{
						$arLastDate[$user_id][$site_id][$arItem["CODE"]] = $arItem["LAST_DATE_TS"] - $diff;
					}
				}
			}
		}
	}

	return (self::$counters[$user_id][$site_id] ?? []);
}