I zend_form
ve zend_decorator
ile ilgili sorunlar yaşıyorum.
Ben liste öğelerini kullanmak için tüm formları varsayılan bir dekoratör sınıf yarattık, ancak çalışıyor görünmüyor!
Esasen my_decorator_design
uzanır zend_form
ve sonra benim formları dekoratör uzatmak.
Fikirler?
class My_Decorator_Design extends Zend_Form {
public function loadDefaultDecorators() {
$this->addDecorator('FormElements')
->addDecorator('HtmlTag', array('tag' => 'ul')) //this adds a <ul> inside the <form>
->addDecorator('Form');
$this->setElementDecorators(array(
'ViewHelper',
'Label',
'Errors',
new Zend_Form_Decorator_HtmlTag(array('tag' => 'li')) //wrap elements in <li>'s
));
$this->setDisplayGroupDecorators(array(
'FormElements',
'Fieldset',
new Zend_Form_Decorator_HtmlTag(array('tag' => 'li')), //wrap groups in <li>'s too
new Zend_Form_Decorator_HtmlTag(array('tag' => 'ul'))
));
$this->setDisplayGroupDecorators(array(
'FormElements',
'Fieldset',
new Zend_Form_Decorator_HtmlTag(array('tag' => 'li')) //wrap groups in <li>'s too
));
}
}
class Forms_User_Update extends My_Decorator_Design {
public function __construct($options=array()) {
parent::__construct($options);//if we ever want to pass on things to zend_form
$this->setName('user_update');
$this->loadDefaultDecorators();
//user_name, first_name, email, password, date_of_birth
$user_name = new Zend_Form_Element_Text('user_name');
$first_name = new Zend_Form_Element_Text('first_name');
$email = new Zend_Form_Element_Text('email');
$password = new Zend_Form_Element_Password('password');
$password2 = new Zend_Form_Element_Password('password2');
$submit = new Zend_Form_Element_Submit('Submit');
$user_name->setRequired(true)
->setLabel('Username');
$first_name->setRequired(false)
->setLabel('First Name');
$email->setRequired(true)
->setLabel('Email:')
->addFilter('StringToLower')
->addValidator('NotEmpty', true)
->addValidator('EmailAddress');
$password->setLabel('Password:')
->setRequired(false)
->setIgnore(false)
->addValidator('stringLength', false, array(6));
$password2->setLabel('Confirm Password:')
->setRequired(false)
->setIgnore(true);
$submit->setLabel("Submit")
->setIgnore(true);
$this->addElements(array(
$user_name, $first_name, $email, $password, $password2, $submit
));
//$this->Submit->removeDecorator('Label');
//$this->addElementPrefixPath('My_Decorator', 'My/Decorator/', 'decorator');
$this->setMethod('post');
$this->setAction('/update-account');
}
}