[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 :/