コード例 #1
0
 function registerValidators()
 {
     $section =& $this->getSection();
     $form =& $section->getForm();
     rexValidateEngine::register_object('captcha', $this->captcha);
     rexValidateEngine::register_criteria('equals', 'captcha->isValidCode', $form->getName());
     parent::registerValidators();
 }
コード例 #2
0
 function registerValidators()
 {
     $section =& $this->getSection();
     $form =& $section->getForm();
     $validators =& $this->getValidators();
     for ($i = 0; $i < count($validators); $i++) {
         $validator =& $validators[$i];
         if (($pos = strpos($validator['criteria'], ':')) === false) {
             // Validierung ohne Parameter
             rexValidateEngine::register_validator($this->_getValidatorId($validator['criteria']), $this->getName(), $validator['criteria'], $validator['empty'], $validator['halt'], $validator['transform'], $form->getName());
         } else {
             // validierung mit Parametern
             rexValidateEngine::register_validator($this->_getValidatorId($validator['criteria']), $this->getName() . substr($validator['criteria'], $pos), substr($validator['criteria'], 0, $pos), $validator['empty'], $validator['halt'], $validator['transform'], $form->getName());
         }
     }
 }
コード例 #3
0
 function get($addDefaultFields = true)
 {
     if (isset($_POST['rexform_cancel_button'])) {
         // Abbrechen Button wurde gedrückt
         $this->redirect();
     } elseif (isset($_POST['rexform_delete_button'])) {
         // Löschen Button wurde gedrückt
         $this->delete();
         $this->redirect();
     }
     // Nur auf buttons reagieren, die von rex_form sind
     if (empty($_POST) || !empty($_POST) && empty($_POST['rexform_save_button']) && empty($_POST['rexform_update_button']) && empty($_POST['rexform_delete_button']) && empty($_POST['rexform_cancel_button'])) {
         // new form, we (re)set the session data
         rexValidateEngine::connect($this->getValidator());
         rexValidateEngine::register_form($this->getName(), true);
         // register our validators
         $this->registerValidators();
         return $this->_get($addDefaultFields);
     } else {
         // validate after a POST
         rexValidateEngine::connect($this->getValidator());
         if (rexValidateEngine::is_valid($_POST, $this->getName())) {
             $this->setMessage('Daten <span class="emphasize">erfolgreich</span> gespeichert!', FORM_INFO_MSG);
             // save values
             $this->save();
             if (isset($_POST['rexform_save_button'])) {
                 // Speichern Button wurde gedrückt
                 $this->redirect();
             } else {
                 // Übernehmen Button wurde gedrückt
                 // Formular wieder anzeigen
                 return $this->_get($addDefaultFields);
             }
         } else {
             $this->setMessage('Daten wurden <span class="emphasize">nicht</span> gespeichert!', FORM_ERROR_MSG);
             // error, redraw the form
             return $this->_get($addDefaultFields);
         }
     }
 }