Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 23-10-2009 15:14:54

__fabrice
Membre
Date d'inscription: 25-04-2007
Messages: 131

Zend_Form_Element_File, Zend_Form_Element_Submit, et décorators

salut à tous,

J'ai 2 petits soucis avec les decorators pour Zend_Form_Element_File et  Zend_Form_Element_Submit :

- Pour Zend_Form_Element_File, je n'arrive pas à mettre de décorateurs, j'ai essayé plusieurs choses :

Code:

// Décorateurs :
        $decorators = array (
        'ViewHelper',
        'Errors',
        array('Description', array('tag' => 'p', 'class' => 'description')),
        array('HtmlTag', array('tag' => 'td')),
        array('Label', array('tag' => 'th')),
        array(array('tr' => 'HtmlTag'), array('tag' => 'tr'))
        );

        $formDecorators = array(
        'FormElements',
        array('HtmlTag', array('tag' => 'table','class'=>'form-table')),
        'Form',
        array('File', array('tag' => 'table','class'=>'form-table'))
        );
        //////////////////////////////////////////////////////////////////////

        $file_one = new Zend_Form_Element_File('fileupload_1');
        $file_one->setLabel('Fichier image #1 : ')
        ->addValidator('Count', false, 1)    
        ->addValidator('Extension', false, $extensions)
        ->addValidator('FilesSize', false, $maxFileSize);
        //->setDecorators($decorators);
               //->setDecorators($formDecorators);
        $file_one->getValidator('Extension')->setMessage('Extensions valides : .jpg, .jpeg, .gif et .png');
        $file_one->getValidator('FilesSize')->setMessage('La taille du fichier est trop importante');

...
...
$this->setDecorators($formDecorators);

Si je met le decorateur "$decorators", j'ai un message d'erreur :

Code:

Warning: Exception caught by form: No file decorator found... unable to render file element Stack Trace:

Il ne trouve pas le décorateur File, ce qui semble normal.
Mais comment le rajouter ? J'ai donc testé avec le décorateur $formDecorators qui ne semble pas marcher non plus (il me le sort du formulaire <form>)

- Ensuite, comment virer le label du Zend_Form_Element_Submit ?
So je fais ceci :

Code:

$submit = new Zend_Form_Element_Submit('submit');
        $submit->setLabel('Valider')
        ->setDecorators($decorators);
        $submit->removeDecorator('Label');

il m'enleve aussi le th, et evidemment, le design est cassé.

Si je met le SetLabel à '', cela me vire le Label, mais aussi le texte du bouton (fait en CSS), et le setValue ne marche pas :

Code:

$submit = new Zend_Form_Element_Submit('submit');
        $submit->setLabel('')
        ->setValue('Valider')
        ->setDecorators($decorators);

Merci à tous

Fabrice

Hors ligne

 

#2 25-10-2009 08:46:09

__fabrice
Membre
Date d'inscription: 25-04-2007
Messages: 131

Re: Zend_Form_Element_File, Zend_Form_Element_Submit, et décorators

Hello,

Personne ne sait ?

Fabrice

Hors ligne

 

#3 26-10-2009 09:06:50

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

Re: Zend_Form_Element_File, Zend_Form_Element_Submit, et décorators

1/ Pour le "no décorator File", c'est simple, il suffit de l'ajouté dans ton $decorators (et pas $formdecorators) :

Code:

$decorators = array (
        'File',
        'Errors',
        array('Description', array('tag' => 'p', 'class' => 'description')),
        array('HtmlTag', array('tag' => 'td')),
        array('Label', array('tag' => 'th')),
        array(array('tr' => 'HtmlTag'), array('tag' => 'tr'))
        );

2/ Suffit de ne pas mettre de décorateur Label


----
Gruiiik !

Hors ligne

 

#4 26-10-2009 10:28:08

__fabrice
Membre
Date d'inscription: 25-04-2007
Messages: 131

Re: Zend_Form_Element_File, Zend_Form_Element_Submit, et décorators

salut,

he non, cela ne marche pas, le fait de rajouter 'File' dans le décorateur provoque une erreur.

Je crois que je vais laisser tomber les décorateurs. En lisant pas mal de doc la-dessus, cela semble bien compliqué.

A moins qu'une solution soit trouvé pour le 'File', il ne me manque plus que çà

Fabrice

Hors ligne

 

#5 26-10-2009 11:01:47

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: Zend_Form_Element_File, Zend_Form_Element_Submit, et décorators

Hello,

