• Модуль: 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];
}