- Модуль: mobile
- Путь к файлу: ~/bitrix/modules/mobile/lib/user.php
- Класс: BitrixMobileUser
- Вызов: User::setOnline
static function setOnline($userId = false, $cache = true)
{
global $USER;
if (!$userId)
{
$userId = $USER->GetId();
}
$userId = intval($userId);
if ($userId <= 0)
{
return false;
}
if ($cache && $userId == $USER->GetId())
{
if (isset($_SESSION['MOBILE_LAST_ONLINE_'.$userId]) && intval($_SESSION['MOBILE_LAST_ONLINE_'.$userId])+60 > time())
return false;
$_SESSION['MOBILE_LAST_ONLINE_'.$userId] = time();
}
$time = time();
if (BitrixMainLoader::includeModule('im'))
{
CIMStatus::Set($userId, Array('MOBILE_LAST_DATE' => BitrixMainTypeDateTime::createFromTimestamp($time)));
}
else
{
CUserOptions::SetOption('mobile', 'lastActivityDate', $time, false, $userId);
}
$mobileDevice = BitrixMainContext::getCurrent()->getRequest()->getCookieRaw('MOBILE_DEVICE');
if ($mobileDevice)
{
$mobileDevice = mb_strtolower($mobileDevice);
if ($mobileDevice === 'iphone' || $mobileDevice === 'ipad')
{
$lastTimestamp = (int)CUserOptions::GetOption('mobile', 'iOsLastActivityDate', -1, $userId);
if ($lastTimestamp+86400*30 < time())
{
CUserOptions::SetOption('mobile', 'iOsLastActivityDate', $time, false, $userId);
}
}
else if ($mobileDevice === 'android')
{
$lastTimestamp = (int)CUserOptions::GetOption('mobile', 'AndroidLastActivityDate', -1, $userId);
if ($lastTimestamp+86400*30 < time())
{
CUserOptions::SetOption('mobile', 'AndroidLastActivityDate', $time, false, $userId);
}
}
}
return true;
}