IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Autres composants PHP Discussion :

Un plugin de retour


Sujet :

Autres composants PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 215
    Par défaut Un plugin de retour
    Bonjour,

    Je voudrais aujourd'hui créer un plugin simple :

    Il renvoi l'url en mémoire, puis enregistre l'url courante. Ceci a pour but de fournir un lien "retour" universel.

    J'ai cependant un contrôleur "message", qui permet la transition d'une page à l'autre en émettant un message clair, style "vous êtes désormais loggué".
    Les passages par ce contrôleur ne doivent pas être mémorisés.

    J'ai pensé à un banal système de session, ou à un registry ?

    Que pensez-vous du plugin (idée), et de sa mise en oeuvre ? conseil ?

    Et surtout, quand faire agir le plugin ? preDispatch ?

  2. #2
    Membre expérimenté Avatar de Alshten
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 157
    Par défaut
    Pour gérer le passage de message entre deux pages, tu peux utiliser le Zend FlashMessenger :
    http://framework.zend.com/manual/fr/...onhelpers.html

    Voilà, maintenant tu peux tout mettre dans un plugin.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 215
    Par défaut
    Hum je connaissais pas flash messenger, du coup j'ai codé mon propre truc :/
    Quelqu'un a une ressource riche sur flash messenger ?

    Pour ce qui est du référer, je sais comment procéder en somme, la question concerne la mise en forme on va dire. Le plugin doit être appelé quand ?

  4. #4
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Citation Envoyé par Feng-Huang Voir le message
    Hum je connaissais pas flash messenger, du coup j'ai codé mon propre truc :/
    Quelqu'un a une ressource riche sur flash messenger ?
    Ce n'est pas très riche, mais tu peux commencer par la doc officielle.
    A part ça, pour moi, la meilleure doc, ce sont les fichiers sources (et en plus c'esttrès formateur)

    Citation Envoyé par Feng-Huang Voir le message
    Pour ce qui est du référer, je sais comment procéder en somme, la question concerne la mise en forme on va dire. Le plugin doit être appelé quand ?
    Personnellement, je ne passerais pas par HTTP_REFERER, qui n'est pas toujours utilisable, mais plutôt par l'enregistrement de la dernière (voire des dernières) page(s) visitée(s) en session.

    Pour cela, l'utilisation d'un plugin est bien adaptée, avec un enregistrement de la page en cours en dispatchLoopShutdown (une fois que tout le reste est terminé).

    Pour l'affichage du lien retour, peut-être simplement faire une aide de vue qui interroge les données en session ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 215
    Par défaut Solution
    Voici donc la solution finale :

    Code Back.php | Plugin : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?php
     
    class Feng_Controller_Plugin_Back extends Zend_Controller_Plugin_Abstract {
     
        protected $_request;
        protected $_unregistred_controller = array('message');
     
        public function preDispatch(Zend_Controller_Request_Abstract $request){
     
            $this->_request = $request;
        }
     
        public function dispatchLoopShutdown(){
     
            if(!in_array($this->_request->getControllerName(),$this->_unregistred_controller)){
     
                $navig = new Zend_Session_Namespace('navigation');
                $navig->backUrlByPlugin = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
            }
        }
    }

    Le plugin est conçu pour permettre de ne pas enregistrer le passage par certains controller (comme mon flashMessenger like)

    Code GetBackUrl.php | Aide de vue : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    class Feng_View_Helper_GetBackUrl extends Zend_View_Helper_Abstract {
     
        public function getBackUrl(){
     
             $navig = new Zend_Session_Namespace('navigation');
             return $navig->backUrlByPlugin;
        }
     
    }

    Et l'aide de vue associée, qui permet la récupération de l'url de retour via un simple $this->getBackUrl() dans les vues

    Todo : ajouter le support des https par exemple, je n'en ai pour l'instant pas besoin donc j'ai pas cherché, mais si quelqu'un veut porter sa pierre

Discussions similaires

  1. [KTextEditor::Plugin|(Qt?)]intercepter le retour arriere
    Par jo_link_noir dans le forum Bibliothèques
    Réponses: 0
    Dernier message: 16/06/2011, 12h03
  2. Retour d'un plugin
    Par kangouroub dans le forum jQuery
    Réponses: 2
    Dernier message: 03/11/2010, 10h31
  3. Réponses: 0
    Dernier message: 25/06/2010, 14h30
  4. Retour d'expérience - plugin release
    Par hel22 dans le forum Maven
    Réponses: 1
    Dernier message: 29/11/2007, 13h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo