D'accord, j'ai découvert comment le faire. Peu à peu, les décorateurs commencent à faire sens pour moi:
$decorators = array(
'Label',
array('Errors', array('placement' => 'prepend')),
array(array('dt' => 'HtmlTag'), array('tag' => 'dt')),
array(array('ddOpen' => 'HtmlTag'), array('tag' => 'dd', 'openOnly' => true, 'placement' => 'append')),
array('ViewHelper'),
array(array('ddClose' => 'HtmlTag'), array('tag' => 'dd', 'closeOnly' => true, 'placement' => 'append'))
);
Ce que cela fait est la suivante:
- premier rendu de l'étiquette
- Ensuite, ajoutez la mention (par défaut = append) les erreurs
- Envelopper (par défaut) tout le contenu précédent dans un HtmlTag (dt)
- Ensuite, ajoutez (default = wrap) une ouverture HtmlTag (dd)
- n append (par défaut) le ViewHelper
- Ensuite, ajoutez (par défaut = wrap) une HtmlTag fermeture (dd)
Définissez ensuite les décorateurs:
// be sure to only set them, after you have added the relevant elements to the form
$this->setElementDecorators($decorators);
PS:
Rendez-vous compte bien que mon exemple particulier produit invaliid html. ;-) J'ai seulement découvert plus tard que <ul>
éléments ne sont pas autorisés dans <dt>
éléments avec DOCTYPE
HTML 4.01 strict
Assurez-vous que vous acceptez votre réponse, il apparaît comme résolu :) – jhogendorn
je veux, mais vous ne pouvez pas accepter votre propre répondez dans les 24h. –