• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/lib/bizproctype/usertypeproperty.php
  • Класс: BitrixIblockBizprocTypeUserTypeProperty
  • Вызов: UserTypeProperty::extractValue
static function extractValue(FieldType $fieldType, array $field, array $request)
	{
		$value = parent::extractValue($fieldType, $field, $request);
		if (is_array($value) && isset($value['VALUE']))
			$value = $value['VALUE'];

		$userType = static::getUserType($fieldType);

		if (array_key_exists('GetLength', $userType))
		{
			if (call_user_func_array(
					$userType['GetLength'],
					array(
						array('LINK_IBLOCK_ID' => $fieldType->getOptions()),
						array('VALUE' => $value)
					)
				) <= 0)
			{
				$value = null;
			}
		}

		if ($value != null && array_key_exists('CheckFields', $userType))
		{
			$errors = call_user_func_array(
				$userType['CheckFields'],
				array(
					array('LINK_IBLOCK_ID' => $fieldType->getOptions()),
					array('VALUE' => $value)
				)
			);
			if (sizeof($errors) > 0)
			{
				$value = null;
				foreach ($errors as $e)
					static::addError(array(
						'code' => 'ErrorValue',
						'message' => $e,
						'parameter' => static::generateControlName($field),
					));
			}
		}
		elseif ($value === '' && !array_key_exists('GetLength', $userType))
			$value = null;

		return $value;
	}