Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 30-06-2009 09:48:41

matdev
Membre
Date d'inscription: 31-03-2009
Messages: 172

[RESOLU][Zend 1.8][Zend_Form]Style de mes formulaires

Bonjour à tous

Voilà je passe un peu de temps à améliorer la visualisation de mes champs aujourd'hui et je recherche un moyen de mettre en valeur certains champs d'un formulaire en fonction de leurs caractéristiques.

Deux caractéristiques principales :
- le champ est obligatoire (que je pense signaler simplement par un "astérix" lol)
- le champ utilisant un tableau de choix en js (changer la couleur de fond ou de la bordure du champ ou du label)

Pour le premier rien de compliquer je positionne un astérisque dans mon label mais pour la seconde partie je ne sais pas trop comment m'y prendre pour mettre en valeur mon champ quelqu'un a-t-il une idée ?

Dernière modification par matdev (09-07-2009 09:21:11)

Hors ligne

 

#2 30-06-2009 10:58:18

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [RESOLU][Zend 1.8][Zend_Form]Style de mes formulaires

Pour ton label, tu peux passé par la conf du décorateur :
array('Label', array('requiredPrefix' => '<em>*</em>', 'escape' => false))

Pour le 2/, as tu pensé aux CSS ?
array('Label', array('class' => 'maClass'))


----
Gruiiik !

Hors ligne

 

#3 30-06-2009 11:07:08

matdev
Membre
Date d'inscription: 31-03-2009
Messages: 172

Re: [RESOLU][Zend 1.8][Zend_Form]Style de mes formulaires

Merci nORKy
Je vais jeter un oeil aux décorateurs, je n'ai pas encore utiliser cette particularité de Zend.
Connaissez-vous des tutoriaux sur cet élément?

Dernière modification par matdev (30-06-2009 11:12:31)

Hors ligne

 

#4 30-06-2009 13:55:31

aelyta1
Membre
Lieu: Rouen
Date d'inscription: 29-06-2009
Messages: 98

Re: [RESOLU][Zend 1.8][Zend_Form]Style de mes formulaires

Je suis moi aussi en train de me pencher sur les décorateurs de formulaire, je suis en train de parcourir ce tuto :
http://devzone.zend.com/article/3450
Il a l'air pas mal.
Sinon la doc officielle est assez complète aussi


veni, vidi, riendi
Vive les lapins-antilopes !

Hors ligne

 

#5 02-07-2009 17:36:37

ced93
Nouveau membre
Date d'inscription: 02-07-2009
Messages: 1

Re: [RESOLU][Zend 1.8][Zend_Form]Style de mes formulaires

J'ai une question concernant l'application des décorateurs, en fait je voulais savoir comment appliquer mon décorateur a tous les éléments de mon formulaire en une seule fois, au lieu de

Code:

$userName->setDecorators(array('Obligatoire'));
...
$password->setDecorators(array('Obligatoire'));

Merci d'avance

Hors ligne

 

#6 06-07-2009 09:09:03

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [RESOLU][Zend 1.8][Zend_Form]Style de mes formulaires

$form->setElementDecorators(...)


----
Gruiiik !

Hors ligne

 

#7 07-07-2009 09:59:59

matdev
Membre
Date d'inscription: 31-03-2009
Messages: 172

Re: [RESOLU][Zend 1.8][Zend_Form]Style de mes formulaires

nORKy a écrit:

Pour ton label, tu peux passé par la conf du décorateur :
array('Label', array('requiredPrefix' => '<em>*</em>', 'escape' => false))

Pour le 2/, as tu pensé aux CSS ?
array('Label', array('class' => 'maClass'))

Je reviens un peu sur les décorateurs car j'ai un peu de mal à comprendre leur mise en place.
Ces éléments cités par nORKy ci-dessus sont appelés au niveau de mon modele de formulaire ou dans le controleur lors de la creation de l'objet ?

Hors ligne

 

#8 07-07-2009 11:36:06

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [RESOLU][Zend 1.8][Zend_Form]Style de mes formulaires

Les décorateurs sont à utilisés lors de la création de l'élément de ton formulaire


----
Gruiiik !

Hors ligne

 

#9 07-07-2009 11:38:20

matdev
Membre
Date d'inscription: 31-03-2009
Messages: 172

Re: [RESOLU][Zend 1.8][Zend_Form]Style de mes formulaires

nORKy a écrit:

Les décorateurs sont à utilisés lors de la création de l'élément de ton formulaire

de la maniere suivante donc :
$userName->setDecorators(array('Label', array('requiredPrefix' => '<em>*</em>', 'escape' => false)));

Hors ligne

 

#10 07-07-2009 11:42:13

aelyta1
Membre
Lieu: Rouen
Date d'inscription: 29-06-2009
Messages: 98

Re: [RESOLU][Zend 1.8][Zend_Form]Style de mes formulaires

