Beispiel #1
0
 /**
  * @param FieldType $fieldType
  * @param array $field
  * @param mixed $value
  * @param bool $allowSelection
  * @param int $renderMode
  * @return string
  */
 protected static function renderControl(FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
 {
     $renderResult = parent::renderControl($fieldType, $field, $value, $allowSelection, $renderMode);
     if ($allowSelection) {
         $renderResult .= static::renderControlSelector($field);
     }
     return $renderResult;
 }
Beispiel #2
0
 /**
  * @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;
 }
Beispiel #3
0
 /**
  * @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;
 }
Beispiel #4
0
 /**
  * @param FieldType $fieldType Document field type.
  * @param array $field Form field.
  * @param array $request Request data.
  * @return array
  */
 public static function extractValueMultiple(FieldType $fieldType, array $field, array $request)
 {
     $name = $field['Field'];
     $value = isset($request[$name]) ? $request[$name] : array();
     if (!is_array($value) || is_array($value) && \CBPHelper::isAssociativeArray($value)) {
         $value = array($value);
     }
     $value = array_unique($value);
     $request[$name] = $value;
     return parent::extractValueMultiple($fieldType, $field, $request);
 }
Beispiel #5
0
 /**
  * @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;
 }
Beispiel #6
0
 /**
  * @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;
 }
Beispiel #7
0
 /**
  * @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;
 }
Beispiel #8
0
 /**
  * @param FieldType $fieldType Document field type.
  * @param mixed $value Field value.
  * @param string $toTypeClass Type class name.
  * @return array
  */
 public static function convertValueMultiple(FieldType $fieldType, $value, $toTypeClass)
 {
     if (is_array($value) && \CBPHelper::isAssociativeArray($value)) {
         $value = array_keys($value);
     }
     return parent::convertValueMultiple($fieldType, $value, $toTypeClass);
 }
 /**
  * @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;
 }
Beispiel #10
0
 /**
  * @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;
 }