Bonjour,
j'ai beaucoup cherché sur le net, essayé pas mal de "tuto" sur les routeurs joomla, mais je n'y arrive pas.
J'ai créé un composant d'annonces, avec une vue en liste et une vue détail, donc la vue en liste redirige vers ma vue détail, avec l'ID de l'annonce pour charger les données, aucun souci de ce coté.
Mon souci est que je souhaite bien sur avoir des URL SEF avec JRoute, mais je n'arrive pas à l'utiliser.
Mon url absolue est tout simplement "JRoute::_('index.php?option=com_moncomposant& view =detail&ad=1')"
Bien sur je souhaite avoir quelque chose comme "/annonces/alias"
J'ai donc essayé de créer un fichier router selon certaines sources trouvées, mais certaines datent pas mal d'autres sont peu précises, même avec l'aide joomla (https://docs.joomla.org/J3.x:Support...r_component/fr) je n'ai pas réussi (sans rire)
voici une ébauche de mon fichier router, mais je n'arrive pas à l'utiliser.
Si quelqu'un peut éclairer un tout petit peu ma lanterne merci d'avance
j'ai beaucoup cherché sur le net, essayé pas mal de "tuto" sur les routeurs joomla, mais je n'y arrive pas.
J'ai créé un composant d'annonces, avec une vue en liste et une vue détail, donc la vue en liste redirige vers ma vue détail, avec l'ID de l'annonce pour charger les données, aucun souci de ce coté.
Mon souci est que je souhaite bien sur avoir des URL SEF avec JRoute, mais je n'arrive pas à l'utiliser.
Mon url absolue est tout simplement "JRoute::_('index.php?option=com_moncomposant& view =detail&ad=1')"
Bien sur je souhaite avoir quelque chose comme "/annonces/alias"
J'ai donc essayé de créer un fichier router selon certaines sources trouvées, mais certaines datent pas mal d'autres sont peu précises, même avec l'aide joomla (https://docs.joomla.org/J3.x:Support...r_component/fr) je n'ai pas réussi (sans rire)
voici une ébauche de mon fichier router, mais je n'arrive pas à l'utiliser.
Si quelqu'un peut éclairer un tout petit peu ma lanterne merci d'avance
Code PHP:
<?php
defined('_JEXEC') or die;
class ComposantRouter extends JComponentRouterBase
{
public function build(&$query) {
$segments = [];
if (isset($query['view'])) {
$segments[] = $query['view'];
unset($query['view']);
}
if (isset($query['id'])) {
$segments[] = $query['id'];
unset($query['id']);
}
if (isset($query['slug'])) {
$segments[] = $query['slug'];
unset($query['slug']);
}
return $segments;
}
public function parse(&$segments) {
$vars = [];
$vars['view'] = $segments[0];
$vars['id'] = $segments[1];
$vars['slug'] = $segments[2];
return $vars;
}
}
function composantBuildRoute(&$query) {
$router = new ComposantRouter;
return $router->build($query);
}
function composantParseRoute($segments) {
$router = new ComposantRouter;
return $router->parse($segments);
}
Commentaire