- Модуль: imopenlines
- Путь к файлу: ~/bitrix/modules/imopenlines/lib/queue.php
- Класс: BitrixImOpenLinesQueue
- Вызов: Queue::getUserData
static function getUserData($lineId, $userId, $nullForUnprocessed = false)
{
$result = null;
if ($userId > 0)
{
$user = ImUser::getInstance($userId);
if($user->isExists())
{
$currentUserData = [
'ID' => (int)$userId,
'NAME' => $user->getFullName(false),
'FIRST_NAME' => $user->getName(false),
'LAST_NAME' => $user->getLastName(false),
'WORK_POSITION' => '',
'GENDER' => $user->getGender(),
'AVATAR' => $user->getAvatar(),
'AVATAR_ID' => $user->getAvatarId(),
'ONLINE' => $user->isOnline()
];
if ($user->isExtranet())
{
$result = $nullForUnprocessed? null: $currentUserData;
}
else
{
//TODO: Forced replacement of aliases.
if (function_exists('customImopenlinesOperatorNames'))
{
$customData = customImopenlinesOperatorNames($lineId, [
'ID' => (int)$currentUserData['ID'],
'NAME' => $currentUserData['FIRST_NAME'],
'FIRST_NAME' => '',
'LAST_NAME' => $currentUserData['LAST_NAME'],
'WORK_POSITION' => '',
'GENDER' => $currentUserData['GENDER'],
'AVATAR' => $currentUserData['AVATAR'],
'AVATAR_ID' => $currentUserData['AVATAR_ID'],
'EXTERNAL_AUTH_ID' => $user->getExternalAuthId(),
'ONLINE' => $currentUserData['ONLINE']
]);
if (!$customData)
{
$result = $nullForUnprocessed? null: $currentUserData;
}
else
{
$result['ID'] = (int)$customData['ID'];
$result['NAME'] = (string)ImUser::formatFullNameFromDatabase($customData);
$result['FIRST_NAME'] = (string)ImUser::formatNameFromDatabase($customData);
$result['LAST_NAME'] = (string)$customData['LAST_NAME'];
$result['WORK_POSITION'] = (string)$customData['WORK_POSITION'];
$result['AVATAR'] = (string)$customData['AVATAR'];
$result['AVATAR_ID'] = (int)$customData['AVATAR_ID'];
$result['ONLINE'] = (bool)$customData['ONLINE'];
}
}
else
{
$result = self::setQueueUserData($lineId, $currentUserData);
if (!$result)
{
$result = $nullForUnprocessed? null: $currentUserData;
}
}
}
if (!empty($result['AVATAR']))
{
$uri = new Uri($result['AVATAR']);
if(empty($uri->getHost()))
{
$result['AVATAR'] = Common::getServerAddress() . $result['AVATAR'];
}
}
}
}
return $result;
}