Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour à tous,
Je suis en train de faire une application dont l'url de base est de la forme suivante :
http://monsite.com/:language/:sport/:mo … ntroller/*
Les paramètres :language et :sport seront tout les temps présents sur toutes les pages du site.
D'après vous, quel est le meilleur moyen de faire pour ne pas préciser ces deux premiers paramètre à chaque fois que je créé une url dans ma vue ou lorsque je fais une redirection ?
Pour l'instant, je suis toujours obliger de les repasser à ma méthode url()
<a href="<?=$this->url(array("language"=>$this->language->shortName, "sport"=>$this->sport->shortName, "module" =>"news", "controller"=>"view", "action"=>"list", "id"=>$news->id), "news")?>">Voir avec url()</a>
(par exemple)
et je fais la même chose sur les redirect dans mes actions. D'ailleurs, je ne sais pas si redirect est la meilleur méthode à utiliser.
D'après vous, comment faire ?
J'ai besoin d'une piste...
Merci d'avance.
Hors ligne
Bonjour,
Au risque de dire une bêtise, ne pourrais-tu pas utiliser la réécriture d’URL via le .htaccess en utilisant RewriteBase ?
Cordialement,
Stéphan.
Hors ligne
@slaughter
A priori, si tu vires ces 2 paramètres (language et sport) dans ton tableau, il reprends les paramètres courants (sauf si tu mets le paramètre $reset à true dans ta fonction url() ).
Cordialement,
Philippe
Hors ligne
Heu, et bien je ne pense pas. Pour moi ca ne les remplis pas.
En attendant, j'ai créée une aide de vue qui fait exactement ce que je veux.
Par contre, je voudrais exactement la même méthode pour une aide d'action.
Quelle est la meilleure manière de mutualiser le code ?
Autre question :
Comment faites vous vos redirections dans une action pour utiliser vos routes ? La méthode url ?
Pour moi cette méthode me répète le baseUrl.
En gros je me retrouve avec http://localhost/monrep/monrep/:language/:sport/:module/:controller/:action au lieu de http://localhost/monrep/:language/:sport/:module/:controller/:action
Hors ligne