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)
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.
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) ); } } }
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
Partager