Esempio n. 1
0
 /**
  * 
  * @param string $data
  * @return string
  */
 public function validateAction($data = null)
 {
     $settings = $GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_femanager.']['settings.']['edit.']['validation.'];
     $errorMessages = [];
     $fieldsToValidate = json_decode($data);
     if (count($fieldsToValidate) == 0) {
         return '{"validate":0}';
     }
     foreach ($fieldsToValidate as $field => $value) {
         # \TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump($settings[$field . '.']);
         $validation = '';
         switch ($field) {
             case 'firstName':
             case 'middlename':
             case 'lastname':
                 $validation = 'min(2),max(20),required';
                 break;
             case 'dateOfBirth':
                 $validation = 'date,required';
                 break;
             case 'cityId':
                 if ($value <= 0) {
                     $errorMessages['cityId'] = array('Город не указан');
                 }
                 break;
             case 'zip':
                 $validation = 'min(5),max(5),intOnly,required';
                 break;
             default:
         }
         if ($validation !== '') {
             $clientsideValidator = $this->clientsideValidator;
             $result = $clientsideValidator->setValidationSettingsString($validation)->setValue($value)->validateField();
             if (!$result) {
                 $messages[$field . '_field'] = $this->clientsideValidator->getMessages();
                 $this->clientsideValidator->setMessages(array());
             }
         }
     }
     if (is_array($messages) && count($messages) > 0) {
         foreach ($messages as $field => $fieldMessages) {
             foreach ($fieldMessages as $fieldMessage) {
                 $errorMessages[] = sprintf(LocalizationUtility::translate($fieldMessage, "femanager"), $field);
             }
         }
     }
     // \TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump($errorMessages);
     if (count($errorMessages) == 0) {
         $response = '{"validate": 1}';
     } else {
         $obj = array("validate" => 0, "messages" => $errorMessages);
         $response = json_encode($obj);
     }
     return $response;
 }
Esempio n. 2
0
 /**
  * Call this Action from eID to validate field values
  *
  * @param string $validation Validation string like "required, email, min(10)"
  * @param string $value Given Field value
  * @param string $field Fieldname like "username" or "email"
  * @param User $user Existing User
  * @param string $additionalValue Additional Values
  * @return void
  */
 public function validateAction($validation = null, $value = null, $field = null, User $user = null, $additionalValue = '')
 {
     $result = $this->clientsideValidator->setValidationSettingsString($validation)->setValue($value)->setFieldName($field)->setUser($user)->setAdditionalValue($additionalValue)->validateField();
     $this->view->assignMultiple(['isValid' => $result, 'messages' => $this->clientsideValidator->getMessages(), 'validation' => $validation, 'value' => $value, 'fieldname' => $field, 'user' => $user]);
 }