Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Hello.
Pour un site mobile, je dois implémenter un bouton retour sur toutes les pages.
D'après le client, les iphones n'ont pas de bouton 'retour', le bouton du smartphone quitte apparemment le navigateur au lieu de retourner à la page précédente ( j'ai un smartphone android avec un vrai bouton retour ).
Je m'impose ces restrictions :
- Le bouton retour ne doit jamais retourner sur un autre site
- Le bouton retour ne doit diriger que sur une page valide de mon site
Voici donc ce que j'ai fait.
Dans le controller :
[lang=php] public function setEventManager(EventManagerInterface $em) { $em->attach('dispatch', function ($e) { $rm = $e->getRouter()->getRoutePluginManager(); $uri = ''; $referer = $this->request->getHeaders('Referer'); if ($referer !== false) { $uri = $referer->getUri(); $request = (new Request())->setUri($uri); $match = TreeRouteStack::factory()->addRoutes($e->getApplication()->getConfig()['router']['routes'])->match($request); $uri = ($match !== null) ? $uri : ''; } $e->getTarget()->layout()->setVariables([ 'referer' => $uri ]); }, 100); parent::setEventManager($em); }
Dans le layout :
[lang=php]<a href="<?= $this->referer ?>">retour</a>
Dernière modification par Bouks (20-03-2014 12:00:20)
Hors ligne