function registerValidators() { $section =& $this->getSection(); $form =& $section->getForm(); rexValidateEngine::register_object('captcha', $this->captcha); rexValidateEngine::register_criteria('equals', 'captcha->isValidCode', $form->getName()); parent::registerValidators(); }
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()); } } }
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); } } }