Zend Form semantycznie

pyt Q

Witam,
W jaki sposób generujecie semantyczne formularze w Zend_Framework? Domyślnie w Zend_Form używane są z .
Lepiej było by uporządkować wszystko za pomocą i . A co z submitem? Jeśli jest tylko jeden, to do osobnego fieldseta? W które miejsce komunikaty o błędach?
Poniżej, dla przykładu, jedna z moich prób, wersja z .
<?php /** takeshin 1.0 */ class My_Form extends Zend_Form { // PROPERTIES
protected $_standardElementDecorator = array( 'ViewHelper', array('Label'), array('HtmlTag', array('tag'=>'li')) );
protected $_buttonElementDecorator = array( 'ViewHelper' );
protected $_standardGroupDecorator = array( 'FormElements', array('HtmlTag', array('tag'=>'ol')), 'Fieldset' );
protected $_buttonGroupDecorator = array( 'FormElements', // array('HtmlTag', array('tag'=>'div')),
// 'Fieldset' );
public function __construct($options = null) { parent::__construct($options);
$this->setAttrib('accept-charset', 'UTF-8'); $this->setDecorators(array( 'FormElements', array('HtmlTag', array('tag'=>'div')), 'Form' )); } }
class My_Form_AuthorLogin extends My_Form {
public function init() { $this->setAction('/author/login');
// Display Group #1 : Credentials
$this->addElement('text', 'name', array( 'decorators' => $this->_standardElementDecorator, 'label' => 'Name:' ));
$this->addElement('password', 'password', array( 'decorators' => $this->_standardElementDecorator, 'label' => 'Password:' ));
$this->addDisplayGroup( array('name', 'password'), 'authorlogin', array( 'disableLoadDefaultDecorators' => true, 'decorators' => $this->_standardGroupDecorator, 'legend' => 'Credentials' ) );
// Display Group #2 : Submit
$this->addElement('submit', 'submit', array( 'decorators' => $this->_buttonElementDecorator, 'label' => 'Submit' ));
$this->addDisplayGroup( array('submit'), 'authorloginsubmit', array( 'disableLoadDefaultDecorators' => true, 'decorators' => $this->_buttonGroupDecorator ) ); }
}

odp A

Witam,
W jaki sposób generujecie semantyczne formularze w Zend_Framework? Domyślnie w Zend_Form używane są z .
Lepiej było by uporządkować wszystko za pomocą i . A co z submitem? Jeśli jest tylko jeden, to do osobnego fieldseta? W które miejsce komunikaty o błędach?
takeshin pisze:
To trochę pytanie na grupę pl.comp.
My way:

Legend
Name:



Ogólnie: - Nie lubię wymuszania fieldsetów i legendów na siłę. Osobiście stosowałbym je tylko wtedy, gdy rzeczywiście mam grupy pól w formularzu. Wkurza mnie jednak marudzenie walidatora (bo trudniej debugować HTML), więc pakuję dla świętego spokoju całość w jeden fieldset. - Pola wolę rozdzielać DIVami, a to dlatego, że przy skomplikowanych formularzach mogę manewrować kolumnami i wierszami (mam takie uniwersalne klasy div class=col/row), mam więc większą elastyczność niż w DL. - Komunikaty ze względów accessibility najlepiej pakować do LABEL (bo w trybie czytania formularza wszelkie komunikaty zamknięte w P i tak są pomijane - czytane są tylko części składowe formularza, do których LABEL się zaliczył). - Nigdy nie podobały mi się domyślne dekoratory w Zend Framework z DLkami. - Pierwsze działania to napisanie własnych dla wspomnianych układów opartych o DIV. - A ostatnio w ogóle się obraziłem i tworzę formularze z palca w szablonie. A to dlatego, że są na tyle pomieszane i skomplikowane w budowie, że pisanie ciągle nowych dekoratorów mijało się z celem. Stosuję więc w praktyce tylko Zend_Validate i Zend_Filter rezygnując z dobrodziejstw Zend_Form. Świadomie odrzucam płynące z tego dobrodziejstwa, ale to dlatego, że wywodzę się raczej ze świata koderów HTML/CSS/JS niż programistów PHP i klepanie HTMLa z palca to dla mnie fun ;)

odp A

takeshin pisze: Witam,
W jaki sposób generujecie semantyczne formularze w Zend_Framework? Domyślnie w Zend_Form używane są z .
Lepiej było by uporządkować wszystko za pomocą i . A co z submitem? Jeśli jest tylko jeden, to do osobnego fieldseta? W które miejsce komunikaty o błędach?
To trochę pytanie na grupę pl.comp.
My way:
Radek N. pisze:
Dla type="image" chodziło mi oczywiście o alt="Send"

odp A

Stosuję więc w praktyce tylko Zend_Validate i Zend_Filter rezygnując z dobrodziejstw Zend_Form. Świadomie odrzucam płynące z tego dobrodziejstwa, ale to dlatego, że wywodzę się raczej ze świata koderów HTML/CSS/JS niż programistów PHP i klepanie HTMLa z palca to dla mnie fun ;)
Też tak robiłem, ale kusi mnie generowanie formularzy na podstawie plików .ini. Podzielisz się wrapperem do generowania takich formularzy "your_way"?.
BTW, nie za dużo divów? Poprawnie, waliduje się, nie zaśmieca, ale nie wprowadza też żadnych istotnych informacji semantycznych. Czyli, że jeśli nie wykorzystasz ich w CSS albo JS, są niepotrzebne.

Dodaj odpowiedź

Tytuł:

Mail: (w celu weryfikacji posta)