Developpement Composant -> réécriture d'URL
Bonjour à toutes et tous !!
Je suis en train de finaliser la création d'un composant pour Joomla! et comme il est dit dans le titre, j'ai un soucis avec la réécriture d'URL.
J'ai bien créé ma class "router.php" qui est bien appelée par le fichier "racine" de mon composant, et j'utilise bien "JRoute" pour réécrire mes URL en claire.
Le souci c'est que Joomla! ignore mon composant et charge le contenu du composant natif "com_content".
exemple si je renvois l'url suivante :
"http://localhost/lafoliedesvernis/vernitheque/revendeurs/2-printemps-haussmann.html", Joomla va m'afficher l'article ayant l'ID 2 plutot que de m'afficher la fiche revendeur ayant pour ID 2. Je sens que je touche au but, il doit manquer due code quelque part mais je ne vois pas quoi... qu'est ce qui fait que Joomla va utuliser MON router et pas celui du "com_content" ??
Je remet le code de mon router si certains veulent le voir :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| <?php
defined('_JEXEC') or die('Restricted access');
function VernithequeBuildRoute( &$query )
{
$segments = array();
if (isset($query['view'])) {
$segments[0] = $query['view'];
unset($query['view']);
};
if (isset($query['id'])) {
$segments[1] = $query['id'];
unset($query['id']);
};
return $segments;
} // End VernithequeBuildRoute function
function VernithequeParseRoute( $segments )
{
$vars = array();
if (count($segments) > 0) {
$vars['view'] = $segments[0];
switch ($vars['view']) {
case 'all':
$catid = explode(':', $segments[1]);
$vars['catid']= (int) $catid[0];
break;
case 'category':
$vars['id'] = (int) $segments[1];
break;
case 'marques':
$id = explode(':', $segments[1]);
$vars['id']= (int) $id[0];
break;
case 'revendeurs':
$id = explode(':', $segments[1]);
$vars['id']= (int) $id[0];
break;
case 'vernis':
$id = explode(':', $segments[1]);
$vars['id']= (int) $id[0];
break;
case 'configuration':
$id = explode(':', $segments[1]);
$vars['id']= (int) $id[0];
break;
case 'panel':
$id = explode(':', $segments[1]);
$vars['id']= (int) $id[0];
break;
};
} else {
$vars['view'] = $segments[0];
} // End count(segments) statement
return $vars;
} // End VernithequeParseRoute
?> |
Merci à tous pour votre , c'est un peu urgent allez si vous avez le moindre bout d'idée merci de me le transmettre.
Bonne journée à toutes et tous !!