protected function getUserData(): ?array
{
if ($this->arParams["ID"] <= 0)
{
return null;
}
global $USER;
$filter = [
"ID_EQUAL_EXACT" => $this->arParams["ID"]
];
$params = [
"FIELDS" => [
'ID', 'ACTIVE', 'CONFIRM_CODE', 'EXTERNAL_AUTH_ID', 'LAST_ACTIVITY_DATE', 'DATE_REGISTER',
'LOGIN', 'EMAIL', 'NAME', 'SECOND_NAME', 'LAST_NAME', 'WORK_POSITION',
'PERSONAL_PHOTO', 'PERSONAL_BIRTHDAY', 'PERSONAL_GENDER',
'PERSONAL_WWW', 'PERSONAL_MOBILE', 'WORK_PHONE', 'PERSONAL_CITY',
'TIME_ZONE', 'AUTO_TIME_ZONE', 'TIME_ZONE_OFFSET',
'PERSONAL_COUNTRY', 'PERSONAL_FAX', 'PERSONAL_MAILBOX',
'PERSONAL_PHONE', 'PERSONAL_STATE', 'PERSONAL_STREET', 'PERSONAL_ZIP',
'WORK_CITY', 'WORK_COUNTRY', 'WORK_COMPANY', 'WORK_DEPARTMENT',
'PERSONAL_PROFESSION', 'WORK_NOTES', 'WORK_PROFILE', 'LANGUAGE_ID',
],
'SELECT' => [ 'UF_DEPARTMENT', 'UF_PHONE_INNER', 'UF_SKYPE', 'UF_SKYPE_LINK', 'UF_ZOOM', 'UF_PUBLIC' ]
];
$dbUser = CUser::GetList("id", "asc", $filter, $params);
$user = $dbUser->fetch();
foreach ($user as $field => $value)
{
if ($value === null)
{
$user[$field] = "";
}
if ($field === "LAST_ACTIVITY_DATE" && $value != '')
{
$user["LAST_ACTIVITY_DATE_FROM_DB"] = $value;
$user[$field] = DateTime::createFromTimestamp(MakeTimeStamp($value, 'YYYY-MM-DD HH:MI:SS'));
$user[$field] = FormatDateFromDB($user[$field]);
}
}
if ((int)$user["PERSONAL_PHOTO"] <= 0)
{
switch($user["PERSONAL_GENDER"])
{
case "M":
$suffix = "male";
break;
case "F":
$suffix = "female";
break;
default:
$suffix = "unknown";
}
$user["PERSONAL_PHOTO"] = Option::get('socialnetwork', 'default_user_picture_'.$suffix, false, SITE_ID);
}
$user["PHOTO"] = self::getUserPhoto($user["PERSONAL_PHOTO"], 512);
$user["FULL_NAME"] = CUser::FormatName(CSite::GetNameFormat(), $user, true, false);
if ($user["PERSONAL_WWW"] <> '')
{
$user["PERSONAL_WWW"] = ((mb_strpos($user["PERSONAL_WWW"], "http") === false) ? "http://" : "").$user["PERSONAL_WWW"];
}
$user["ONLINE_STATUS"] = CUser::GetOnlineStatus($this->arParams["ID"],
MakeTimeStamp($user["LAST_ACTIVITY_DATE_FROM_DB"] ?? null, "YYYY-MM-DD HH-MI-SS"));
$user["SHOW_SONET_ADMIN"] = false;
if (
$this->arParams["ID"] == $USER->GetID()
&& Loader::includeModule("socialnetwork")
&& CSocNetUser::IsCurrentUserModuleAdmin(SITE_ID, false)
)
{
$user["SHOW_SONET_ADMIN"] = true;
$user["IS_SESSION_ADMIN"] = CSocNetUser::IsEnabledModuleAdmin();
}
$this->setUserStatus($user);
$this->checkVoximplantPhone($user);
$this->prepareSubordination($user);
$user += Util::getAppsInstallationConfig($this->arParams['ID']);
if (Loader::includeModule("bitrix24") && BitrixBitrix24Integrator::isIntegrator($user["ID"]))
{
$user["IS_INTEGRATOR"] = true;
}
return $user;
}