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

Zend Framework PHP Discussion :

Route et faux paramètre


Sujet :

Zend Framework PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Lost In Translation
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 166
    Par défaut Route et faux paramètre
    Bonjour,

    Je dois faire une MAJ sur un site réalisé avec ZF. J'ai quelques notions, mais rien d'extraordinaire dans ce framework (je bosse habituellement sur CI).

    Le site a été développé à la base pour être en français. Plusieurs personnes sont intervenues dessus pour le rendre multilingue (avec un système de session et un helper).

    Le soucis, c'est qu'actuellement, tous les contenus répondent à la même url

    monsite.com/toto => si dans la session on a une langue, on affiche le contenu dans la langue demandée.

    Ca pose un problème pour le référencement, parce que du coup, les robots pigent que dalle en allant sur le site.

    Je voudrais des fake url (mais qui ne soient pas des redirection, donc pas de code 301/302..., mais bien des codes 200). C'est à dire, rajouter un paramètre préfix à mes routes... sans qu'il soit utilisé...

    exemple :

    monsite.com/toto => langue fr
    monsite.com/en/toto => langue en
    monsite.com/es/toto => langue es

    Comment dire à ZF : préfixe dans l'URI un paramètre que j'ai en session, et zape le ?

  2. #2
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    Bonjour,
    Tu peux créer tes propre route et les ajouter à celles existantes.
    Regarde du coté des rewrite rules et de les ajouter au router

  3. #3
    Membre confirmé Avatar de Lost In Translation
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 166
    Par défaut
    Re,

    Je viens de relire la documentation sur les routeurs ZF, et je n'y ai rien vu qui puisse m'aider.

    Il est aussi fort possible que je ne comprenne pas... mais là tout de suite, je suis un peu bloqué.

    Serait-il possible d'avoir une sorte d'exemple qui reprenne mon besoin ?

  4. #4
    Membre éprouvé Avatar de Alcide_
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2008
    Messages : 79
    Par défaut
    Pour la gestion des préfixes, essaie avec un plugin et le chaînage des routes, je n'ai pas testé donc je ne te garanti rien !

    Dans ton configs/route.ini :
    Code : 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
     
     
    ; LANG
    routes.lang.type = Zend_Controller_Router_Route
    routes.lang.route = :@language
    routes.lang.reqs.language = "[a-z]{2}"
    routes.lang.defaults.language = fr
     
    ; TOTO
    routes.toto.route = "/toto"
    routes.toto.defaults.module = default
    routes.toto.defaults.controller = index
    routes.toto.defaults.action = toto
     
    ;CHAÎNAGE
    routes.lang-toto.type = Zend_Controller_Router_Route_Chain
    routes.lang-toto.chain = lang, toto
    Dans ton My_Controller_Plugin_Routes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class My_Controller_Plugin_Routes extends Zend_Controller_Plugin_Abstract
    {
        public function  routeStartup(Zend_Controller_Request_Abstract $request) {
            Zend_Controller_Front::getInstance()
                    ->getRouter()
                    ->addConfig(new Zend_Config_Ini(APPLICATION_PATH . '/configs/routes.ini'), 'routes');
        }
    }
    Dans ton configs/application.ini :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    resources.frontController.plugins.Routes = "My_Controller_Plugin_Routes"
    Après tu pourras récupérer ton paramètre lang en découpant ton url dans un autre plugin pour la gestion de Zend_Translate par exemple...

    Il doit y avoir plus simple mais c'est déjà une piste...

    Bon courage !

  5. #5
    Membre confirmé Avatar de Lost In Translation
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 166
    Par défaut
    Coucou,

    Merci de ta réponse. Ca a l'air juste tellement loin de ce qu'il y a sur le site que je dois modifier.

    Pas d'utilisation du fichier route.ini. Toutes les routes sont actuellement dans le bootstrap du module dans _initRoutes.

    Du coup... la première partie de ta réponse, j'arrive pas trop à l'assimiler.

    Ensuite... pour les plugins, je ne sais pas où le mettre... l'arborescence du projet a l'air d'avoir été faite avec les pieds.

    J'vais essayer de me dépatouiller avec ce que tu as écrit quand je serais au calme... mais là toiut de suite, c'est de l'hébreu pour mooi.

    Merci quand même ^^

  6. #6
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    Bonjour,
    Peux tu nous faire voir ta méthode _initRoutes ?

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2.x] Route avec un paramètre à null -> erreur
    Par romuluslepunk dans le forum Symfony
    Réponses: 4
    Dernier message: 27/12/2014, 16h28
  2. Route complexe avec paramètre obligatoire
    Par Oberown dans le forum ASP.NET MVC
    Réponses: 1
    Dernier message: 30/11/2013, 14h50
  3. Routes avec plusieurs paramètres optionnels complexes
    Par Oberown dans le forum ASP.NET MVC
    Réponses: 1
    Dernier message: 29/11/2013, 09h39
  4. [1.x] routing - cacher certains paramètre dans URL, possible ?
    Par duke666 dans le forum Symfony
    Réponses: 6
    Dernier message: 13/04/2012, 19h10
  5. [2.x] Problème de routing avec un paramètre optionnel
    Par rica1503 dans le forum Symfony
    Réponses: 6
    Dernier message: 12/05/2011, 04h21

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