Erreur de Rooting, perte du paramètre $language d'un article à l'autre

Par Hugo, il y a 15 ans


Bonjour,

Un autre sujet pour un autre problème avec ma tentative d'internationalisation de mon blog.
Cette fois-ci c'est au niveau de l'url que ça foire ! J'utilise des Router pour mes urls qui sont :

Router::connect(
        '/:language/article/:id-:slug',
        array('controller' => 'posts', 'action' => 'view'),
        array(
            // rien de compliqué, puisque ceci fera simplement correspondre ":id" à $articleID dans votre action
            'pass' => array('id', 'slug'),
            'id' => '[0-9]+',
            'language' => '[a-z]{3}'
        ));
      Router::connect(
        '/:language/categorie/:id-:slug',
        array('controller' => 'posts', 'action' => 'category'),
        array(
            // rien de compliqué, puisque ceci fera simplement correspondre ":id" à $articleID dans votre action
            'pass' => array('id', 'slug'),
            'id' => '[0-9]+',
            'language' => '[a-z]{3}'
        ));
     Router::connect(
        '/:language/:controller/*',
        array(),
        array(
            'language' => '[a-z]{3}'
        ));

Ca fonctionne parfaitement sur ma page d'accueil pour accéder à un article ainsi que le changement de langage sur la page d'accueil. Mais une fois sur la page de l'article, lorsque je clique sur le "drapeau" pour changer de langue, il y a une erreur, le changement ne s'effectue pas et l'url ne correspond plus.

Voici les résultats :

//le code du "drapeau"
<div id="fre">
                <?php echo $html->link($html->image('/img/fre.png', array('alt'=>'Français','title'=>'Français')), array('language'=>'fre')+$this->params'pass'], array('escape'=>false));?>
            </div>
            <div id="eng">
                <?php echo $html->link($html->image('/img/eng.png', array('alt'=>'English','title'=>'English')), array('language'=>'eng')+$this->params'pass'], array('escape'=>false));?>
            </div>
//-->l'url de l'accueil vers l'article
http:***/blog/fre/article/12-Un_autre_article
//-->l'url qui déconne (url retournée du code ci-dessus)
http:***/blog/posts/view/12/Un_autre_article/language:eng

Je ne trouve pas l'erreur, surement dans mon codage des Router. Mais c'est une adaptation puisque dans le tutoriel d'Internationalisation de GrafikArt. Il n'utilise pas d'url simplifiée comme celle-ci.

Si une âme généreuse venait à mon aide, je la remercie d'avance.

2 réponses

ndiayejp, il y a 14 ans

J'ai le meme probleme toujours pas de solution ??

ndiayejp, il y a 14 ans

Quelqu'un pourrait t'il nous aider j'ai exactement le meme probleme et je vais bientot pété les plombs j'ai rien trouvé comme erreur !