|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 35 ![]() |
Bonjour,
J'aimerai savoir s'il serait possible que l'un d'entre vous pourrait me montrer un code complet d'un Zend_Form simple utilisant des décorateurs ? Parce que je ne saisis vraiment pas la manière dont ceux-ci se mettent en place. Merci. |
|
|
00
|
|
|
#2 |
|
Membre régulier
![]() Inscription : juin 2004 Messages : 66 ![]() |
Le mieux pour comprendre les décorateurs est de te faire des tests.
Commence déjà par voir à quoi ressemble les décorateurs par défaut. $form->getElement('unChampTexte')->getDecorators(); et $form->getDecorators() Les décorateurs s'ajoutent les uns après les autres (une forme de pile). Ils s’englobent les uns derrière les autres. La configuration de 'placement' sur append ou prepend permet de "sortir" créer des voisins. Mon explication est peut-être pas très compréhensible, mais ça donne une idée. Sinon, ce que je peux dire, c'est qu'une fois l'utilisation des décorateurs comprise, c'est assez puissant à utiliser.
__________________
Programmation Web - PHP, MySQL, JavaScript, etc. |
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 35 ![]() |
Merci de me répondre.
Je vais sûrement passer pour un novice mais... où faut il placer ce bout de code ? |
|
|
00
|
|
|
#4 |
|
Membre régulier
![]() Inscription : juin 2004 Messages : 66 ![]() |
Un peu où tu veux.
Soit dans le controlleur, dans une vue, etc. Le but est de voir les décorateurs sous forme de tableau avec un var_dump ou print_r.
__________________
Programmation Web - PHP, MySQL, JavaScript, etc. |
|
00
|
|
|
#5 | ||||
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 35 ![]() |
En fait je commence à saisir.
J'ai crée un dossier "maLib" dans library, puis un "Form" et "Decorator". Dans ce dossier (decorator), j'ai crée une classe "MaLib_Form_Decorator" Code :
Code :
et j'ai l'erreur : Code :
Warning: Exception caught by form: Plugin by name 'Html' was not found in the registry; used paths: ZendX_JQuery_Form_Decorator_: ZendX/JQuery/Form/Decorator/ MaLib_Form_Decorator_: /library/maLib/Form/Decorator/ Zend_Form_Decorator_: Zend/Form/Decorator/ |
||||
|
|
00
|
|
|
#6 |
|
Membre régulier
![]() Inscription : juin 2004 Messages : 66 ![]() |
Tu es sur de ce chemin : "/library/maLib/Form/Decorator/" ?
Le premier / représente la racine du système. Si "library" est dans ton répertoire de projet, normalement ceci devrait fonctionner : APPLICATION_PATH.'/../library/maLib/Form/Decorator/'
__________________
Programmation Web - PHP, MySQL, JavaScript, etc. |
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 35 ![]() |
Est-ce que cela a un rapport avec le fait que je n'étends pas "Zend_Form" mais "ZendX_JQuery_Form" ?
J'ai cette arborescence :
|
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 35 ![]() |
Il semble que l'erreur venait du fait qu'il fallait que j'appelle mon fichier "Html" dans
/library/maLib/Form/Decorator/Html.php Mais cela m'a généré une autre erreur : Code :
Warning: include_once(/maLib/Form/Decorator/Html.php): failed to open stream: No such file or directory in /var/www/html/zendTest/library/Zend/Loader/PluginLoader.php |
|
|
00
|
|
|
#9 |
|
Membre régulier
![]() Inscription : juin 2004 Messages : 66 ![]() |
Comme je te l'ai dit plus haut, le chemin vers ta library doit être faux.
Enlève le premier slash (/) dans ton chemin.
__________________
Programmation Web - PHP, MySQL, JavaScript, etc. |
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 35 ![]() |
Merci
J'ai une autre erreur. Code :
Notice: Undefined index: html in /var/www/html/zendTest/library/maLib/Form/Decorator/Html.php on line 8 |
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 35 ![]() |
J'ai remplacé le 'html' par 'Html', et il me semble que cela fonctionne, sauf que le label ne fonctionne pas.
|
|
|
00
|
|
|
#12 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 35 ![]() |
Et pour finir cet épique décorateur, le label ne s'affichait pas à cause ... d'un accent
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com