Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
J'aimerais savoir s'il est possible dans Zend de récupérer les paramètres de la page d'où l'on vient afin de créer un bouton retour avec $this->url.
Je peux très bien connaître l'Url de la dernière page avec ceci, $_SERVER['HTTP_REFERER'], mais j'aimerais obtenir les paramètres de la route qui était utilisé.
EX: Dernière page visité: http://monsite.com/fr/inventaire/page/2.
Dans ce cas-ci, j'aimerais récupérer le paramètre page, action et controller. Ici j'utilise une route précise qui n'inclut pas l'action dans mon url. Je ne peux donc pas récupérer l'action avec Http_Referer.
Merci pour vos réponses.
Pour vous éclairer, voici le contexte de mon problème:
J'ai une page d'inventaire avec pagination qui permet de faire une recherche et de filtrer des produits à l'aide d'un formulaire. Lorsque je clique sur un produit, je souhaite retourner aux même résultats et la même page (pagination) des résultat que j'était avant de cliquer sur ledit produit.
À noter, je peux tomber sur la page d'un produit en provenant d'un autre site ou d'un autre page du même site que ne serait pas celle de l'inventaire. Le bouton retour devrait donc retourner à la page d'inventaire sans filtrer présélectionné.
Dernière modification par probitaille (08-09-2011 19:58:09)
Hors ligne
Bonjour,
Pourquoi ne pas laisser faire le navigateur, qui a lui aussi un bouton "retour", qui fera ça très bien ?
Hors ligne
Si je proviens d'un site externe ou de la page d'accueil par exemple, je ne veux pas renvoyer l'utilisateur d'où il provenait dans ce cas-ci. Ce n'est plus vraiment un bouton retour. Il change de fonction et renvoyer l'utilisateur dans Inventaire.
Si je proviens de la page inventaire, je dois renvoyer l'utilisateur vers les même résultats qu'il avait filtrer.
De plus, le bouton retour des navigateurs peut me faire un pop-up qui demande de renvoyer mon formulaire. Si je peux éviter ça, ça l'augmente la simplicité du site pour l'utilisateur.
Hors ligne
Voici ma solution, je ne sais pas si c'est la meilleure. Dans le postDispatch (lorsque l'action est exécuter), je sauvegarde en session les paramètres de la page en cours pour pouvoir les récupérer lors de ma prochaine requête.
[lang=php] public function postDispatch(Zend_Controller_Request_Abstract $request) { if($request->getControllerName() != 'Error'){ Zend_Registry::get('session')->lastUrl = $request->getParams(); } }
Dernière modification par probitaille (08-09-2011 19:58:40)
Hors ligne
Pages: 1