- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/classes/general/im_status.php
- Класс: CIMStatus
- Вызов: CIMStatus::GetStatus
static function GetStatus($userId = null)
{
$userId = IMCommon::getUserId($userId);
if (!$userId)
{
return null;
}
$userStatus = null;
$cache = BitrixMainDataCache::createInstance();
if($cache->initCache(self::CACHE_TTL, 'list_v2', self::CACHE_PATH.$userId.'/'))
{
$userStatus = $cache->getVars();
}
else
{
$res = IMModelStatusTable::getList(Array(
'select' => Array(
'STATUS',
'MOBILE_LAST_DATE',
'DESKTOP_LAST_DATE',
'IDLE',
'EXTERNAL_AUTH_ID' => 'USER.EXTERNAL_AUTH_ID'
),
'runtime' => Array(
new BitrixMainEntityReferenceField(
'USER',
'BitrixMainUserTable',
array("=ref.ID" => "this.USER_ID",),
array("join_type"=>"LEFT")
)
),
'filter' => Array('=USER_ID' => $userId),
));
if ($status = $res->fetch())
{
$userStatus = $status;
$cache->startDataCache();
$cache->endDataCache($userStatus);
}
}
if ($userStatus)
{
$userStatus = CIMStatus::prepareLastDate($userStatus);
}
return $userStatus;
}