Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#26 12-07-2008 12:52:21

slaughter
Membre
Date d'inscription: 01-04-2008
Messages: 217

Re: Url propre pour le référencement

Oki. On commence à s'approcher du bout...

Pour le %d et %s, avez vous un lien à me donner pour connaître la liste exhaustive des autres possibilités ?
J'ai regardé du coté des regex mais je n'ai rien trouvé sur le %*

Petit chose aussi, lorsque j'utilise le helper url il me donne des liens du type full-1-mon+titre au lieu de full-1-mon-titre. Avez vous une explication ?


Sinon, il me reste à savoir comment enlever les variables :language et :sport de la définition de ma route.

Je vous remercie encore pour toute votre aide.

Hors ligne

 

#27 12-07-2008 15:38:30

julz
Membre
Date d'inscription: 19-07-2007
Messages: 33

Re: Url propre pour le référencement

bonjour,

regarde du coté de la doc php.net et la fonction sprintf, il y a tous les paramètres dispo

Hors ligne

 

#28 12-07-2008 20:07:59

slaughter
Membre
Date d'inscription: 01-04-2008
Messages: 217

Re: Url propre pour le référencement

Oki. Merci pour la doc. C'est exactement ce que je voulais.

Sinon, comment réussir à enlever les deux variables :language et :sport de ma route?

Hors ligne

 

#29 14-07-2008 18:24:12

slaughter
Membre
Date d'inscription: 01-04-2008
Messages: 217

Re: Url propre pour le référencement

Petit up pour mon dernier problème...

Hors ligne

 

#30 15-07-2008 06:17:28

kiminox
Membre
Date d'inscription: 15-01-2008
Messages: 37

Re: Url propre pour le référencement

Bonsoir,

je suis d'accord à 100% avec slaughter : n'y a t il pas un moyen plus générique que de se taper les routes manuellement dans un fichier de config ou pire, dans le code?
Comme j'utilise des modules, j'ai donc pensé à faire une boucle pour rajouter des routes automatiquement dans le routeur.
Du style :
boucle 1 : sur les modules
boucle 2 : sur les controller du module
  boucle 3 : sur les actions du controller (si cela est possible?!)
   $this->addRoute(
            moduleNom,
            new Zend_Controller_Router_Route(
                '',
                array(
                    'controller' => controllerNom,
                    'action' => actionNom               
                )           
            )
        );

Je vais essayer et je vous tiens au courant

Yoong

Hors ligne

 

#31 17-07-2008 15:09:44

slaughter
Membre
Date d'inscription: 01-04-2008
Messages: 217

Re: Url propre pour le référencement

petit Up.

Je n'y suis toujours pas. Je n'arrive pas à retirer la valeur en dure de :language et :sport dans ma route.

Avez vous une piste?

Hors ligne

 

#32 23-07-2008 22:03:56

slaughter
Membre
Date d'inscription: 01-04-2008
Messages: 217

Re: Url propre pour le référencement

Bonjour à tous,

dernier up. J'ai vraiment besoin d'avoir la solution et donc j'insiste un peu (beaucoup ?).

Ma route ressemble pour l'instant à ceci :

Code:

routes.news.route = "fr/sport1/news/view/full\-(\d+)\-(.+).html"

et je voudrais qu'elle ressemble à ça :

Code:

routes.news.route = ":language/:sport/news/view/full\-(\d+)\-(.+).html"

Evidemment ce code ne marche pas. Quelle est la solution ?

Hors ligne

 

#33 24-07-2008 09:26:49

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

Re: Url propre pour le référencement

Bonjour,

Je te donne une syntaxe sans fichier de conf, mais le principe est là et ça va plus vite pour le copier/coller de mon code :

Code:

    $router->addRoute(
        "news",
        new Zend_Controller_Router_Route_Regex(
              '(\w+)/(\w+)/news/view/full\-(\d+)\-(.+).html',
            array(
                'controller' => 'index',
                'action' => 'news'
            ),
            array(
                1 => 'language',
                2 => 'sport',
                3 => 'id',
                4 => 'titre'
            )
        )
    );

\w permet détecter les caractères [0-9a-zA-Z].
Je n'ai pas essayé la route, il y a peut-être une erreur de syntaxe, mais le principe est là.

A+, Philippe


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

