• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/classes/general/im_status.php
  • Класс: CIMStatus
  • Вызов: CIMStatus::getDesktopStatus
static function getDesktopStatus($dates)
{
	$result = [
		'ONLINE' => false,
		'IDLE' => false,
	];

	if (!($dates['DESKTOP_LAST_DATE'] instanceof BitrixMainTypeDateTime))
	{
		return $result;
	}

	$maxOnlineTime = 120;
	if (BitrixMainLoader::includeModule('pull') && CPullOptions::GetNginxStatus())
	{
		$maxOnlineTime = CIMMessenger::GetSessionLifeTime();
	}

	if ($dates['DESKTOP_LAST_DATE']->getTimestamp()+$maxOnlineTime+60 > time())
	{
		$result['ONLINE'] = true;
	}

	if (!$result['ONLINE'])
	{
		return $result;
	}

	if (
		$dates['IDLE'] instanceof BitrixMainTypeDateTime
		&& $dates['IDLE']->getTimestamp() > 0
	)
	{
		$result['IDLE'] = true;
	}

	return $result;
}