Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 14-08-2007 09:20:41

zorglob
Nouveau membre
Date d'inscription: 13-08-2007
Messages: 2

Zend_Controller_Router_Rewrite et route par default

Bonjour,
je vous explique rapidement ce que je souhaite faire, et ou ce poses les problemes.

je gere une arborescence via Zend, et le but est d'obtenir des url du genre

ndd.com/cat1/souscat1/
ndd.com/cat2/souscat2/
ndd.com/cat2/souscat2/soussouscat2

tout ca qui se construit bien sur "dynamiquement"


toutes ces urls sont redirigés a l'aide du routeur rewrite sur le meme controller via un fichier ini


Code:

;################   niveau 3  #######################
routes.categories3.route = /:cat1/:cat2/:cat3/
routes.categories3.defaults.nbcat = 3

;################   niveau 2  #######################
routes.categories2.route = /:cat1/:cat2/
routes.categories2.defaults.nbcat = 2

;################   niveau 1  #######################
routes.categories1.route = /:cat1/
routes.categories1.defaults.nbcat = 1

sauf qu'avec ce systeme... toutes les url sont redirigé, ce qui bien sur, ne me plais pas, par exemple, si je veux une url  ndd.com/contact, je veux qu'elle appelle le controleur Contact


bien sur je pourrai ecrire une regle de reecriture dans le .ini pour contact, mais l'idéal en faite, serai que toutes les urls, si elle ne trouve pas de controleur, appelle un controleur par default...

sauf que je n'arrive pas à le faire  smile si qq un peu me filer un coup de pouce, ca serai sympa
( si vous avez une autre facon de gerer, n'hésitez pas )

et bravo pour ce forum qui m'a déja bien aidé a demarrer !

Hors ligne

 

#2 14-08-2007 11:09:53

zorglob
Nouveau membre
Date d'inscription: 13-08-2007
Messages: 2

Re: Zend_Controller_Router_Rewrite et route par default

il semble que j'ai trouver un paliatif, mais je trouve ca un peu cracra

Code:

$request  = new Zend_Controller_Request_Http();
$response = new Zend_Controller_Response_Http();

try
{
    $frontController->dispatch($request, $response);
}
catch (Exception $exception)
{
    $request->setPathInfo('/index/');
    $frontController->dispatch($request, $response);
}

si qq un a une solution plus elegante ?

Hors ligne

 

#3 14-08-2007 11:53:47

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

Re: Zend_Controller_Router_Rewrite et route par default

Bonjour,

Perso, j'aurais tendance à faire une route du type

Code:

routes.categories3.route = /category/:cat1/:cat2/:cat3/

et après quand ça ne commence pas par /category/ ça rebalance vers le controller par défaut.


Maintenant si tu tiens à tes URL, tu ne pourras pas faire ce que tu veux uniquement avec le routeur. Le routeur ne pourra pas distinguer tout seul un nom de catégorie et un nom de controlleur.

Si tu veux faire ça, regarde du coté des plugins et du preDispatch. Dans ton predispatch, tu vérifies si le premier paramètre correspond à une catégorie. Si oui, tu continues, sinon tu indique que le premier paramètre est le controller.
Note : c'est bien à faire dans un plugin et pas dans un helper, parce qu'il ne vaut mieux pas que ton action soit déjà chargée.

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