Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 14-05-2008 18:28:31

Dator
Membre
Lieu: Lyon
Date d'inscription: 14-05-2008
Messages: 10
Site web

[Résolu] [Zend_Router] Jolies Urls optimisés référencement

Bonjour,

Je me suis mis à Zend Framework et je l'ai déjà bien en main (helper, mvc, Zend_Form ect)

Le problème est que par exemple j'ai une adresse de ce genre

http://www.monsite.com/blog/billet/id/20

ici on a 4 sous dossier ce qui n'est pas super estétique .
Je voulais savoir si il était possible, dans un premier temps, de mettre les paramètre, ici id et 20, séparer par des tirets.

Et dans un deuxième temps, de ne pas avoir à passer l'id dans l'url mais uniquement le titre du post par exemple :

http://www.monsite.com/blog/billet/montitre

Merci d'avance pour ces réponses.

Cordialement,

Clément

Dernière modification par Mr.MoOx (15-05-2008 18:22:27)

Hors ligne

 

#2 15-05-2008 01:59:03

ndesaleux
Membre
Date d'inscription: 16-04-2007
Messages: 196
Site web

Re: [Résolu] [Zend_Router] Jolies Urls optimisés référencement

http://framework.zend.com/manual/fr/zen … outer.html sera ton ami, après tu n'as plus qu'a l'adapter à ton cas spécifique avec les contraintes que ca imposent

Hors ligne

 

#3 15-05-2008 08:06:05

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [Résolu] [Zend_Router] Jolies Urls optimisés référencement

En effet c'est possible.
Regarde plus particulièrement du côté du Router_Regex.
J'ai moi même réussi à faire de jolie route dans le genre (par exemple sur le blog de mon site perso big_smile )

Hors ligne

 

#4 15-05-2008 10:10:44

Julien
Membre
Date d'inscription: 16-03-2007
Messages: 501

Re: [Résolu] [Zend_Router] Jolies Urls optimisés référencement

Oui j'ai fait une route similaire.
En revanche l'ID doit quand même apparaitre pour pouvoir retrouver l'entité en question via sa clé primaire : j'ai donc rajouté le nom après l'id (dans mon cas) :

[routes]
auteurs.type = "Zend_Controller_Router_Route_Regex"
auteurs.route = "auteurs/edit\-(\d+)\-(.+)"
auteurs.defaults.controller = auteurs
auteurs.defaults.action = edit
auteurs.map.1 = id
auteurs.reverse     = "auteurs/edit-%d-%s"

Hors ligne

 

#5 15-05-2008 10:52:20

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

Re: [Résolu] [Zend_Router] Jolies Urls optimisés référencement

Bonjour Dator,

Pour la forme de l'URL, regarde les messages ci dessus, il faut utiliser le router.

Ensuite si tu veux une url du type http://www.monsite.com/blog/billet/montitre, il faut mettre en place une moulinette pour "générer ton url". Si tu ne veux pas mettre l'id dans ton URL, il faut que ta chaîne "montitre" soit unique dans ta base.

En gros l'idée c'est :
- prendre le titre du message qu'un internaute est en train d'enregistrer
- enlever tous les caractères bizarres (remplacer les "é" par des "e", les ponctuations par des "_",...)
- vérifier que la chaîne générée est unique et la sauvegarder avec ton message (si elle n'est pas unique, tu peux ajouter un _1, _2,... à la fin pour la rendre unique).
- ensuite quand l'internaute appelle l'URL, tu récupères le message à partir de cette chaîne de caractères au lieux d'utiliser son id

A+, Philippe


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

Hors ligne

 

#6 15-05-2008 18:04:00

Dator
Membre
Lieu: Lyon
Date d'inscription: 14-05-2008
Messages: 10
Site web

Re: [Résolu] [Zend_Router] Jolies Urls optimisés référencement

Merci beaucoup à tous !
Vous me sauvez la vie ! Serieusement je suis tombé amoureux de ce framework même si je trouve qui lui manque quelques fonctionnalités pour être parfaits (Un captcha dans le Zend_Form, des helpers Ajax et Javascript ...)

@philippe : Merci pour cette excellente idée, j'avais déjà commencer à chercher et j'ai adopté cette solution ! Google va se régaler dans les URL.

@Julien : Merci beaucoup pour ces morceaux de code qui m'ont beaucoup servit

@ndesaleux & @Mr.MoOx : Merci pour votre aide wink

A bientôt, Clément

Hors ligne

 

#7 16-05-2008 07:32:38

whitespirit
Membre
Date d'inscription: 25-01-2008
Messages: 393

Re: [Résolu] [Zend_Router] Jolies Urls optimisés référencement

Petite question stupide, mon url est de ce type : http://monsite/module/controlleur/action sachant qu'en général j'ai que le controlleur index, ce qui donne monsite/module/index/index par exemple. C'est moche !!! Mais j'ai déjà bien avancé dans le développement de l'appli, alors je me pose cette (stupide) question : Est-ce que si je modifie mes urls, est-ce que les méthodes getModuleName, getControllerName, etc vont donner le bon module, controlleur  et action ? Je me sers aussi du nom de module, controlleur et action afin de gérer les Acls...

Il y'a des parties de ZF que je commence à bien maitriser, mais hélas d'autres thèmes que je n'ai pas encore eu l'occasion abordée (et les routes en font parties).

Hors ligne

 

#8 16-05-2008 08:54:31

Nikkau
Membre
Date d'inscription: 25-03-2008
Messages: 52

Re: [Résolu] [Zend_Router] Jolies Urls optimisés référencement

Oui, ça sera parfaitement reconnu normalement.

En fait c'est justement le rôle d'un routeur custom, remplir ces paramètres malgré qu'ils ne soient pas dans la requête explicitement.

Hors ligne

 

#9 16-05-2008 19:07:33

lethak
Membre
Lieu: France
Date d'inscription: 05-04-2008
Messages: 168

Re: [Résolu] [Zend_Router] Jolies Urls optimisés référencement

Bootstrap (index.php)

Code:

        // Routes
        $CONFIG_ROUTES = new Zend_Config_Ini(CONFIG_PATH.'/routes.ini', null);

        $router = new Zend_Controller_Router_Rewrite();
        $router->addConfig($CONFIG_ROUTES);
        
        $FRONT->setRouter($router);

routes.ini

Code:

    [myThemeSelector]
    
        route = "themeSelector/:themeName/*"
        defaults.module = test
        defaults.controller = index
        defaults.action = route
        defaults.themeName = "W2Orange"

    [AdminControlPanel]
    
        route = "administration"
        defaults.module = admin
        defaults.controller = index
        defaults.action = index

IT Dev @Twitter

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