Forum CMS Made Simple FR
[RESOLU]Problème action dans module + réécriture d'URL - Version imprimable

+- Forum CMS Made Simple FR (https://www.cmsmadesimple.fr/forum)
+-- Forum : Général (https://www.cmsmadesimple.fr/forum/forum-3.html)
+--- Forum : Modules, Tags (https://www.cmsmadesimple.fr/forum/forum-14.html)
+--- Sujet : [RESOLU]Problème action dans module + réécriture d'URL (/thread-3957.html)



[RESOLU]Problème action dans module + réécriture d'URL - bobjo - 25/01/2017

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



Bonjour,

J'ai un problème avec la réécriture d'URL.

J'ai développé un module catalogue.

J'ai mon fichier action.default.php qui m'affiche la liste des catégories.
J'ai ensuite un fichier action.category.php qui affiche la liste des produits d'une catégorie.
Puis j'ai un fichier action.product.php qui affiche le détail des produits.

Dans les fichiers action.default et action.category, je crée les url avec la fonction create_url.

Dans le fichier action.default je donne à la fonction create_url l'action category et dans le fichier action.category je donne à la fonction create_url l'action product.

Sur le front de mon site, de action default à action category j'ai pas de problème.
Par contre de l'action category à l'action product, le paramètre action reste sur category ce qui fait que je n'ai pas le détail des mes produits...

La construction des url est pourtant faite de la même manière...

Lorsque je désactive la réécriture d'URL, cela fonctionne correctement et l'action product est bien la...

Si quelqu'un à une solution ou des idées ?

Cordialement

bobjo


[RESOLU]Problème action dans module + réécriture d'URL - Jean le Chauve - 25/01/2017

Bonjour,
Sans avoir étudié ton problème, n'y aurait-il pas une relation avec le passage des paramètres sous url_rewriting comme dans le post avec CGBlog : http://www.cmsmadesimple.fr/forum/viewtopic.php?pid=45481#p45481.
Ici, tu devrais utiliser {cms_module_hint module=ModuleName paramname=value ...} puisque ce n'est pas un module CGE.


[RESOLU]Problème action dans module + réécriture d'URL - bobjo - 25/01/2017

Bonjour,

Merci de me répondre.

J'ai déja passé les paramètres de mon module dans la balise cms_module_hint.
Mon module faisait une réécriture d'URL mais je perdais les informations liées aux gabarits donc je les passaient dans l'URL.
Mais cette réécriture d'URL n'était pas "jolie". Donc j'ai repris la réécriture d'URL afin d'avoir :
returneid/catid/alias catégorie (pour les catégories)
returnid/catid/prodiutid/alias produit (pour les produits)

Comme je le dis plus haut pour les catégories cela fonctionne, mais pour afficher le détail des produits il semble que je perde l'action product(action pour le détail des produits).

Cordialement

bobjo


[RESOLU]Problème action dans module + réécriture d'URL - bobjo - 26/01/2017

Bonjour,

J'ai trouvé d'où venait le problème.

Mes réécritures d'URL été trop identiques. Du coups en modifiant l'ordre des gabarits dans la fonction InitializeFrontend ça fonctionne.

Je met un exemple :
Avant :
Code :
[== Indéfini ==]
$this->RegisterRoute('/(?P<returnid>[0-9]+)\/(?P<catid>[0-9]+)\/(?P<junk>.*?)$/',array('action'=>'category'));
$this->RegisterRoute('/(?P<returnid>[0-9]+)\/(?P<catid>[0-9]+)\/(?P<prodid>[0-9]+)\/(?P<junk>.*?)$/',array('action'=>'product'));

Après :
Code :
[== Indéfini ==]
$this->RegisterRoute('/(?P<returnid>[0-9]+)\/(?P<catid>[0-9]+)\/(?P<prodid>[0-9]+)\/(?P<junk>.*?)$/',array('action'=>'product'));
$this->RegisterRoute('/(?P<returnid>[0-9]+)\/(?P<catid>[0-9]+)\/(?P<junk>.*?)$/',array('action'=>'category'));

Voilà !

C'était pas grand chose mais il fallait le savoir

Cordialement

bobjo