Les sef (search engine firendly) urls, sont très pratiques pour un bon référencement.
un url du genre :
http://www.example.com/index.php?option=com_content&view=article&id=1&catid=1&Itemid=50
est très habituels pour ceux qui utilisent joomla.
Ceux qui développent leurs propres composants et qui veulent réecrire ce genre d'url peuvent suivre la démarche suivante:
1- Créer un fichier router.php dans le repertoire du composant.
2-router.php doit contenir les 2 fonctions suivantes:
[Nom du Module]ContactBuildRoute(&$query){...}
[Nom du Module]ParseRoute($segments){...}
exemple: si votre composant s'appelle JoomTest alors les méthodes auront les noms suivants:
Détails:
un url du genre :
http://www.example.com/index.php?option=com_content&view=article&id=1&catid=1&Itemid=50
est très habituels pour ceux qui utilisent joomla.
Ceux qui développent leurs propres composants et qui veulent réecrire ce genre d'url peuvent suivre la démarche suivante:
1- Créer un fichier router.php dans le repertoire du composant.
2-router.php doit contenir les 2 fonctions suivantes:
[Nom du Module]ContactBuildRoute(&$query){...}
[Nom du Module]ParseRoute($segments){...}
exemple: si votre composant s'appelle JoomTest alors les méthodes auront les noms suivants:
JoomTestContactBuildRoute(&$query){...}
JoomTestParseRoute($segments){...}
Détails:
- La première méthode sert à réecrire l'url, elle retourne un tableau de string (utf-8), que joomla va après les concatener en les séparant par des '/'
- La dexième sert à interpreter un url formaté (réecrit) pour retrouver sa forme normale.
exp: index.php?option=com_content&view=article&id=1 va être transformé en ... /article/1:Bienvenue
- Pour la première fonction:
En entrée un tableau $query.
En sortie:$segements
$segments=array();
$segments[]=$query['view'] ;
$titre = (Requete sql pour retrouver le titre de l'article depuis la base ...);
$segments[]=$query['id'].':'.$titre;
return $segments;
- Pour la deuxième fonction, on va faire le chemin inverse:µ
En entrée: $segments
En sortie: $vars
$vars = array();
$vars['view'] = $segments[0];
$vars['id'] = substr($segements[1], 0, (strlen ($segements[1])) - (strlen (strrchr($segements[1],':'))));
return $vars;
No comments:
Post a Comment