Forum CMS Made Simple FR
[RESOLU]Module réécriture d'url - Version imprimable

+- Forum CMS Made Simple FR (https://forum.cmsmadesimple.fr)
+-- Forum : Général (https://forum.cmsmadesimple.fr/forum-3.html)
+--- Forum : Modules, Tags (https://forum.cmsmadesimple.fr/forum-14.html)
+--- Sujet : [RESOLU]Module réécriture d'url (/thread-3816.html)



[RESOLU]Module réécriture d'url - bobjo - 13/04/2016

Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 2.1.2
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour,

Pour un module je doit appliquer la réécriture d'url.

J'ai suivie ce tuto : http://docs.cmsmadesimple.org/uploads/Module_Writing_Tutorial.pdf mais cela ne fonctionne pas...

Voila ce que j'ai fais :

Dans le fichier de mon module j'ai ajouté la méthode get_pretty_url qui, si j'ai bien compris, construit l'url réécrite.
Cela me donne ça :
'Catalogue/'.$returnid.'/'.$params['catid'].'/'.$params['template'].'/'.$params['summarytemplate'].'/'.$params['producttemplate'].'/'.$cat['data'][0]['alias']

Dans la méthode InitializeFrontend j'ai ajouté ça qui doit interpréter l'url réécrite :

$this->RegisterRoute('/Catalogue\/(?P<returnid>[0-9]+)\/(?P<catid>[0-9]+)\/(?P<template>[a-z]+)\/(?P<summarytemplate>[a-z]+)\/(?P<producttemplate>[a-z]+)\/(?P<junk>.*?)$/',
array('action'=>'category'));

Il semble que la construction fonctionne car sur le fronte j'ai bien les liens réécrit.

Par contre l'interprétation pose problème, quand je clique sur les liens cela me retourne une erreur 404.

Si vous avez une idée ou une solution

Cordialement

bobjo


[RESOLU]Module réécriture d'url - bobjo - 13/04/2016

C'est bon j'ai trouvé le pourquoi...

C'était bien dans l'interprétation de l'url
A la place de ça
/(?P<template>[a-z]+)\/(?P<summarytemplate>[a-z]+)\/(?P<producttemplate>[a-z]+)\

Il fallait ça
/(?P<template>.*?)\/(?P<summarytemplate>.*?)\/(?P<producttemplate>.*?)\

En gros remplacer [a-z]+ par .*?

Cordialement

bobjo