• Модуль: intranet
  • Путь к файлу: ~/bitrix/modules/intranet/lib/component/userprofile/form.php
  • Класс: BitrixIntranetComponentUserProfileForm
  • Вызов: Form::getUserFieldInfos
public function getUserFieldInfos()
{
	if($this->userFieldInfos !== null)
	{
		return $this->userFieldInfos;
	}

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

	$enumerationFields = array();
	foreach($userFields as $userField)
	{
		$fieldName = $userField['FIELD_NAME'];
		$fieldInfo = array(
			'USER_TYPE_ID' => $userField['USER_TYPE_ID'],
			'ENTITY_ID' => $this->userFieldEntityId,
			'ENTITY_VALUE_ID' => $this->userId,
			'FIELD' => $fieldName,
			'MULTIPLE' => $userField['MULTIPLE'],
			'MANDATORY' => $userField['MANDATORY'],
			'SETTINGS' => isset($userField['SETTINGS']) ? $userField['SETTINGS'] : null
		);

		if($userField['USER_TYPE_ID'] === 'enumeration')
		{
			$enumerationFields[$fieldName] = $userField;
		}

		$this->userFieldInfos[$fieldName] = array(
			'name' => $fieldName,
			'title' => isset($userField['EDIT_FORM_LABEL']) ? $userField['EDIT_FORM_LABEL'] : $fieldName,
			'type' => 'userField',
			'data' => array('fieldInfo' => $fieldInfo),
			'editable' => $userField['EDIT_IN_LIST'] == "Y" ? true : false
		);

		if(isset($userField['MANDATORY']) && $userField['MANDATORY'] === 'Y')
		{
			$this->userFieldInfos[$fieldName]['required'] = true;
		}
	}

	if(!empty($enumerationFields))
	{
		$enumInfos = $this->prepareEnumerationInfos($enumerationFields);
		foreach($enumInfos as $fieldName => $enums)
		{
			if(isset($this->userFieldInfos[$fieldName])
				&& isset($this->userFieldInfos[$fieldName]['data'])
				&& isset($this->userFieldInfos[$fieldName]['data']['fieldInfo'])
			)
			{
				$this->userFieldInfos[$fieldName]['data']['fieldInfo']['ENUM'] = $enums;
			}
		}
	}

	return $this->userFieldInfos;
}