• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/component/baseform.php
  • Класс: BitrixCatalogComponentBaseForm
  • Вызов: BaseForm::getUserFieldType
protected function getUserFieldType(array $userField): string
{
	$isMultiple = $userField['MULTIPLE'] === 'Y';
	switch ($userField['USER_TYPE_ID'])
	{
		case UserFieldTypesBooleanType::USER_TYPE_ID:
			$result = ControlType::BOOLEAN;
			break;
		case UserFieldTypesDateTimeType::USER_TYPE_ID:
		case UserFieldTypesDateType::USER_TYPE_ID:
			$result = $isMultiple ? ControlType::MULTI_DATETIME : ControlType::DATETIME;
			break;
		case UserFieldTypesDoubleType::USER_TYPE_ID:
		case UserFieldTypesIntegerType::USER_TYPE_ID:
			$result = $isMultiple ? ControlType::MULTI_NUMBER : ControlType::NUMBER;
			break;
		case UserFieldTypesEnumType::USER_TYPE_ID:
			$result = $isMultiple ? ControlType::MULTI_LIST : ControlType::LIST;
			break;
		case UserFieldTypesFileType::USER_TYPE_ID:
			$result = ControlType::CUSTOM;
			break;
		case UserFieldTypesStringFormattedType::USER_TYPE_ID:
			$result = ControlType::TEXTAREA; // TODO: need replace
			break;
		case UserFieldTypesStringType::USER_TYPE_ID:
			$result = $isMultiple ? ControlType::MULTI_TEXT : ControlType::TEXT;
			break;
		case UserFieldTypesUrlType::USER_TYPE_ID:
			$result = ControlType::LINK;
			break;
		default:
			if (
				Loader::includeModule('highloadblock')
				&& $userField['USER_TYPE_ID'] === CUserTypeHlblock::USER_TYPE_ID
			)
			{
				$result = $isMultiple ? ControlType::MULTI_LIST : ControlType::LIST;
			}
			else
			{
				$result = ControlType::TEXT;
			}
	}

	return $result;
}