Hors ligne

 

#34 25-07-2008 00:33:03

slaughter
Membre
Date d'inscription: 01-04-2008
Messages: 217

Re: Url propre pour le référencement

Oki. Merci, je comprends mieux la logique.

Par contre pour le reverse, si je fait ceci => "%s/%s/news/view/full-%d-%s.html", j'ai un beau :

Fatal error: Uncaught exception 'Zend_Controller_Router_Exception' with message 'Cannot assemble. Too few arguments?'

Je n'arrive pas à savoir d'où cela vient.

Hors ligne

 

#35 25-07-2008 17:39:01

maniT4c
Nouveau membre
Date d'inscription: 25-07-2008
Messages: 1

Re: Url propre pour le référencement

Il peut également être intéressant de limiter la taille des url. Pas forcément pour le référencement mais pour ne pas perturber les utilisateurs.
J'ai rédigé un billet sur le sujet si ça vous intéresse:
Url+referencement

Hors ligne

 

#36 25-07-2008 20:07:31

slaughter
Membre
Date d'inscription: 01-04-2008
Messages: 217

Re: Url propre pour le référencement

Merci pour le lien maniT4c.

Je viens de voir une éventuelle cause de mon problème.
Voici mon fichier de configuration des routes:

Code:

routes.news.route = ":language/:sport/:module/:controller/:action/*"
routes.news.type = "Zend_Controller_Router_Route_Regex"
routes.news.route = "(\w+)/(\w+)/news/view/full\-(\d+)\-(.+).html"
routes.news.defaults.module = "news"
routes.news.defaults.controller = "view"
routes.news.defaults.action = "full"
routes.news.map.1 = "language"
routes.news.map.2 = "sport"
routes.news.map.3 = "id"
routes.news.map.4 = "titre"
routes.news.reverse = "%s/%s/news/view/full-%d-%s.html"

et voici l'utilisation de la fonction url :

Code:

<a href="<?php echo $this->url(array('language' => 'fr', 'sport' => 'sport1', 'id' => $news->news_id,'titre' => $news->news_title), 'news') ?>">lien</a>

Ce lien marche parfaitement mais comme vous le voyez, je suis obligé de mettre en dure la valeur des paramètres language et sport. Je voudrais ne pas mettre la valeur de ces variables et que le controller comprenne qu'il faut donc mettre les valeurs présentes sur la page actuelle, exactement sur le même principe que le lien de changement de langue qui ressemble juste à ceci :

Code:

$this->url(array('language'=>'en'));

Dans ce cas, on arrive sur la même page avec seulement la variable language qui change.

Comment récupérer ce fonctionnement lorsque l'on utilisa la fonction url avec une route définie ?

Hors ligne

 

#37 18-08-2008 18:25:17

slaughter
Membre
Date d'inscription: 01-04-2008
Messages: 217

Re: Url propre pour le référencement

petit up

Hors ligne

 

#38 31-08-2008 19:20:24

lalouve
Nouveau membre
Date d'inscription: 31-08-2008
Messages: 1

Re: Url propre pour le référencement

Salut,

Moi j'ai fait un plugin pour gérer les langues et il rajoute une variable contenant la valeur de la langue sélectionnée à la vue... C'est peut être une solution.

Mais si je poste ici c'est parce que j'ai un êtit problème avec l'écriture des routes dans mon fichier config.
J'utilise un fichier xml et je voudrais creer une route Zend_Controller_Router_Route_Regex.

Par exemple Julien a donné l'exemple suivant pour un config.ini
auteurs.type = "Zend_Controller_Router_Route_Regex"
auteurs.route = "auteurs/edit\-(\d+)\-(.+)"
auteurs.defaults.controller = auteurs
auteurs.defaults.action = edit
auteurs.map.1 = id

Quelle est la syntaxe pour traduire le map pour un fichier config.xml ?
J'ai pensé à ça mais... ça ne fonctionne pas

Code:

<auteurs route="auteurs/edit\-(\d+)\-(.+)">
  <type>Zend_Controller_Router_Route_Regex</type>
  <defaults>
    <controller>auteurs</controller>
    <action>edit</action>
  </defaults>
  <map>
     <array id="1">id</array>
  </map>
</newsedition>

Quelqu'un peut-il m'aider ?

