Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 20-03-2014 11:52:54

Bouks
Membre
Lieu: Paris
Date d'inscription: 31-08-2012
Messages: 241

Implémentation bouton retour

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 smile ).

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 :

Code:

[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 :

Code:

[lang=php]<a href="<?= $this->referer ?>">retour</a>

Dernière modification par Bouks (20-03-2014 12:00:20)


22914720

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages