• Модуль: intranet
  • Путь к файлу: ~/bitrix/modules/intranet/lib/component/userprofile/form.php
  • Класс: BitrixIntranetComponentUserProfileForm
  • Вызов: Form::getData
public function getData($result)
{
	$param = array(
		"NAME" => $result["User"]["NAME"],
		"LAST_NAME" => $result["User"]["LAST_NAME"],
		"SECOND_NAME" => $result["User"]["SECOND_NAME"]
	);
	$fullName = CUser::FormatName(CSite::GetNameFormat(), $param);

	$data = [
		"NAME" => $result["User"]["NAME"],
		"LAST_NAME" => $result["User"]["LAST_NAME"],
		"SECOND_NAME" => $result["User"]["SECOND_NAME"],
		"FULL_NAME" => $fullName,
		"LOGIN" => $result["User"]["LOGIN"],
		"WORK_POSITION" => $result["User"]["WORK_POSITION"],
		"PERSONAL_BIRTHDAY" => $result["User"]["PERSONAL_BIRTHDAY"],
		"PERSONAL_GENDER" => $result["User"]["PERSONAL_GENDER"],
		"PERSONAL_WWW" => $result["User"]["PERSONAL_WWW"],
		"UF_DEPARTMENT" => $result["User"]["UF_DEPARTMENT"],
		"PERSONAL_MOBILE" => $result["User"]["PERSONAL_MOBILE"],
		"WORK_PHONE" => $result["User"]["WORK_PHONE"],
		"UF_PHONE_INNER" => $result["User"]["UF_PHONE_INNER"],
		"PERSONAL_CITY" => $result["User"]["PERSONAL_CITY"],
		"EMAIL" => $result["User"]["EMAIL"],
		"UF_SKYPE" => $result["User"]["UF_SKYPE"],
		"UF_SKYPE_LINK" => $result["User"]["UF_SKYPE_LINK"],
		"UF_ZOOM" => $result["User"]["UF_ZOOM"],
		"TIME_ZONE" => [
			"timeZone" => $result["User"]["TIME_ZONE"],
			"autoTimeZone" => $result["User"]["AUTO_TIME_ZONE"]
		],
		'PERSONAL_COUNTRY' => $result["User"]["PERSONAL_COUNTRY"],
		'PERSONAL_FAX' => $result["User"]["PERSONAL_FAX"],
		'PERSONAL_MAILBOX' => $result["User"]["PERSONAL_MAILBOX"],
		'PERSONAL_PHONE' => $result["User"]["PERSONAL_PHONE"],
		'PERSONAL_STATE' => $result["User"]["PERSONAL_STATE"],
		'PERSONAL_STREET' => $result["User"]["PERSONAL_STREET"],
		'PERSONAL_ZIP' => $result["User"]["PERSONAL_ZIP"],
		'WORK_CITY' => $result["User"]["WORK_CITY"],
		'WORK_COUNTRY' => $result["User"]["WORK_COUNTRY"],
		'WORK_COMPANY' => $result["User"]["WORK_COMPANY"],
		'WORK_DEPARTMENT' => $result["User"]["WORK_DEPARTMENT"],
		'WORK_PROFILE' => $result["User"]["WORK_PROFILE"],
		'PERSONAL_PROFESSION' => $result["User"]["PERSONAL_PROFESSION"],
		'DATE_REGISTER' => $result["User"]["DATE_REGISTER"],
		'WORK_NOTES' => $result["User"]["WORK_NOTES"],
		'LAST_ACTIVITY_DATE' => $result["User"]["LAST_ACTIVITY_DATE"],
		'LANGUAGE_ID' => $result["User"]["LANGUAGE_ID"],
	];

	$userFields = $this->getUserFields();
	$userFieldInfos = $this->getUserFieldInfos();

	foreach($userFields as $fieldName => $userField)
	{
		$fieldValue = isset($userField['VALUE']) ? $userField['VALUE'] : '';
		$fieldData = isset($userFieldInfos[$fieldName])
			? $userFieldInfos[$fieldName] : null;

		if(!is_array($fieldData))
		{
			continue;
		}

		$isEmptyField = true;
		$fieldParams = $fieldData['data']['fieldInfo'];
		if((is_string($fieldValue) && $fieldValue !== '')
			|| (is_array($fieldValue) && !empty($fieldValue))
		)
		{
			$fieldParams['VALUE'] = $fieldValue;
			$isEmptyField = false;
		}

		$fieldSignature = $this->userFieldDispatcher->getSignature($fieldParams);
		if($isEmptyField)
		{
			$data[$fieldName] = array(
				'SIGNATURE' => $fieldSignature,
				'IS_EMPTY' => true
			);
		}
		else
		{
			$data[$fieldName] = array(
				'VALUE' => $fieldValue,
				'SIGNATURE' => $fieldSignature,
				'IS_EMPTY' => false
			);
		}
	}

	if (!$result["Permissions"]['edit'] && !empty($result['SettingsFieldsView']))
	{
		$filterFields = array_column($result['SettingsFieldsView'], 'VALUE');
		foreach ($data as $key => $value)
		{
			if (!in_array($key, $filterFields))
			{
				if (is_array($value) && isset($value['VALUE']))
				{
					unset($value['VALUE']);
				}
				else
				{
					$value = '';
				}

				$data[$key] = $value;
			}
		}
	}

	return $data;
}