bensor Posté(e) le 1 février 2008 Partager Posté(e) le 1 février 2008 Voilà, je seche un peu sur un truc en particulier Préparant la mise en place de l'outil d'audience XITI sur le site que je suis en train de dévevlopper, j'aimerais spécifier en nom de page un truc du genre "nomducontrolleur_nomdel'action". Je sais comment récupérer ces deux valeurs par l'analyse de l'URL saisie, mais je suis sûr qu'il y a des fonctions de Zend Framework qui me permettent d'arriver plus simplement au même résultat. Seulement voilà, impossible de trouver les fonctions en question. Les seules solutions que j'ai trouvé sont "périmées", dans le sens où elles ne fonctionnent pas avec la version que j'ai. J'ai la version 1.0.2 pour information. Merci d'avance Lien vers le commentaire Partager sur d’autres sites More sharing options...
astero-H Posté(e) le 2 février 2008 Partager Posté(e) le 2 février 2008 Ca doit surement pouvoir se faire en créant une règle de routage qui va bien. Après je peux pas t'en dire plus, la dernière fois que j'ai utilisé ce framework il était en version 0.7 Lien vers le commentaire Partager sur d’autres sites More sharing options...
bensor Posté(e) le 2 février 2008 Auteur Partager Posté(e) le 2 février 2008 Bon bha après maints tests et recherches, il semblerait que les fonctions qui retournent les valeurs ne fonctionne qu'une fois le dispatch lancé. Plus qu'à faire une fonction perso Lien vers le commentaire Partager sur d’autres sites More sharing options...
astero-H Posté(e) le 2 février 2008 Partager Posté(e) le 2 février 2008 bah t'as testé de te rajouter un routage du type $route = new Zend_Controller_Router_Route_Regex( '(.+)_(.+)', array(), array( 1 => 'controller', 2 => 'action' ), '%s_%s' ); $router->addRoute('default', $route); J'ai fait ça au pif, je code plus en PHP depuis plus d'un an... mais ce que je sais c'est que ce que tu veux faire ça se fait via l'ajout d'un règle de routage. Si tu vois pas pourquoi je te conseille vivement de réviser comment se déroule la phase de dispatch Lien vers le commentaire Partager sur d’autres sites More sharing options...
bensor Posté(e) le 2 février 2008 Auteur Partager Posté(e) le 2 février 2008 bah t'as testé de te rajouter un routage du type $route = new Zend_Controller_Router_Route_Regex( '(.+)_(.+)', array(), array( 1 => 'controller', 2 => 'action' ), '%s_%s' ); $router->addRoute('default', $route); J'ai fait ça au pif, je code plus en PHP depuis plus d'un an... mais ce que je sais c'est que ce que tu veux faire ça se fait via l'ajout d'un règle de routage. Si tu vois pas pourquoi je te conseille vivement de réviser comment se déroule la phase de dispatch Ce que je veux faire, c'est récupérer les deux valeurs (avant le dispatch pour les envoyer à la vue tout le temps), pas modifier le routage :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
astero-H Posté(e) le 2 février 2008 Partager Posté(e) le 2 février 2008 bah je sais pas si j'ai bien compris ce que tu veux faire mais si c'est le cas alors je pense que tu as un mauvais design. Tu devrais te faire un classe controller abstraite et injecter les données dans ta vue depuis cette classe (et surtout pas avant le dispatch!!!). Dans la logique MVC, c'est le controlleur qui doit injecter les données dans la vue... et personne d'autre!! Si tu t'es bien rajouté une règle de routage du genre l'exemple plus haut, tu peux récup le controller et l'action via $this->getRequest()->getControllerName() edit pour illustrer: abstractc class MyBaseController extends Zend_Controller { function init() { $request = $this->getRequest(); $view = $this->getView(); $view->controller = $request->getControllerName(); $view->action = $request->getActionName(); } .... } // puis tous tes controller dérivent de cette classe de base class BlogController extends MyBasController { ... } Lien vers le commentaire Partager sur d’autres sites More sharing options...
bensor Posté(e) le 2 février 2008 Auteur Partager Posté(e) le 2 février 2008 (désolé pour le retard, la grippe ma tuer) bah je sais pas si j'ai bien compris ce que tu veux faire mais si c'est le cas alors je pense que tu as un mauvais design.Tu devrais te faire un classe controller abstraite et injecter les données dans ta vue depuis cette classe (et surtout pas avant le dispatch!!!). Dans la logique MVC, c'est le controlleur qui doit injecter les données dans la vue... et personne d'autre!! Si tu t'es bien rajouté une règle de routage du genre l'exemple plus haut, tu peux récup le controller et l'action via $this->getRequest()->getControllerName() edit pour illustrer: abstractc class MyBaseController extends Zend_Controller { function init() { $request = $this->getRequest(); $view = $this->getView(); $view->controller = $request->getControllerName(); $view->action = $request->getActionName(); } .... } // puis tous tes controller dérivent de cette classe de base class BlogController extends MyBasController { ... } Exact, j'y avais pas pensé Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.