Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour
J'utilise Zend_Form pour générer un formulaire avec le code suivant :
<?php
class forms_AjouterMembreForm extends Zend_Form
{
public function __construct($options = null)
{
parent::__construct($options);
$this->setName('ajoutermembre');
$this->addElementPrefixPath('decorators', 'decorators/', 'decorator');
$pseudo = new Zend_Form_Element_Text('pseudo');
$pseudo->setLabel('Utilisateur')
->setRequired(true)
->addValidator('NotEmpty')
->addDecorator('HtmlTag', array('tag' => 'p'));
$password = new Zend_Form_Element_Password('password');
$password->addDecorator(new decorators_BulleAide())
->setDescription('bidule')
->setLabel('Mot de passe')
->setRequired(true)
->addValidator('NotEmpty')
->addDecorator('HtmlTag', array('tag' => 'p'));
$password_confirmation = new Zend_Form_Element_Password('password_confirmation');
$password_confirmation->addDecorator('HtmlTag', array('tag' => 'p'))
->setLabel('Confirmation')
//Validateur defini dans /models/validateurs/ValeurEgale.php
->addValidator(new validateurs_ValeurEgale($_POST['password']));
$submit = new Zend_Form_Element_Submit('submit');
$submit->setLabel('Valider l\'inscription');
$this->addElements(array($pseudo,$password,$password_confirmation,$submit));
}
}
?>J'essaie désespérement de remplacer les <dd> et <dt> générés par Zend_Form, et j'y suis parvenu en partie :
<form name="ajoutermembre" id="ajoutermembre" enctype="application/x-www-form-urlencoded" action="" method="post"><dl class="zend_form"> <dt><label for="pseudo" class="required">Utilisateur</label></dt> <p> <input type="text" name="pseudo" id="pseudo" value=""></p> <dt><label for="password" class="required">Mot de passe</label></dt> <p> <input type="password" name="password" id="password" value=""></p><div class="aide">bidule</div> <dt><label for="password_confirmation" class="optional">Confirmation</label></dt> <p> <input type="password" name="password_confirmation" id="password_confirmation" value=""></p> <dt></dt><dd> <input type="submit" name="submit" id="submit" value="Valider l'inscription"></dd></dl></form>
Résultat : les <label> sortent du <p> ![]()
Pour info, j'ai un décorateur personnalisé :
<?php
class decorators_BulleAide extends Zend_Form_Decorator_Abstract
{
public function preparerAide()
{
$element = $this->getElement();
$desc = $element->getDescription();
return '<div class="aide">' . $desc . '</div>';
}
public function render($content)
{
$element = $this->getElement();
$aide = $this->preparerAide();
$output = $aide;
return $content . $output;
}
}Si quelqu'un peut m'aider à y voir clair...merci d'avance
Dernière modification par fetard (17-04-2008 12:48:00)
Hors ligne
A mon avis c'est normal.
Pour avoir ce code :
<dt></dt><dd><p class="form_element"><div><label for="NOM" class="required">Nom</label></div> <input type="text" name="NOM" id="NOM" value="" /></p></dd> <dt></dt>
je dois ajouter ce décorateur :
$this->setElementDecorators(array(
'ViewHelper',
'Errors',
array('Label', array('tag' => 'div')), //-- Si on ne met pas, n'est pas affiché
array('decorator'=> array('p' => 'HtmlTag'),'options' => array('tag' => 'p', 'class' => 'form_element')),
array('DtDdWrapper')
));La, j'applique à tous les éléments, à toi d'adapter pour chaque éléments.
Dernière modification par whitespirit (21-04-2008 09:40:58)
Hors ligne
Pages: 1