Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 09-01-2009 10:02:02

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

[Résolu][Zend_Controller_Router]Ajout de paramètre

Bonjour,


Une petite question rapide :

Comment ajouter un paramètre supplémentaire et static dans une route ?

Je m'explique, je veux avoir des url optimisées pour les moteurs, du genre (c'est un exemple hein) :
- http://www.xxxx.com/acheter/maison/paris/
- http://www.xxxx.com/acheter/appartement/paris/
- http://www.xxxx.com/acheter/bureaux/paris/

etc.

Tout va pointer sur la même page.

Je vais donc avoir dans mon ini:

Code:

[routes]
acheter.route = "acheter/*"
acheter.defaults.controller = products
acheter.defaults.action = index

Sauf que moi je veux des accès directs aux produits via des liens/images et faire en sorte que pour :
- http://www.xxxx.com/acheter/bureaux/paris/

Je reçoive le paramètre "typebien" avec comme valeur "localprofessionnel" par ex.

Donc un truc du genre :

Code:

[routes]
bureaux.route = "acheter/bureaux/*"
bureaux.defaults.controller = products
bureaux.defaults.action = index
; et la je sais pas,
; du genre bureaux.typebien = "localprofessionnel" ??

Je ne sais pas comment faire ce truc tout bête,

Merci !


A+ benjamin.

Dernière modification par Delprog (12-01-2009 13:57:32)


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#2 12-01-2009 09:03:47

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [Résolu][Zend_Controller_Router]Ajout de paramètre

Personne ne sait me répondre ? Oo


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#3 12-01-2009 09:28:02

Guillhomme
Membre
Date d'inscription: 09-10-2008
Messages: 102

Re: [Résolu][Zend_Controller_Router]Ajout de paramètre

Pas sur d'avoir bien compris ton probleme, tu veux pouvoir recuperer le deuxieme parametre c'est ca ?
Si c'est ca, voila le code ( en PHP et non .ini )

Code:

$route = new Zend_Controller_Router_Route(
    'acheter/:typebien',
    array(
        'controller' => 'acheter',
        'action'     => 'index'
    ));
$router->addRoute('typebien', $route);

Et dans ton controller :

Code:

$typebien = $this->getParam('typebien');

J'ai fais de memoire, et j'ai rien pour tester...

Hors ligne

 

#4 12-01-2009 10:22:51

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [Résolu][Zend_Controller_Router]Ajout de paramètre

Salut,

Non c'est pas ça smile

Je voudrais créer une route statique dans laquelle je rajoute un paramètre avec une valeur fixe.

Par exemple que:

http://www.xxxx.com/acheter/bureaux/paris/

me renvoie sur :

http://www.xxxx.com/acheter/

avec comme paramètre "typebien" égale à "localpro".

Tout ça pour avoir une url optimisée qui correspond à des valeurs plus particulières.  Dans cet exemple "bureaux" est optimisé et correspond aux paramètres "typebien=localpro".


Merci,

A+ benjamin.

Dernière modification par Delprog (12-01-2009 10:23:56)


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#5 12-01-2009 10:30:03

Guillhomme
Membre
Date d'inscription: 09-10-2008
Messages: 102

Re: [Résolu][Zend_Controller_Router]Ajout de paramètre

Ha oui ok, je me disais bien que ca serait pas aussi simple smile
Je sais pas, et je serai curieux de savoir si c'est possible smile

Hors ligne

 

#6 12-01-2009 11:24:20

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

Re: [Résolu][Zend_Controller_Router]Ajout de paramètre

Bonjour Delprog,

Soit tu fais une route statique (à mettre à la fin des routes, sinon elle ne sera pas prioritaire sur tes routes classiques) :

Code:

$route = new Zend_Controller_Router_Route_Static(
    'acheter',
    array(
      'controller' => 'products',
      'action' => 'index',
      'typebien' => 'localpro'
    )
);
$router->addRoute('routeName', $route);

Je te laisse convertir ça en config.ini...

Sinon tu peux aussi faire des redirections 301
- soit au niveau d'apache, tu utilises le mod_proxy pour faire ta redirection
- soit au niveau PHP, tu te fais un routeur à la mano au début du bootstrap du genre :

Code:

$redirect = null;
switch (rtrim($_SERVER["REQUEST_URI"],"/")) {
  case "/acheter/bureaux/paris":
    $redirect = "/acheter/";
    break;
}
if ($redirect !== null) {
  header("Status: 301 Moved Permanently", false, 301);
  header("Location: $redirect");
}

(code non testé, c'est pour donner un ordre d'idée...)

A+, Philippe


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

Hors ligne

 

#7 12-01-2009 13:56:31

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [Résolu][Zend_Controller_Router]Ajout de paramètre

Bon ben voilà :

à mettre à la fin des routes, sinon elle ne sera pas prioritaire sur tes routes classiques

En fait ce que j'avais écris naturellement dès le départ, dans mon premier post, était juste smile

Je n'ai juste pas considéré les priorités dans le bon sens !


Merci pour l'indication philippe.

Pour info, je faisais ça via apache avant et c'est quand même beaucoup plus intuitif comme ça pour les autres personnes qui interviennent sur le code, et encore plus avec un fichier ini.

Donc pour re-situer, pour ceux que ça intéresse, tout bêtement :

Code:

[routes]
;bureaux
bureaux.route = "acheter/bureaux/*"
bureaux.defaults.controller = products
bureaux.defaults.action = index
bureaux.typebien = "localpro"

;locaux-commerciaux
locaux-commerciaux.route = "acheter/locaux-commerciaux/*"
locaux-commerciaux.defaults.controller = products
locaux-commerciaux.defaults.action = index
locaux-commerciaux.typebien = "localcom"
;etc.

A+ benjamin.


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

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