/** * @param FieldType $fieldType * @param array $field * @param array $request * @return null|int */ protected static function extractValue(FieldType $fieldType, array $field, array $request) { $value = Base::extractValue($fieldType, $field, $request); if ($value !== null && is_string($value) && strlen($value) > 0) { if (\CBPActivity::isExpression($value)) { return $value; } $value = str_replace(' ', '', $value); if (preg_match('#^[0-9\\-]+$#', $value)) { $value = (int) $value; } else { $value = null; static::addError(array('code' => 'ErrorValue', 'message' => Loc::getMessage('BPDT_INT_INVALID'), 'parameter' => static::generateControlName($field))); } } else { $value = null; } return $value; }
/** * @param FieldType $fieldType * @param array $field * @param array $request * @return null|int */ protected static function extractValue(FieldType $fieldType, array $field, array $request) { $value = parent::extractValue($fieldType, $field, $request); if (is_array($value) && !empty($value['name']) && !empty($value['tmp_name'])) { if (!is_uploaded_file($value['tmp_name'])) { $value = null; static::addError(array('code' => 'ErrorValue', 'message' => Loc::getMessage('BPDT_FILE_SECURITY_ERROR'), 'parameter' => static::generateControlName($field))); } else { if (!array_key_exists('MODULE_ID', $value) || strlen($value['MODULE_ID']) <= 0) { $value['MODULE_ID'] = 'bizproc'; } $value = \CFile::saveFile($value, 'bizproc_wf', true, true); if (!$value) { $value = null; static::addError(array('code' => 'ErrorValue', 'message' => Loc::getMessage('BPDT_FILE_INVALID'), 'parameter' => static::generateControlName($field))); } } } else { $value = null; } return $value; }
/** * @param FieldType $fieldType * @param array $field * @param array $request * @return null|mixed */ protected static function extractValue(FieldType $fieldType, array $field, array $request) { $value = parent::extractValue($fieldType, $field, $request); $options = static::getFieldOptions($fieldType); $showError = false; if ($value === '' || sizeof($options) <= 0) { $value = null; } elseif ($value !== null && !isset($options[$value])) { $value = null; $showError = true; } if ($showError) { static::addError(array('code' => 'ErrorValue', 'message' => Loc::getMessage('BPDT_SELECT_INVALID'), 'parameter' => static::generateControlName($field))); } return $value; }
/** * @param FieldType $fieldType * @param array $field * @param array $request * @return float|null */ protected static function extractValue(FieldType $fieldType, $field, $request) { $value = parent::extractValue($fieldType, $field, $request); if ($value !== null && is_string($value) && strlen($value) > 0) { if (\CBPActivity::isExpression($value)) { return $value; } $value = str_replace(' ', '', str_replace(',', '.', $value)); if (is_numeric($value)) { $value = (double) $value; } else { $value = null; static::addError(array('code' => 'ErrorValue', 'message' => Loc::getMessage('BPDT_DOUBLE_INVALID'), 'parameter' => static::generateControlName($field))); } } else { $value = null; } return $value; }
/** * @param FieldType $fieldType * @param array $field * @param array $request * @return null|string */ protected static function extractValue(FieldType $fieldType, array $field, array $request) { $value = parent::extractValue($fieldType, $field, $request); if ($value !== null && $value !== 'Y' && $value !== 'N') { if (is_bool($value)) { $value = $value ? 'Y' : 'N'; } elseif (is_string($value) && strlen($value) > 0) { $value = strtolower($value); if (in_array($value, array('y', 'yes', 'true', '1'))) { $value = 'Y'; } elseif (in_array($value, array('n', 'no', 'false', '0'))) { $value = 'N'; } else { $value = null; static::addError(array('code' => 'ErrorValue', 'message' => Loc::getMessage('BPDT_BOOL_INVALID'), 'parameter' => static::generateControlName($field))); } } else { $value = null; } } return $value; }
/** * @param FieldType $fieldType Document field type. * @param array $field Form field. * @param array $request Request data. * @return array|null */ protected static function extractValue(FieldType $fieldType, array $field, array $request) { $value = parent::extractValue($fieldType, $field, $request); $result = null; if (is_string($value) && strlen($value) > 0) { $errors = array(); $result = \CBPHelper::usersStringToArray($value, $fieldType->getDocumentType(), $errors); if (sizeof($errors) > 0) { static::addErrors($errors); } } return $result; }
/** * @param FieldType $fieldType * @param array $field * @param array $request * @return null|mixed */ protected static function extractValue(FieldType $fieldType, array $field, array $request) { $value = parent::extractValue($fieldType, $field, $request); if (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; }
/** * @param FieldType $fieldType * @param array $field * @param array $request * @return null|string */ protected static function extractValue(FieldType $fieldType, array $field, array $request) { $value = parent::extractValue($fieldType, $field, $request); if ($value !== null && is_string($value) && strlen($value) > 0) { $format = static::getType() == FieldType::DATETIME ? \FORMAT_DATETIME : \FORMAT_DATE; if (!\CheckDateTime($value, $format)) { $value = null; static::addError(array('code' => 'ErrorValue', 'message' => Loc::getMessage('BPDT_DATE_INVALID'), 'parameter' => static::generateControlName($field))); } else { $value = \ConvertDateTime($value, $format); } } else { $value = null; } return $value; }