Bonjour à tous,
Depuis quelques jours je suis confronté à un petit soucis. J'essaye de générer dynamiquement une barre de navigation en fonction des paramètres passés dans l'url. De sorte que :
l'adresse racine/machin/truc/bidule/chouette
me retourne :
racine -> machin -> truc -> bidule -> chouette
Jusqu'ici pas de soucis, le soucis c'est pour les liens, je n'arrive pas à faire en sorte que les urls se fassent de cette façon :
- racine -> ./
- machin -> ./machin
- truc => ./machin/truc
- bidule -> ./machin/truc/bidule
- etc
J'ai essayé plusieurs tentatives et actuellement je bloque pour les liens qui me ramènent tous sur la page d'avant (si je suis sur chouette tous les liens me renvoient sur bidule). Le truc qui me manque c'est la logique de l'algorythme à appliquer en fait, si quelqu'un voit une solution appropriée à mon problème, je prends avec plaisir
Voici mon code, pour information je travaille sous codeIgniter :
public function page_navigation($my_title = '')
{
// Sur l'accueil, pas de navigation
if( $this->CI->uri->total_segments() === 0 )
{
return NULL;
}
// On récupère tous les segments de la barre d'adresse
$count = 1;
$segments = $this->CI->uri->segment_array();
// Début de la navigation
$url = '<li><span class="glyphicon glyphicon-home"></span> <a href="' . site_url() . '">Accueil</a></li>';
foreach( $segments as $segment )
{
if( $count === $this->CI->uri->total_segments() )
{
if( !empty($my_title) )
{
$url .= '<li class="active">' . $my_title . '</li>';
}
else
{
if( is_numeric($segment) )
{
$url .= '<li class="active">Elément n°' . $segment . '</li>';
}
else
{
$url .= '<li class="active">' . humanize_nav($segment) . '</li>';
}
}
}
else
{
$href = base_url();
for( $i = 1; $i < $this->CI->uri->total_segments(); $i ++ )
{
$link .= $this->CI->uri->segment($i) . '/';
}
$url .= '<li><a href="' . $href . '">' . humanize_nav($segment) . '</a></li>';
}
$count++;
}
return '<div class="container">
<ol class="breadcrumb">
' . $url . '
</ol>
</div>';
}
Merci par avance
