- Модуль: timeman
- Путь к файлу: ~/bitrix/modules/timeman/lib/monitor/utils/user.php
- Класс: BitrixTimemanMonitorUtilsUser
- Вызов: User::getUserInfo
static function getUserInfo(int $userId, array $params = []): ?array
{
static $users = [];
$userId = (int)$userId;
if (!$userId)
{
return ['name' => Loc::getMessage('TIMEMAN_MONITOR_UTILS_DEFAULT_USER_NAME')];
}
if(isset($users[$userId]))
{
return $users[$userId];
}
// prepare link to profile
$replaceList = ['user_id' => $userId];
$template = '/company/personal/user/#user_id#/';
$link = CComponentEngine::makePathFromTemplate($template, $replaceList);
self::preloadUserInfo([$userId]);
$userFields = static::$userFields[$userId];
if (!$userFields)
{
return ['name' => Loc::getMessage('TIMEMAN_MONITOR_UTILS_DEFAULT_USER_NAME')];
}
// format name
$userName = CUser::FormatName(
CSite::GetNameFormat(),
[
'LOGIN' => $userFields['LOGIN'],
'NAME' => $userFields['NAME'],
'LAST_NAME' => $userFields['LAST_NAME'],
'SECOND_NAME' => $userFields['SECOND_NAME']
],
true,
false
);
$userName = !empty($userName) ? $userName : Loc::getMessage('TIMEMAN_MONITOR_UTILS_DEFAULT_USER_NAME');
// prepare icon
$fileTmp = CFile::ResizeImageGet(
$userFields['PERSONAL_PHOTO'],
[
'width' => $params['avatarWidth'] ?? static::DEFAULT_AVATAR_WIDTH,
'height' => $params['avatarHeight'] ?? static::DEFAULT_AVATAR_HEIGHT
],
BX_RESIZE_IMAGE_EXACT,
false,
false,
true
);
$userIcon = $fileTmp['src'];
$users[$userId] = [
'id' => $userId,
'name' => $userName,
'link' => $link,
'icon' => $userIcon
];
return $users[$userId];
}