Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 04-04-2012 16:26:55

Kenny
Membre
Date d'inscription: 09-04-2011
Messages: 11

[Resolu]Chargement auto des aides d'action dans les modules

Bonjour,

Comment peut'on charger les aides d'action automatiquement ?
Et pour compliquer encore plus, une aide d'action qui pourrait être dans un module ?

L'idéal serait une déclaration d'une ressource Action Helper dans le bootstrap dans l'application, qui irait, si il le faut, chercher les aides d'action dans [module]/controllers/helpers.

Alors ce que j'ai fait pour l'instant, dans le bootstrap je charge les action helper :

Code:

protected function _initActionsHelpers() {
    
    Zend_Controller_Action_HelperBroker::addPath(
        APPLICATION_PATH . '/controllers/helpers', 
        'Application_Controller_Helper_'
    );
}

Mais je suis conscient que ça ne va pas chercher dans les modules, juste dans APPLICATION_PATH/controllers/helpers ...

Ensuite un helper de test dans le module Default :

Code:

<?php
    class Default_Controller_Helper_Test extends Zend_Controller_Action_Helper_Abstract {
        
        public function preDispatch() {
            
            echo "ok";
        }
        
    }

Et l'appel dans le controleur d'action :

Code:

$this->_helper->test();

Si vous avez des idées, n'hésitez pas ! smile

Dernière modification par Kenny (30-05-2012 11:36:25)

Hors ligne

 

#2 05-04-2012 05:35:54

BeRoots
Membre
Date d'inscription: 15-05-2008
Messages: 79

Re: [Resolu]Chargement auto des aides d'action dans les modules

Moi j'aurai plutôt vu un plugin pour le faire. avec inclusion direct à set_include_path() nan ?


wink Non au language SMS sur nos forums wink

Hors ligne

 

#3 05-04-2012 15:58:28

Kenny
Membre
Date d'inscription: 09-04-2011
Messages: 11

Re: [Resolu]Chargement auto des aides d'action dans les modules

Merci de la réponse, mais c'est pas ça que je recherche ... hmm

Hors ligne

 

#4 12-04-2012 11:09:52

Kenny
Membre
Date d'inscription: 09-04-2011
Messages: 11

Re: [Resolu]Chargement auto des aides d'action dans les modules

Vraiment personne ?
Bizarre le fait que Zend charge automatiquement les aides de vues, mais pas d'actions ...

Hors ligne

 

#5 16-04-2012 09:33:51

Kenny
Membre
Date d'inscription: 09-04-2011
Messages: 11

Re: [Resolu]Chargement auto des aides d'action dans les modules

Bon, du coup j'ai fait comme ça :

Code:

protected function _initModulesAddons() {

            // On récupère l'ensemble des modules
            $this->bootstrap('frontController');
            $front = $this->getResource('frontController');
            $array_modules = $front->getControllerDirectory();

            // On charge les aides de'action pour chq modules
            foreach($array_modules as $module => $controllerPath) {

                Zend_Controller_Action_HelperBroker::addPath($controllerPath . '/helpers', ucfirst($module) . '_Controller_Helper_');
            }
}

Dernière modification par Kenny (16-04-2012 09:34:09)

Hors ligne

 

#6 19-04-2012 19:51:20

DontShootMe
Nouveau membre
Date d'inscription: 17-12-2010
Messages: 6

Re: [Resolu]Chargement auto des aides d'action dans les modules

Bonjour,

si cela peut aider, je fais cela a travers un plugin :

Code:

[lang=php] 
class Application_Plugin_Logged extends Zend_Controller_Plugin_Abstract {

    public function preDispatch(Zend_Controller_Request_Abstract $request) 
    {
         blablabla . . .
         blablabla . . .
         $this->ActionHelpersInit($request); 
        
    }
    private function ActionHelpersInit($request)
    {
        $ctrlName = $request->getControllerName(); //Je recupere le controller demandé par le client
        $modName = $request->getModuleName(); //Je recupere le module demandé par le client
        $actionName = $request->getActionName(); //Je recupere le action demandé par le client
    
        $Chemin = APPLICATION_PATH .  DIRECTORY_SEPARATOR . 'modules' .  DIRECTORY_SEPARATOR . $modName . DIRECTORY_SEPARATOR . 'controllers'. DIRECTORY_SEPARATOR . ucfirst(strtolower(trim($ctrlName))) . DIRECTORY_SEPARATOR . 'helpers';
        Zend_Controller_Action_HelperBroker::addPath($Chemin );    
   
    }
}

Que j'initialise dans le bootstrap, avec l'avantage de pouvoir le faire à la demande et fonction de certaine conditions !

Hors ligne

 

#7 30-05-2012 11:36:10

Kenny
Membre
Date d'inscription: 09-04-2011
Messages: 11

Re: [Resolu]Chargement auto des aides d'action dans les modules

Merci pour ta réponse ! (En plus, tu t'es inscrit ici rien que pour ça, merci encore smile ). J'ai légèrement modifié mon script du coup.

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