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

MVC PHP Discussion :

Problème SwitchContext et routes


Sujet :

MVC PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 93
    Par défaut Problème SwitchContext et routes
    Bonjour,
    J'aimerai partager avec vous un problème que je n'arrive pas à identifier.

    J'essais de générer un sitemap au format xml, à partir d'un Zend_Navigation.

    Mon controller:

    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
    18
    19
    20
    21
    22
    23
    <?php
     
    class IndexController extends Zend_Controller_Action
    {
     
        public function init()
        {
     
            $contextSwitch = $this->_helper->getHelper('contextSwitch');
            $contextSwitch->addActionContext('sitemap', 'xml')
                          ->initContext();
     
        }
     
        public function indexAction(){ 
     
            //blablabla....
     
        }
     
        public function sitemapAction(){ }
     
    }
    dans ma vue ( sitemap.xml.phtml) j'ai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php 
    echo $this->navigation()->sitemap();
    ?>
    Le résultat via cette url est nikel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     http://www.monsite.fr/index/sitemap?format=xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <url><loc>http://www.monsite.fr/</loc></url>
    <url><loc>www.monsite.fr/test</loc></url>
    <url><loc>www.monsite.fr/coucou</loc></url></urlset>
    Par contre, si je met en place une route, là c'est le drame.
    Exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     $router->addRoute('sitemap',
                   new Zend_Controller_Router_Route('sitemap.xml',
                        array('controller' => 'index', 
                              'action' => 'sitemap',
                              'format' => 'xml')));
    Le résultat via cette url est incorrect:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     http://www.monsite.fr/sitemap.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <url><loc>http://www.monsite.fr/</loc></url>
    <url><loc>www.monsite.fr/sitemap.xml</loc></url>
    <url><loc>www.monsite.fr/sitemap.xml</loc></url></urlset>
    Quelqu'un a une idée?

    Merci par avance.

  2. #2
    Membre chevronné Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Par défaut
    Salut!

    As-tu essayé avec Zend_Controller_Router_Route_Static?
    Peux-tu montrer comment tu fabrique la navigation?

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 93
    Par défaut
    Meme résultat avec une route static.

    Voici sur quoi est basée ma navigation:

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    <?xml version="1.0" encoding="UTF-8"?>
     
    <configdata>
        <nav>
            <home>
                <label>Accueil</label>
                <uri>/</uri>
                <title>Accueil</title>
     
                <pages>
     
                    <test>
     
                        <label>Test</label>
                        <controller>test</controller>
                        <title>Test</title>
     
                    </test>
     
                    <coucou>
                          <label>Coucou</label>
                          <controller>coucou</controller>
                          <title>Coucou</title>
                    </coucou>
     
     
                </pages>
     
            </home>
     
        </nav>
     
    </configdata>

  4. #4
    Membre chevronné Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Par défaut
    Tu utiiseZend_Navigation_Page_Mvc?
    Dans la doc j'ai vu que tu pouvait reseter la route...

    $page->setRoute(null);

    Sinon.....c vrai que c'est zarb

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 93
    Par défaut
    Ouais c'est plutot zarb,

    voici l'initialisation de la navigation dans mon bootstrap

    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
    18
     
     protected function _initNavigation(){
     
            $this->bootstrap('layout');
     
            $layout = $this->getResource('layout');
     
            $view = $layout->getView();
     
            $config = new Zend_Config_Xml(APP_PATH . '/configs/navigation.xml', 'nav');
     
            $navig = new Zend_Navigation($config);
     
            $view->navigation($navig);
     
            return $navig;
     
        }
    Je vois pas trop où est la coquille...

  6. #6
    Membre chevronné Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Par défaut
    J'ai fait plein d'essais et malheureusement j'ai le même soucis...
    Je pense que c'est un bug.... sauf si quelqu'un trouve la solution bien évidement!

    Sinon en attendant tu peux générer le fichier sitemap.xml .... c'est souvent ce qui est fait d'ailleur.

    Désolé de ne pas pouvoir t'aider plus!

Discussions similaires

  1. [1.x] Problème avec le routing
    Par Haikel22 dans le forum Symfony
    Réponses: 4
    Dernier message: 23/04/2012, 13h20
  2. Réponses: 6
    Dernier message: 25/02/2011, 10h45
  3. Problème avec les routes
    Par touriste57 dans le forum MVC
    Réponses: 2
    Dernier message: 12/08/2009, 12h23
  4. Problème de module, route et contrôleur
    Par nicolas54 dans le forum MVC
    Réponses: 2
    Dernier message: 04/09/2008, 13h35
  5. [Eclipse3.3.0 CDT4.0.1] Problème mise en route
    Par arn0caba2le dans le forum Eclipse C & C++
    Réponses: 2
    Dernier message: 11/10/2007, 16h55

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