Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour à tous,
je vous présente mon petit soucis.
Je mets un place un site avec deux modules :
un premier module 'default' pour le site (front)
un second module 'admin' pour le BO.
J'ai configuré le bootstrap de cette façon pour les routes :
$router = new Zend_Controller_Router_Rewrite(); $router->removeDefaultRoutes(); $router->addRoute('default', new Zend_Controller_Router_Route( '/:module/:controller/:action', array('module'=>'default', 'controller'=>'index', 'action'=>'index'))); $router->addRoute('admin', new Zend_Controller_Router_Route( '/:module/:controller/:action', array('module'=>'admin', 'controller'=>'index', 'action'=>'index')));
J'ai également rajouté au front controller le code pour situer les modules et les controllers:
$controller->addModuleDirectory("./application"); $controller->setControllerDirectory(array( 'default' => './application/default/controllers', 'admin' => './application/admin/controllers'));
Le problème c'est que rien ne se passe j'ai le plus souvent une page blanche.
Je suis hébergé chez 1and1. Lorsque je définit seulement le module 'default' (sans 'admin') tout passe bien.
Le problème intervient quand je rajoute le module 'admin'.
Je tente à chaque fois de bien définir le Admin_IndexController, mais un truc bizarre, le fichier se perd tout le temps. Quand je le recharge depuis le serveur il est vide ! J'ai donc droit à cette erreur :
Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller class ("Admin_IndexController")'
je ne comprens pas bien....
Merci de votre aide
Hors ligne
Hello,
Tout d'abord pour utiliser des modules, tu n'es pas obligé d'avoir des routes (mais tu peux si tu veux ).
Ensuite la ligne :
$controller->addModuleDirectory("./application");
est suffisante (les deux suivantes ne sont pas obligatoires).
A+
Hors ligne
Merci de ta réponse.
Tu dis que je peux supprimer les deux lignes suivantes, mais je dois bien indiquer le chemin des controllers pour chaque module ? Non ?
Hors ligne
Hello,
Quand tu donnes ton dossier de modules, il considère tout sous-dossier comme étant un module, chacun devant contenir un dossier "controllers" (valeur par défaut, bien sûr modifiable).
A+
Hors ligne
ok, merci de ta réponse mais en fait le probleme vient de mon layout avec mes différents modules. Donc en fait il faut que je configure le chemin de mes layouts en fonction du module... je pense...
merci
A+
Hors ligne
Non, les layouts tu les places ou tu veux
Tu le configure toi même
Zend_Layout::startMvc( array('layoutPath' => $layoutPath) );
si tu veux le placer dans application/layouts ou bien même dans un modules application/monmodule/layout
...
Hors ligne
Oui j'ai placé mes layouts dans le dossier scripts des views(valeur par défaut).
Je prend dans un predispatch de mon plugin de vue perso le nom du module et je configure le setlayoutpath en fonction.
merci de ta réponse
A+
Hors ligne