Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 06-07-2011 12:36:43

gostbuster
Membre
Date d'inscription: 11-03-2009
Messages: 160

[Zend_Form et helper] Impossible d'ajouter un helperpath

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 :

Code:

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 :

Code:

 [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 :

Code:

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 :

Code:

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.

Code:

[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)


Gostbuster - Développeur WEB

Hors ligne

 

#2 07-07-2011 09:51:45

gostbuster
Membre
Date d'inscription: 11-03-2009
Messages: 160

Re: [Zend_Form et helper] Impossible d'ajouter un helperpath

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.


Gostbuster - Développeur WEB

Hors ligne

 

#3 07-07-2011 11:22:55

damdamien
Membre
Date d'inscription: 02-07-2011
Messages: 22

Re: [Zend_Form et helper] Impossible d'ajouter un helperpath

personnelement j'y arrive juste en passant par le bootstrap

voila ce que j'aurais fait.

Code:

[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

 

#4 08-07-2011 10:48:11

gostbuster
Membre
Date d'inscription: 11-03-2009
Messages: 160

Re: [Zend_Form et helper] Impossible d'ajouter un helperpath

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 :

Code:

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


Gostbuster - Développeur WEB

Hors ligne

 

#5 08-07-2011 15:06:04

damdamien
Membre
Date d'inscription: 02-07-2011
Messages: 22

Re: [Zend_Form et helper] Impossible d'ajouter un helperpath

test ca voir!

Je débute sur ZF mais je penses que cela devrait marcher. J'en profites pour pratiquer un peu!!!!


Code:

[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

 

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