Bonjour à tous,

voici mon cas :
- j'ai plusieurs modules dans mon application et pour chaque j'ai un fichier de langues tmx. ça marche très bien
- j'ai une classe qui étend Zend_Controller_Plugin_Abstract avec une méthode predispatch qui va charger le fichier de langue correspondant à mon module (pour éviter de charger tous mes fichiers de langages de tous mes modules)

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
 
class TOTO_Controller_Plugin_TranslatorLoader extends Zend_Controller_Plugin_Abstract
{
    public function preDispatch(Zend_Controller_Request_Abstract $request)
    {
        $moduleName = $request->getModuleName();
 
        $tmxfile = APPLICATION_PATH  . DIRECTORY_SEPARATOR . 'modules' 
                                     . DIRECTORY_SEPARATOR . $moduleName 
                                     . DIRECTORY_SEPARATOR . 'languages'
                                     . DIRECTORY_SEPARATOR . $moduleName . '.tmx';
 
        if(is_file($tmxfile))
        {
 
            $tr = Zend_Registry::get('Zend_Translate');
            $tr->addTranslation( array( 'content' => $tmxfile)  );
        }
    }
}
Les problèmes commencent si j'utilise le view helper action() pour charger dans un module B le résultat se trouvant dans un module A : le plugin va charger le fichier de langue du module B mais pas celui du module A.

Je pensais qu'en appelant action, on repassait par le dispatch et donc que mon plugin serait appelé de nouveau pour le module A.

est-ce un problème de configuration à mon niveau ou est-ce que forcément, quand on passe par le view helper 'action', le trio module/controller/action demandé ne fera pas appel aux plugins de controller car ils ont déjà été exécuté ?

par avance merci