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