Hors ligne

 

#39 26-09-2008 01:11:10

alien7
Membre
Date d'inscription: 29-04-2007
Messages: 447

Re: Url propre pour le référencement

Bonsoir,
Mon helper url ne m'encode pas l'url, je ne comprends pas, si je le fais manuellement ca marche. Pourtant par defaut il est à true.

Code:

<a href="/<?= $this->url(array(
    'cat' => 5,
    'id' => 6,
    'title' => "héllo world"
), 'catalogSM'); ?>">Liens </a>

Le route :

Code:

routes.news.type = "Zend_Controller_Router_Route_Regex"
routes.news.route = "news/(\d+)-(\d+)-(.+).html"
routes.news.defaults.controller = "news"
routes.news.defaults.action = "index"
routes.news.map.1 = "cat"
routes.news.map.2 = "id"
routes.news.map.3 = "title"
routes.news.reverse = "news/%d-%d-%s.html"

Merci d'avance

Dernière modification par alien7 (26-09-2008 10:10:20)


ZF 2.3 - Twitter Bootstrap 3.2
Local: Ubuntu  -> Apache2 2.4 - MariaDB 10 - PHP 5.6

Hors ligne

 

#40 26-09-2008 01:42:09

pozowebs
Membre
Lieu: Gran Canaria
Date d'inscription: 06-07-2008
Messages: 83
Site web

Re: Url propre pour le référencement

alien7 a écrit:

Le route :

Code:

routes.newscatal.type = "Zend_Controller_Router_Route_Regex"
routes.news.route = "news/(\d+)-(\d+)-(.+).html"
routes.news.defaults.controller = "news"
routes.news.defaults.action = "index"
routes.news.map.1 = "cat"
routes.news.map.2 = "id"
routes.news.map.3 = "title"
routes.news.reverse = "news/%d-%d-%s.html"

Merci d'avance

Pourquoi "newscatal" dans la première ligne?

Hors ligne

 

#41 26-09-2008 10:10:48

alien7
Membre
Date d'inscription: 29-04-2007
Messages: 447

Re: Url propre pour le référencement

Erreur de copie seulement.

pozowebs ->
As tu résolu ton pronlème ? As tu lu ce topic, ca pourrait peut etre t'aider.
J'en suis à cette partie aussi donc donc je ne connais pa strop le sujet smile

Dernière modification par alien7 (26-09-2008 10:13:43)


ZF 2.3 - Twitter Bootstrap 3.2
Local: Ubuntu  -> Apache2 2.4 - MariaDB 10 - PHP 5.6

Hors ligne

 

#42 26-09-2008 13:35:00

pozowebs
Membre
Lieu: Gran Canaria
Date d'inscription: 06-07-2008
Messages: 83
Site web

Re: Url propre pour le référencement

alien7 a écrit:

Erreur de copie seulement.

pozowebs ->
As tu résolu ton pronlème ? As tu lu ce topic, ca pourrait peut etre t'aider.
J'en suis à cette partie aussi donc donc je ne connais pa strop le sujet smile

oui merci, problème résolu, grâce à ce topic! J'ai presque le même code que celui que tu utilises ici donc je me suis dit que ça doit marcher, et j'ai vérifié et trouvé une stupide erreur de syntaxe (un ') qui se baladait... ouf... smile.

Mon helper url ne me pose pas de pb. J'ai le fonctionnement suivant, je ne sais pas si c'est le fonctionnement correct mais cela me convient wink...
=> Sur les pages dont l'url est encodée, l'helper crée les liens encodés sans que je ne lui demande rien (exemple, le paginator me crée les jolis liens directement)
=> Sur les autre pages (exemple page d'accueil), j'ajoute le nom de la route à utiliser dans l'helper pour qu'il m'encode l'url.

Hors ligne

 

#43 26-09-2008 20:44:42

alien7
Membre
Date d'inscription: 29-04-2007
Messages: 447

Re: Url propre pour le référencement

Alors là je ne comprends pas, mon helper ne veut pas m'encoder mes urls, bizarre. J'uitlise ZF 1.6.1. J'ai manqué une étape peut être...


ZF 2.3 - Twitter Bootstrap 3.2
Local: Ubuntu  -> Apache2 2.4 - MariaDB 10 - PHP 5.6

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