Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

Module et routage d'url, comment ça marche ?
#2

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)

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 Smile
Répondre


Messages dans ce sujet

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)