Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Je concois un formulaire Zend_Form à l'aide d'un fichier ini. Aucun soucis de ce coté là.
Seulement, je souhaite utiliser un élement perso avec un Helper perso. (pas de problème pour appeler mon élément perso car dans mon fichier form.ini :
autoloaderNamespaces.app = "La_" prefixPath.path = "La" prefixPath.prefix = "La"
Et avec l'arborescence qui va bien, j'arrive bien à intégrer mon élement de classe La_Element_Uploadfile
Rien de bien intéressant dans cette classe. Pour l'instant je souhaite juste que cet élément utilise un helper perso aussi :
[lang=php] class La_Element_Uploadfile extends Zend_Form_Element_Xhtml{ public $helper = 'formUploadFile'; }
Je souhaiterais que cet élement de mon formulaire utilise le helper La_View_Helper_FormUploadFile.
Pour cela j'ai créé un fichier FormUploadFile dans : /La/View/Helper/FormUploadFile.php qui contient :
class La_View_Helper_FormUploadFile extends Zend_View_Helper_Abstract{ public function formUploadFile() { return "je suis le Helper de UploadFile"; } }
Donc maintenant, j'ai le fichier élement (du formulaire) et son helper.
Seulement je me retrouve face à l'erreur :
Plugin by name 'FormUploadFile' was not found in the registry; used paths: Zend_View_Helper_: Zend/View/Helper/
C'est à dire qu'il ne trouve pas mon helper, et c'est normal, il ne va pas chercher dans le bon répertoire (à savoir : La/View/Helper
Et c'est bien là mon problème, car j'ai beau utiliser la méthode addHelperPath Je n'arrive pas à ajouter le bon dossier (La/View/Helper/) dans la liste des dossiers. Autrement dit, impossible de lui dire "va aussi chercher dans ce dossier...)
J'ai essayé par exemple ce code un peu partout dans l'application, mais rien à faire, il n'ajoute pas le path.
[lang=php] $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer'); $viewRenderer->initView(); $viewRenderer->view->addHelperPath( 'La/View/Helper', 'La_View_Helper');
Quelqu'un aurait une idée ou une suggestion qui me mettrais sur la voie ?
Je tiens à préciser que si je prends mon helper que je renomme Zend_View_Helper_FormUploadFile, dans le dossier Zend_View_Helper, cela fonctionne très bien, mon seul soucis se situe au niveau de l'ajout d'un répertoire dans la liste des répertoires helper
par avance merci
Dernière modification par gostbuster (07-07-2011 12:07:10)
Hors ligne
Personne n'a une idée ?
Peut-être que je me suis mal exprimé. Mais j'avoue le problème est pourtant simple mais impossible d'y arriver...je dois faire quelque chose de mal...mais quoi ?
Est-ce que c'est possible d'avoir, à titre d'exemple, un extrait de votre code qui montre comment rattacher à un élément Zend_Form_Element perso qui utilise un helper perso ?
Par avance merci.
Hors ligne
personnelement j'y arrive juste en passant par le bootstrap
voila ce que j'aurais fait.
[lang=php] protected function _initAutoloadUploadfile() { $loaderUploadfile = new Zend_Loader_Autoloader_Resource(array( 'namespace' => 'La', 'basePath' => dirname(__FILE__), )); $loaderUploadfile->addResourceType('formUploadFile','la/view/helper/','FormUploadFile') ->addResourceType('uploadfile','la/element','Uploadfile'); return $loaderUploadfile; } protected function _initUploadfile() { $Uploadfile = new La_View_Helper_FormUploadFile(); Zend_View_Helper_Navigation_HelperAbstract::setLaViewHelperFormUploadfile($Uploadfile); }
je rajoute qu'il me semble que le nom de tes fichier doit commencer par une minuscule
exemple
la->element->uploadfile.php
dans ta class
class La_Element_Uploadfile extends Zend_Form_Element_Xhtml{
j'ai considérer ton aborescence comme suit:
application->la->element->uploadfile.php
->view->helper->formUploadFile.php
en espérant que cela marche
attention un coup tu fais ( ' uploadfile ' ) dans l'autre fichier ( ' xxxUploadFile ' ) ca sent l'erreur a plein nez
amicalement
damdamien
Dernière modification par damdamien (07-07-2011 11:26:29)
Hors ligne
Je viens de tester ton exemple et je crains que cela ne fonctionne pas, en fait le probleme, c'est qu'il ne va pas du tout chercher dans le répertoire du helper :
Zend_View_Helper_: Zend/View/Helper/
On dirait qu'il ignore complètement mes directives de helperpath.
je précise que je n'utilise pas le framework en mode MVC
Merci par avance
Hors ligne
test ca voir!
Je débute sur ZF mais je penses que cela devrait marcher. J'en profites pour pratiquer un peu!!!!
[lang=php]class La_Element_Uploadfile extends Zend_Form_Element_Xhtml{ private $helper; public function _init(){ require (APPLICATION_PATH.'/La/View/Helper/FormUploadFile.php'); if (!class_exists('La_View_Helper_FormUploadFile')){ echo 'La class La_View_Helper_FormUploadFile n\'est clairement pas trouvé'; exit; }else{ $this->helper=new La_View_Helper_FormUploadFile(); } } public function getHelperValue(){ echo $this->helper->formUploadFile(); } }
tu penses a dire ce qu'il ce passe
Dernière modification par damdamien (08-07-2011 15:12:46)
Hors ligne
Pages: 1