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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// 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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
$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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
$submit = new Zend_Form_Element_Submit('submit');
		$submit->setLabel('')
		->setValue('Valider')
		->setDecorators($decorators);
Merci à tous

Fabrice