16/05/2014, 11:31:02
C'est effectivement étonnant que cela ne marche pas ... Je me permet de te refaire un exemple complet
edit : essai sans le slash de fin de ta route !
en gros tu veux que tonsite.fr/mon/url/speciale/99 face appel à l'action mon_action(number)
Alors je te conseil de faire cela
1 / Tu déclare effectivement ton mapping url -> action mon_action dans ta main class de ton module (monmodule.module.php)
(+ d'info sur la fonction et un exemple dans le SVN de Skeleton
Tu peux également enregistrer des routes non dynanique, appelées routes statiques qui sont + rapide que des routes dynamiques (ça va de soit)
Par exemple que l'url tonsite.fr/mon/url/speciale affiche systématiquement la même chose : l'action "mon_autre_action" avec un paramètre "mon_parametre" toujours égal à "foo"
Un exemple d'utilisation de ces deux cas :
mon/url/speciale afficherait tous les profils utilisateurs dans une liste
mon/url/speciale/99 afficherait le détail du profil utilisateur n° 99
En espérant avoir été clair
edit : essai sans le slash de fin de ta route !
en gros tu veux que tonsite.fr/mon/url/speciale/99 face appel à l'action mon_action(number)
Alors je te conseil de faire cela
1 / Tu déclare effectivement ton mapping url -> action mon_action dans ta main class de ton module (monmodule.module.php)
Code :
function SetParameters() {
$this->RegisterRoute('/mon\/url\/speciale\/(?P<un_nombre>[0-9]+)$/',array('action'=>'mon_action', 'mon_identifiant' => 'un_nombre'));
}
(+ d'info sur la fonction et un exemple dans le SVN de Skeleton
Tu peux également enregistrer des routes non dynanique, appelées routes statiques qui sont + rapide que des routes dynamiques (ça va de soit)
Par exemple que l'url tonsite.fr/mon/url/speciale affiche systématiquement la même chose : l'action "mon_autre_action" avec un paramètre "mon_parametre" toujours égal à "foo"
Code :
function SetParameters() {
$contentops = cmsms()->GetContentOperations();
$returnid = $contentops->GetDefaultContent();
$parms = array('action'=>'mon_autre_action','mon_parametre'=>'foo','returnid'=>$returnid);
$route = new CmsRoute('mon/url/speciale',$this->GetName(),$parms,TRUE);
cms_route_manager::register($route);
}
Un exemple d'utilisation de ces deux cas :
mon/url/speciale afficherait tous les profils utilisateurs dans une liste
mon/url/speciale/99 afficherait le détail du profil utilisateur n° 99
En espérant avoir été clair