• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/userfield/dispatcher.php
  • Класс: BitrixMainUserFieldDispatcher
  • Вызов: Dispatcher::updateField
protected function updateField(array $fieldInfo)
{
	$userFieldInfo = $this->getUserFieldInfo($fieldInfo['ENTITY_ID'], $fieldInfo['FIELD']);

	if(is_array($userFieldInfo))
	{
		$updateField = array();

		if(array_key_exists('MANDATORY', $fieldInfo))
		{
			$updateField['MANDATORY'] = $fieldInfo['MANDATORY'];
		}

		if(array_key_exists('SHOW_FILTER', $fieldInfo))
		{
			$updateField['SHOW_FILTER'] = $fieldInfo['SHOW_FILTER'];
		}

		if(array_key_exists('SHOW_IN_LIST', $fieldInfo))
		{
			$updateField['SHOW_IN_LIST'] = $fieldInfo['SHOW_IN_LIST'];
		}

		if(array_key_exists('EDIT_IN_LIST', $fieldInfo))
		{
			$updateField['EDIT_IN_LIST'] = $fieldInfo['EDIT_IN_LIST'];
		}

		if(array_key_exists('IS_SEARCHABLE', $fieldInfo))
		{
			$updateField['IS_SEARCHABLE'] = $fieldInfo['IS_SEARCHABLE'];
		}

		if(array_key_exists('EDIT_FORM_LABEL', $fieldInfo))
		{
			$updateField['EDIT_FORM_LABEL'] = $this->checkLabel($fieldInfo['EDIT_FORM_LABEL']);
		}

		if(array_key_exists('LIST_COLUMN_LABEL', $fieldInfo))
		{
			$updateField['LIST_COLUMN_LABEL'] = $this->checkLabel($fieldInfo['LIST_COLUMN_LABEL']);
		}

		if(array_key_exists('LIST_FILTER_LABEL', $fieldInfo))
		{
			$updateField['LIST_FILTER_LABEL'] = $this->checkLabel($fieldInfo['LIST_FILTER_LABEL']);
		}

		if(array_key_exists('ERROR_MESSAGE', $fieldInfo))
		{
			$updateField['ERROR_MESSAGE'] = $this->checkLabel($fieldInfo['ERROR_MESSAGE']);
		}

		if(array_key_exists('HELP_MESSAGE', $fieldInfo))
		{
			$updateField['HELP_MESSAGE'] = $this->checkLabel($fieldInfo['HELP_MESSAGE']);
		}

		if(array_key_exists('SETTINGS', $fieldInfo) && is_array($fieldInfo['SETTINGS']))
		{
			$updateField['SETTINGS'] = array_merge($userFieldInfo['SETTINGS'], $fieldInfo['SETTINGS']);
		}

		if(!empty($updateField))
		{
			$userTypeEntity = new CUserTypeEntity();
			$updateResult = $userTypeEntity->update($userFieldInfo['ID'], $updateField);

			if(!$updateResult)
			{
				$this->getErrorFromApplicationException($fieldInfo);
				return false;
			}
		}
	}

	return $userFieldInfo['ID'];
}