Quelle version de ZF ? C'est normalement corrigé ce problème de décorateur File depuis un moment.

@+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#6 26-10-2009 11:05:59

__fabrice
Membre
Date d'inscription: 25-04-2007
Messages: 131

Re: Zend_Form_Element_File, Zend_Form_Element_Submit, et décorators

hello,

la derniere, j'utilise le trunk du svn.

Merci
Fabrice

Hors ligne

 

#7 26-10-2009 11:18:40

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

Re: Zend_Form_Element_File, Zend_Form_Element_Submit, et décorators

__fabrice a écrit:

hello,

la derniere, j'utilise le trunk du svn.

Merci
Fabrice

Pas bien d'utiliser le trunk..

Perso, je n'ai pas de problème avec ce décorateur
Je viens d'ailleurs de tester en collant directement cela dans un de mes formulaires :

Code:

$this->addElement('file', 'fich', array(
      'decorators' => array (
        'File',
        'Errors',
        array('Description', array('tag' => 'p', 'class' => 'description')),
        array('HtmlTag', array('tag' => 'td')),
        array('Label', array('tag' => 'th')),
        array(array('tr' => 'HtmlTag'), array('tag' => 'tr'))
        ),
        'label' => 'test',
    ));

($this étant l'objet zend_form)

aucuns soucis


----
Gruiiik !

Hors ligne

 

#8 26-10-2009 11:27:27

__fabrice
Membre
Date d'inscription: 25-04-2007
Messages: 131

Re: Zend_Form_Element_File, Zend_Form_Element_Submit, et décorators

Effectivement, ton code marche aussi chez moi.

Et pourquoi ce n'est pas bien d'utiliser le trunk, c bien la derniere version stable non ?

Il faut vraiment mettre ce décorateur au type file, parce que si fais çà :

Code:

        $decorators = array (
        'File',
        'Errors',
        array('Description', array('tag' => 'p', 'class' => 'description')),
        array('HtmlTag', array('tag' => 'td')),
        array('Label', array('tag' => 'th')),
        array(array('tr' => 'HtmlTag'), array('tag' => 'tr'))
        );

pour tous, çà marche plus.

Merci
Fabrice

Dernière modification par __fabrice (26-10-2009 11:35:50)

Hors ligne

 

#9 26-10-2009 11:39:49

__fabrice
Membre
Date d'inscription: 25-04-2007
Messages: 131

Re: Zend_Form_Element_File, Zend_Form_Element_Submit, et décorators

ok, çà, çà marche nickel :

Code:

$decoratorsFile =array (
        'File',
        'Errors',
        array('Description', array('tag' => 'p', 'class' => 'description')),
        array('HtmlTag', array('tag' => 'td')),
        array('Label', array('tag' => 'th')),
        array(array('tr' => 'HtmlTag'), array('tag' => 'tr')));

        $file_one = new Zend_Form_Element_File('fileupload_1');
        $file_one->setLabel('Fichier image #1 : ')
        ->addValidator('Count', false, 1)     // ensure only 1 file
        ->addValidator('Extension', false, $extensionsImg)
        ->addValidator('FilesSize', false, $maxFileSize)
        ->setDecorators($decoratorsFile);
        $file_one->getValidator('Extension')->setMessage('Extensions valides : .jpg, .jpeg, .gif et .png');
        $file_one->getValidator('FilesSize')->setMessage('La taille du fichier est trop importante');

Merci
Fabrice

Hors ligne

 

#10 26-10-2009 13:25:44

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

Re: Zend_Form_Element_File, Zend_Form_Element_Submit, et décorators

Beh oui, tu l'as compris, le décorateur File, c'est uniquement pour le composant File smile Pas pour tous

non, le trunk, c'est la version de developpement
Pour être en stable, regarde ce que tu trouves dans "tags"

Dernière modification par nORKy (26-10-2009 13:26:40)


----
Gruiiik !

Hors ligne

 

#11 26-10-2009 13:35:57

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: Zend_Form_Element_File, Zend_Form_Element_Submit, et décorators

nORKy a écrit:

non, le trunk, c'est la version de developpement
Pour être en stable, regarde ce que tu trouves dans "tags"

Ou les "branches" mais surtout pas le trunk smile


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#12 26-10-2009 15:09:23

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

Re: Zend_Form_Element_File, Zend_Form_Element_Submit, et décorators

mikaelkael a écrit:

nORKy a écrit:

non, le trunk, c'est la version de developpement
Pour être en stable, regarde ce que tu trouves dans "tags"

Ou les "branches" mais surtout pas le trunk smile

Je ne sais pas comment travaille l'équipe de dev du ZF, mais "théoriquement", on utilise les branches pour des  branches parallèle du trunk (donc en developpement aussi)

Par exemple, on veut continuer de travaillé sur le ZF 1.9.4 tous en developpement le 2.0 :
le 2.0 devrait se trouvé dans trunk, et le 1.9.4 en developpement sur branches/1.9.4 (qui deviendra tags/1.9.5)

Maintenant, c'est la théorie des mots et les pratiques conseillé par les auteurs de subversion.
Je n'ai pas été voir l'organisation du repository du ZF, et il est surement plus complexe que ce que je décris.

Tout ca pour  dire qu'il vaut mieux être qq part dans tags et éviter branches (et surtout pas trunk)


----
Gruiiik !

Hors ligne

 

#13 26-10-2009 21:19:15

__fabrice
Membre
Date d'inscription: 25-04-2007
Messages: 131

Re: Zend_Form_Element_File, Zend_Form_Element_Submit, et décorators

ok, donc, il faut utiliser le "tag" de la dernière version.

Par contre, j'ai cherché un peu partout pour supprimer le label, sans le texte du bouton css, et ma foi, sans trop de succes.

Merci à tous
Fabrice

Dernière modification par __fabrice (26-10-2009 21:19:28)

Hors ligne

 

#14 27-10-2009 08:14:45

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

Re: Zend_Form_Element_File, Zend_Form_Element_Submit, et décorators

__fabrice a écrit:

ok, donc, il faut utiliser le "tag" de la dernière version.

Par contre, j'ai cherché un peu partout pour supprimer le label, sans le texte du bouton css, et ma foi, sans trop de succes.

Merci à tous
Fabrice

Je te l'ai dit, tu ne mets pas le décorateur Label (mais tu laisses places la valeur du label)


----
Gruiiik !

Hors ligne

 

#15 27-10-2009 15:03:13

__fabrice
Membre
Date d'inscription: 25-04-2007
Messages: 131

Re: Zend_Form_Element_File, Zend_Form_Element_Submit, et décorators

Salut,

Oui, mais non smile, çà marche pas et c normal. Si je vire le décorateur 'Label', le "th" n'existe plus, donc cela casse tout le design du tableau.

Il me faut juste le tag label mais sans valeur sans tu veux. Comme çà :

Code:

<tr>
<th id="submit-label">
<label class="optional" for="submit"></label>
</th>
<td>
<input id="submit" type="submit" value="Valider" name="submit"/>
</td>
</tr>

Fabrice

Hors ligne

 

#16 27-10-2009 17:09:51

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

Re: Zend_Form_Element_File, Zend_Form_Element_Submit, et décorators

beh dans ce cas, tu mets une valeur vide smile setLabel('');

Oui mais on tourne en rond smile

Donc, autre astuce :

Code:

label[for=submit] {
  display: none;
}

Dernière modification par nORKy (27-10-2009 17:11:21)


----
Gruiiik !

Hors ligne

 

#17 27-10-2009 17:17:44

__fabrice
Membre
Date d'inscription: 25-04-2007
Messages: 131

Re: Zend_Form_Element_File, Zend_Form_Element_Submit, et décorators

j'avais bien sur essayé avec le SetLabel à '', mais çà met aussi la valeur du input du bouton, donc, un bon bouton CSS sans texte smile

Pour le CSS, oui, y'a cette astuce qui n'est pas forcement bonne pour IE (IE sucks !!!). Mais c'est pour une interface d'admin et je ne cherche pas à les faire compatible ave IE.

Merci à tous
Fabrice

Hors ligne

 

#18 28-10-2009 07:33:11

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

Re: Zend_Form_Element_File, Zend_Form_Element_Submit, et décorators

Pas pour IE ?!
Arg.. je vais pas tout te faire non plus smile

Code:

 array('Label', array('tag' => 'th', 'class' => 'monbouttonquejeveuxpasvoir')),

Code:

.monbouttonquejeveuxpasvoir {
  display: none;
}

----
Gruiiik !

Hors ligne

 

#19 28-10-2009 09:45:36

__fabrice
Membre
Date d'inscription: 25-04-2007
Messages: 131

Re: Zend_Form_Element_File, Zend_Form_Element_Submit, et décorators

hello,

ok merci, mais j'avais déjà fait pareil smile

Merci à tous.

Fabrice

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