Ver Mensaje Individual
  #13 (permalink)  
Antiguo 29/12/2007, 11:45
Avatar de GatorV
GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 7 meses
Puntos: 2135
Re: Clase Formulario

No importa que los tengas que crear, por decir te dejo un ejemplo del Beta de mi clase form de mi libreria:
Código PHP:
$usrTxt = new GeckoFormFieldTextbox"usuario" );
$pwdTxt = new GeckoFormFieldPassword();
$confirmpwdTxt = new GeckoFormFieldPassword();

$noEmpty = new GeckoFormFieldValidatorEmpty(false"El campo no puede estar vacio");
$validLength = new GeckoFormFieldValidatorLength(5,30"El campo solo acepta entre 5 y 30 caracteres");
$equal = new GeckoFormValidatorEquals$pwdTxt$confirmpwdTxt );

$usrTxt->addValidator$noEmpty )->addValidator$validLength );
$pwdTxt->addValidator$noEmpty );

$form = new GeckoForm();
$form->addField$usrTxt )->addField$pwdTxt )->addField$confirmpwdTxt );

if( 
$form->validate() ) {
         
$user $usrTxt->getValue();
         
$pwd $pwdTxt->getValue();

Lo que hace el metodo validate de la clase form es primero ciclar por todos los validadores de formulario, y posteriormente por todos los validadores de los campos que tenga (cada campo tiene un metodo validate()).

Todo se hace con dos interfaces:
Código PHP:
interface GeckoFormValidatorInterface {
        public function 
validate();
        public function 
getErrorMessage();
        public function 
getHTMLErrorMessage();
        public function 
getErrorCode();
}

interface 
GeckoFormFieldValidatorInterface {
        public function 
validate(GeckoFormFieldInterface $field);
        public function 
getErrorMessage();
        public function 
getHTMLErrorMessage();
        public function 
getErrorCode();

Asi no importa si cada validador tiene diferentes mensajes o diferentes argumentos, con que implementen la interfaz la clase form puede validar el campo.

Saludos.

Última edición por GatorV; 29/12/2007 a las 13:04