Il y a plusieurs façons. Vous pouvez rouler vos propres aides de vue d'élément (qui pourraient devenir plutôt maladroites bientôt je devine).
Ou ... vous pouvez utiliser un ViewScript pour la forme, comme celui-ci (par exemple très basique):
class Your_Form extends Zend_Form
{
public function init()
{
$this->setDecorators(array(
'PrepareElements',
array('ViewScript', array('viewScript' => 'path/to/viewscript.phtml'))
));
// only use basic decorators for elements
$decorators = array(
'ViewHelper',
'Label',
'Errors'
);
// create some element
$someElement = new Zend_Form_Element_Text('someElement');
// set the basic decorators for this element and set a css class
$someElement->setDecorators($decorators)
->setAttrib('class', 'someCssClass');
// add (potentially multiple) elements to this from
$this->addElements(array(
$someElement
));
}
}
Voir la standard decorators section about PrepareElements pourquoi il est nécessaire d'avoir le décorateur de PrepareElements ensemble pour la forme, lorsque en utilisant le décorateur ViewScript.
Ensuite, dans le ViewScript:
<?
// the form is available to the viewscript as $this->element
$form = $this->element;
?>
<!-- put whatever html you like in this script and render the basic element decorators seperately -->
<div>
<? if($form->someElement->hasErrors()): ?>
<?= $form->someElement->renderErrors() ?>
<? endif; ?>
<?= $form->someElement->renderLabel(); ?>
<?= $form->someElement->renderViewHelper(); ?>
</div>
Merci, c'est ce dont j'ai besoin. à votre santé – Hanseh