• Модуль: pull
  • Путь к файлу: ~/bitrix/modules/pull/lib/mobilecounter.php
  • Класс: BitrixPullMobileCounter
  • Вызов: MobileCounter::get
static function get($userId = null)
{
	if (is_null($userId) && is_object($GLOBALS['USER']))
	{
		$userId = $GLOBALS['USER']->getId();
	}

	$userId = intval($userId);
	if (!$userId)
	{
		return false;
	}

	$counter = 0;

	if (IsModuleInstalled('intranet'))
	{
		if (BitrixMainLoader::includeModule('im')) // TODO remove IM include!
		{
			$siteId = BitrixImUser::getInstance($userId)->isExtranet()? 'ex': 's1';
		}
		else
		{
			$siteId = 's1';
		}
	}
	else
	{
		$siteId = BitrixMainContext::getCurrent()->getSite();
		if (!$siteId)
		{
			$siteId = 's1';
		}
	}

	$event = new BitrixMainEvent("pull", "onGetMobileCounter", array(
		'USER_ID' => $userId,
		'SITE_ID' => $siteId
	));
	$event->send();

	$typeStatus = self::getConfig($userId);

	foreach ($event->getResults() as $eventResult)
	{
		if ($eventResult->getType() != BitrixMainEventResult::SUCCESS)
		{
			continue;
		}

		$result = $eventResult->getParameters();

		$type = $eventResult->getModuleId().'_'.$result['TYPE'];
		if ($typeStatus[$type] === false)
		{
			continue;
		}

		if (intval($result['COUNTER']) > 0)
		{
			$counter += $result['COUNTER'];
		}
	}

	return $counter;
}