Forum CMS Made Simple FR
[Résolu] Problème d'URL Rewriting dans un module perso... - 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 : [Résolu] Problème d'URL Rewriting dans un module perso... (/thread-1607.html)



[Résolu] Problème d'URL Rewriting dans un module perso... - heriquet - 18/11/2011

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



Salut à tous,

Je fais mes premières réécritures d'URL dans un module et j'ai un souci... Le module, c'est Skeleton au départ mais qui n'a évidement plus rien à voir avec Skeleton.

Ca a fonctionné lorsque j'avais que le paramètre "purpose" et quand j'ai ajouté category, city et name, ca a plus marché...

Dans le "setParameters" du module, j'ai enregistré la route :

Code :
[== PHP ==]
$this->RegisterRoute('/(?P<purpose>)\/(?P<category>)\/(?P<city>)\/(?P<name>)\/(?P<estate_id>[0-9]+)\/(?P<returnid>[0-9]+)$/',array('action'=>'estate_view'));

J'ai bien entendu déclaré les paramètres :

Code :
[== PHP ==]


   // purpose must be a string
   $this->CreateParameter('purpose','',$this->Lang('help_purpose'));
   $this->SetParameterType('purpose',CLEAN_STRING);
  
   // category must be a string
   $this->CreateParameter('category','',$this->Lang('help_category'));
   $this->SetParameterType('category',CLEAN_STRING);
  
   // city must be a string
   $this->CreateParameter('city','',$this->Lang('help_city'));
   $this->SetParameterType('city',CLEAN_STRING);
  
   // name must be a string
   $this->CreateParameter('name','',$this->Lang('help_name'));
   $this->SetParameterType('name',CLEAN_STRING);

Et dans l'action du module qui me génère le lien :

Code :
[== PHP ==]
       $purposeUrl=$this->getCleanedParam($estate->Purposes[0]->Name);
       $categoryUrl=$this->getCleanedParam($estate->Category);
       $cityUrl=$this->getCleanedParam($estate->City);
       $nameUrl=$this->getCleanedParam($estate->Name);
       $estate->view = $this->CreateFrontendLink($id, $returnid, 'estate_view', '',
          array('purpose'=>$purposeUrl,'category'=>$categoryUrl,'city'=>$cityUrl,'name'=>$nameUrl,'estate_id'=>$estate->EstateID),'',true,true,'',false,$purposeUrl.'/'.$categoryUrl.'/'.$cityUrl.'/'.$nameUrl.'/'.$estate->EstateID.'/'.$returnid);

Si j'enlève $category, $city et $name des 3 sections de code ca roule...

Quelqu'un aurait une idée ?

Merci !


[Résolu] Problème d'URL Rewriting dans un module perso... - heriquet - 18/11/2011

J'ai tenté en retirant chaque paramètre mais rien à faire...


[Résolu] Problème d'URL Rewriting dans un module perso... - heriquet - 18/11/2011

Bon bah je m'en suis sorti tout seul...

Pour info, il manquait un petit quelque chose :

Code :
[== PHP ==]
$this->RegisterRoute('/(?P<purpose>)\/(?P<category>)\/(?P<city>)\/(?P<name>)\/(?P<estate_id>[0-9]+)\/(?P<returnid>[0-9]+)$/',array('action'=>'estate_view'));

est devenu

Code :
[== PHP ==]
$this->RegisterRoute('/(?P<purpose>.+)\/(?P<category>.+)\/(?P<city>.+)\/(?P<estate_id>[0-9]+)\/(?P<returnid>[0-9]+)$/',array('action'=>'estate_view'));

Soit ce qui posait problème c'est qu'il manquait un ".+" dans le code du paramètre.

Code :
[== PHP ==]
/(?P<purpose>.+)\



[Résolu] Problème d'URL Rewriting dans un module perso... - bess - 19/11/2011

bon, content que t'ai pu t'en sortir, personnellement je ne voyais pas ce qui clochait :/