Si tu utilises setDecorators(array(blabla) tu dois redéfinir les autres décorateurs (ViewHelper, Errors, HtmlTag...) Sinon pour ne redéfinir qu'un seul décorateur utilise addDecorators(array(blabla))


veni, vidi, riendi
Vive les lapins-antilopes !

Hors ligne

 

#11 07-07-2009 11:48:33

matdev
Membre
Date d'inscription: 31-03-2009
Messages: 172

Re: [RESOLU][Zend 1.8][Zend_Form]Style de mes formulaires

ok merci aelyta1 par contre est-il que la définition suivante :

addDecorators(array('Label', array('requiredPrefix' => '<em>*</em>', 'escape' => false)))

soit prise en compte directement par tous les éléments de mes formulaires étant obligatoires sans avoir à l'ajouter pour chaque élément?

Dernière modification par matdev (07-07-2009 11:51:36)

Hors ligne

 

#12 07-07-2009 11:56:16

matdev
Membre
Date d'inscription: 31-03-2009
Messages: 172

Re: [RESOLU][Zend 1.8][Zend_Form]Style de mes formulaires

J'ai ajouté
addDecorators(array('Label', array('requiredPrefix' => '<em>*</em>', 'escape' => false))) sur un élément de mon formulaire :

Code:

<?php
class ArticlesForm extends Zend_Form 
{ 
    public function __construct($options = null) 
    { 
        parent::__construct($options);
        $this->setName('creationarticle');        
        $id = new Zend_Form_Element_Hidden('id');     
        $typearticle = new Zend_Form_Element_Text('Types_articles_id');
        $typearticle->setLabel('Type d\'articles')
                  ->setRequired(true)
                  ->setAttrib('onFocus','champsur(this)')
                  ->addValidator('NotEmpty')
                  ->addDecorators(array('Label', array('requiredPrefix' => '<em>*</em>', 'escape' => false)));

       ............

et j'obtiens l'erreur suivante :

Code:

Warning: Exception caught by form: Plugin by name '*' was not found in the registry; used paths: Zend_Form_Decorator_: Zend/Form/Decorator/;Zend/Form/Decorator/ Stack Trace: 
#0 C:\wamp\www\cdl\library\Zend\Form\Element.php(1703): Zend_Loader_PluginLoader->load('*') 
#1 C:\wamp\www\cdl\library\Zend\Form\Element.php(2062): Zend_Form_Element->_getDecorator('*', false) 
#2 C:\wamp\www\cdl\library\Zend\Form\Element.php(1853): Zend_Form_Element->_loadDecorator(Array, '*') 
#3 C:\wamp\www\cdl\library\Zend\Form\Element.php(1909): Zend_Form_Element->getDecorators() 
#4 C:\wamp\www\cdl\library\Zend\Form\Decorator\FormElements.php(101): Zend_Form_Element->render() 
#5 C:\wamp\www\cdl\library\Zend\Form.php(2595): Zend_Form_Decorator_FormElements->render('') 
#6 C:\wamp\www\cdl\library\Zend\Form.php(2610): Zend_Form->render() 
#7 C:\wamp\www\cdl\application\views\scripts\fichier\ajouterarticle.phtml(2): Zend_Form->__toString() 
#8 C:\wamp\www\cdl\library\Zend\View.php(107): include('C:\wamp\www\cdl...') in C:\wamp\www\cdl\library\Zend\Form.php on line 2615

Quelqu'un comprend il pourquoi ?

Hors ligne

 

#13 07-07-2009 12:08:02

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [RESOLU][Zend 1.8][Zend_Form]Style de mes formulaires

Parce que tu utilises mal la fonction
essai ca :

Code:

  ->addDecorators(array(
     array('Label', array('requiredPrefix' => '<em>*</em>', 'escape' => false))
  ));

ou alors, (sans le s à AddDecorators et plus facile à lire)

Code:

->addDecorator('Label', array('requiredPrefix' => '<em>*</em>', 'escape' => false));

Dernière modification par nORKy (07-07-2009 12:11:08)


----
Gruiiik !

Hors ligne

 

#14 07-07-2009 12:10:54

matdev
Membre
Date d'inscription: 31-03-2009
Messages: 172

Re: [RESOLU][Zend 1.8][Zend_Form]Style de mes formulaires

Bon je n'ai plus l'erreur mais par contre mon label n'est plus visible ?

Je viens de regarder la source de ma page et le label est bien présent mais il n'est plus entouré de balise <dt></dt> comme les autres labels?

Dernière modification par matdev (07-07-2009 12:15:23)

Hors ligne

 

#15 07-07-2009 12:29:55

matdev
Membre
Date d'inscription: 31-03-2009
Messages: 172

Re: [RESOLU][Zend 1.8][Zend_Form]Style de mes formulaires

C'est bon j'ai corriger le problême en ajoutant un petit quelque chose à la fin

Code:

addDecorator('Label', array('requiredPrefix' => '<em>*</em>', 'escape' => false,'tag' => 'dt'))

Hors ligne

 

#16 07-07-2009 13:46:29

matdev
Membre
Date d'inscription: 31-03-2009
Messages: 172

Re: [RESOLU][Zend 1.8][Zend_Form]Style de mes formulaires

nORKy a écrit:

Pour ton label, tu peux passé par la conf du décorateur :
array('Label', array('requiredPrefix' => '<em>*</em>', 'escape' => false))

Encore une petite question : est-il possible d'affecter ceci à l'ensemble de mes champs obligatoires sans avoir à repeter la ligne pour chacun d'eux

nORKy a écrit:

Pour le 2/, as tu pensé aux CSS ?
array('Label', array('class' => 'maClass'))

Pour la deuxieme partie, j'ai adapter ce que vous m'aviez expliqué avant et l'attribution d'une classe pour changer le style depuis une CSS fonctionne. (Merci nORKy)

Dernière modification par matdev (07-07-2009 14:48:51)

Hors ligne

 

#17 09-07-2009 09:20:54

matdev
Membre
Date d'inscription: 31-03-2009
Messages: 172

Re: [RESOLU][Zend 1.8][Zend_Form]Style de mes formulaires

Bon au finale je laisse une définition élément par élément car j'ai rassemblé plusieurs info dans le décorateurs permettant de différencier mes champs.

Je clos donc ce poste en remerciant nORKy et aelyta1 pour leurs infos

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages