Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 01-12-2009 14:35:28

elec
Membre
Date d'inscription: 16-10-2009
Messages: 118

Zend_Router

Bonjour tout le monde,

Je souhaite personnaliser la route des liens de mes pages genre : http://localhost/exemple/public/city/paris.php,alors j'ai utilisé ce code et cela marche bien :


Dans mon bootstarp :

Code:

    protected function _initRouter()
    {
        $router = Zend_Controller_Front::getInstance()->getRouter();
        
        $route = new Zend_Controller_Router_Route_Regex('city/([-\w]+)\.php?', array(
                    'controller'    => 'index',
                    'action'    => 'index'
                ), array(
                    1    => 'paris',
                ), 'city/%s.php');
        $router->addRoute('city', $route);
        return $router;
    }

et dans mon IndexController:

Code:

        public function indexAction()
        {
        $this->view->route_variables = Zend_Controller_Front::getInstance()
                        ->getRouter()
                        ->getRoute('city')
                        ->getVariables();
        }

mais mon problème c'est :

Je ne sais pas comment améliorer le code au dessus pour une autre page  comme : http://localhost/exemple/public/city/marseille.php,c'est à dire quand j'ajoute une autre route je trouverai une confusion entre les pages parce que quand je récupère dans mon action la route par ''getRoute('city')" alors j'utilise le même code deux fois dans deux actions donc ici je trouve la confusion...

Je sais que c'est une question un peu bête mais j'imagine pas comment faire comme exemple si je cherche à personaliser 10 pages de mon site alors je dois créer 10 fois ma fonction "_initRouter()"...


je n'ai pas voulu écrire les codes que j'ai essayé car toujours ne donnent rien...


Merci.Nll

Dernière modification par elec (16-12-2009 10:27:28)

Hors ligne

 

#2 01-12-2009 14:56:46

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: Zend_Router

Bonjour,

Il y a une petite erreur dans ta configuration à la ligne " 1=> 'paris' "

Code:

        $route = new Zend_Controller_Router_Route_Regex('city/([-\w]+)\.php?', array(
                    'controller'    => 'index',
                    'action'    => 'index'
                ), array(
                    1    => 'cityName',
                ), 'city/%s.php');

Ensuite tu peux récupérer le nom de la ville dans ton indexAction en faisant :

Code:

$cityName = $this->_getParam("cityName");

donc si l'internaute appelle la page .../city/marseille.php, tu récupèreras "marseille" dans $cityName.

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

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