Mise en forme lorsque l'on se trouve sur un site

php -  
jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je souhaite souligner du texte d'une bar de navigation mais lorsque je me trouve sur un site, la page concernée dans la bar de navigation ne se souligne pas.

Voici le code PHP :
function write_nav($complete_uri, $uri, $text){
 // on recupere le path de l'url (retourne /site/form/xxx)
 $url = parse_url ( $complete_uri );
 // on la découpe avec la fonction explode
 $path_info = explode ( '/site/', $url ['path'] );
 // on verifie si le path est égal au site concerné
        // $path_info est un tableau contenant deux éléments
        // première élément : " " size=0
        // deuxième élément : "/form/xxx" size="9";
 if ( $path_info [1] == $uri) {
  // On affiche l'élément en gras et en souligné pour que l'utilisateur sache où il se trouve sur le site
  echo "<u><b>$text</b></u>";
 } else {
  echo $text;
 }
}


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.


Merci d'avance pour votre aide.

2 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 833
     
    Bonjour,

    1 - Evites de mettre un espace dans ta variable tableau
    $path_info [1]
    

    A écrire plutot :
    $path_info[1]
    


    2 - As tu vérifié le contenu de tes différentes variables pour voir si elles sont ok ?

    3 - On ne sait pas comment ni où tu appelles cette fonction.

    0
  2. php
     
    Merci de votre réponse.

    Pour le 1-, ce n'est pas moi qui le fait mais l'IDE lorsque je fais l'indentation automatique avec un raccourci clavier.
    2- Oui j'ai fait un var_dump sur chaque variable, il m'écrit bien le type et son contenu.
    Il y a quelque chose que je ne comprends, lorsque j'écris ce code en brut sur l'élément voulu, le texte se met bien en gras et est souligné mais il le fait tout le temps. Lorsque je passe à autre page, la condition :
     if ( $path_info [1] == $uri)
    devrait passer à false mais ce n'est pas le cas. Et lorsque j'écris la fonction et que je l'appelle :
    	<div class="col-md-2">
    		<ul class="navigationbar">
    			<li id="navigation"><a href="<?php echo $distri; ?>"><?php write_nav($distri, '/form/distribution', "Distribution de l'eau");?>
    		  													<img src="<?php echo $rouge; ?>" id="reponse"></a></li>
    			<li id="navigation"><a href="<?php echo $pol; ?>">Autre pollutions<img
    					src="<?php echo $rouge; ?>" id="reponse"></a></li>
    			<li id="navigation"><a href="<?php echo $analyse; ?>">Analyse d'eau <img
    					src="<?php echo $rouge; ?>" id="reponse"></a></li>
    			<li id="navigation"><a href="<?php echo $actions; ?>">Actions mises
    					en place <img src="<?php echo $rouge; ?>" id="reponse">
    			</a></li>
    			<li id="navigation"><a href="<?php echo $foncier; ?>">Foncier <img
    					src="<?php echo $rouge; ?>" id="reponse"></a></li>
    		</ul>
    	</div>


    Merci d'avance
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 833
       

      Lorsque je passe à autre page, la condition :

      if ( $path_info [1] == $uri)

      devrait passer à false mais ce n'est pas le cas

      Et que valent tes variables à ce moment là ?
      Si tu en fais des ECHO ... qu'est-ce que ça donne ?
      0