Menu dans include, modification en fonction de la page

Eléphant du PHP | 447 Messages

03 sept. 2008, 12:23

Hi

j'ai le code suivant dans la partie qui contient mon menu:

Code : Tout sélectionner

<ul> <li class="item_active"><a href="index.php"><span>Accueil</span></a></li> <li><a href="about.php"><span>About</span></a></li> <li><a href="contact.php"><span>Contact</span></a></li> </ul>
Le problème c'est que c'est un fichier inclus... comment puis-je passer le "class="item_active" aux autres éléments li en fonction de la page?
Autrement dit comment faire en sorte d'obtenir:

Code : Tout sélectionner

<li><a href="index.php"><span>Accueil</span></a></li> <li class="item_active"><a href="about.php"><span>About</span></a></li> <li><a href="contact.php"><span>Contact</span></a></li>
quand je passe sur la page "About" (par exemple)?
Probably (only a) Human Problem?

Eléphant du PHP | 174 Messages

03 sept. 2008, 12:43

pourquoi ne pas mettre une variable de session contenant la page sur laquelle tu te trouves et tester par la suite avec un if ?
"Il vaut mieux avoir du luxe dans ses sentiments que sur ses habits, je ne crains, moi, le mépris de personne" Honoré De Balzac.
"On s'étonne trop de ce que l'on voit rarement et trop peu de ce que l'on voit chaque jour" Mme de Genlis
"L'absence diminue les médiocres passions et augmente les grandes comme le vent éteint les bougies et allume le feu" La RocheFoucauld
"People have hope because they can't see Death standing behind them" (anonymous)
"Of all the things I've lost, I miss my brain the most" (from a fanfic)

Eléphant du PHP | 447 Messages

03 sept. 2008, 13:44

Merci pour l'idée! :wink:

ça risque juste de devenir un peu plus compliqué... voici ce qu'est devenu mon menu depuis tout à l'heure:
        <?php 
		if (isset($_SESSION['nom']))
        {
		echo
		'<ul>
			<li class="item_active"><a href="index.php"><span>Accueil</span></a></li>
			<li><a href="artistes.php"><span>Liste des artistes</span></a></li>
			<li><a href="profil.php"><span>Profil</span></a></li>
			<li><a href="deconnect.php"><span>D&eacute;connection</span></a></li>
			<li><a href="about.php"><span>About</span></a></li>
			<li><a href="mailto:"><span>Contact</span></a></li>
		</ul>';
		}
		else
		{
		echo
		'<ul>
			<li class="item_active"><a href="index.php"><span>Accueil</span></a></li>
			<li><a href="artistes.php"><span>Liste des artistes</span></a></li>
			<li><a href="connect.php"><span>Connection</span></a></li>
			<li><a href="register.php"><span>Inscription</span></a></li>
			<li><a href="about.php"><span>About</span></a></li>
			<li><a href="mailto:"><span>Contact</span></a></li>
		</ul>';
		}
		?>
Comment j'pourrais coder ça avec ton idée de variable?
Probably (only a) Human Problem?

Mammouth du PHP | 1353 Messages

03 sept. 2008, 13:51

Bonjour,

Je pense que l'idée est plus d'avoir un menu de ce genre :
<ul> 
    <li <?php if($_SESSION["nom"]=="Accueil") echo "class='item_active'"; ?>><a href="index.php"><span>Accueil</span></a></li> 
    <li <?php if($_SESSION["nom"]=="Liste_artiste") echo "class='item_active'"; ?>><a href="artistes.php"><span>Liste des artistes</span></a></li> 
    <li <?php if($_SESSION["nom"]=="Profil") echo "class='item_active'"; ?>><a href="profil.php"><span>Profil</span></a></li> 
    ...
</ul>
En gros dans le menu tu récupères le nom de session de la page, et si c'est celle qui correspond à l'item tu inscris "class='item_active' pour avoir l'effet escompté...
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Eléphant du PHP | 447 Messages

03 sept. 2008, 13:55

Hum, oui... j'vais cogiter à cette solution.

Merci pour ta réponse!!
Probably (only a) Human Problem?

Eléphant du PHP | 447 Messages

05 sept. 2008, 19:35

Hum,

m'inspirant de vos réponses j'ai codé mon menu comme ça:
	    <?php 
		if (isset($_SESSION['nom']))
        {
		echo
		'<ul>
			<li';if ($titre == 'Music*boX v.3 :: accueil') echo ' class="item_active"'; echo '><a href="index.php"><span>Accueil</span></a></li>
			<li';if ($titre == 'Music*boX v.3 :: artistes') echo ' class="item_active"'; echo '><a href="artistes.php"><span>Liste des artistes</span></a></li>
			<li';if ($titre == 'Music*boX v.3 :: profil') echo ' class="item_active"'; echo '><a href="profil.php"><span>Profil</span></a></li>
			<li><a href="deconnect.php"><span>D&eacute;connection</span></a></li>
			<li';if ($titre == 'Music*boX v.3 :: about') echo ' class="item_active"'; echo '><a href="about.php"><span>About</span></a></li>
			<li><a href="mailto:"><span>Contact</span></a></li>
		</ul>';
		}
		else
		{
		echo
		'<ul>
			<li';if ($titre == 'Music*boX v.3 :: accueil') echo ' class="item_active"'; echo '><a href="index.php"><span>Accueil</span></a></li>
			<li';if ($titre == 'Music*boX v.3 :: artistes') echo ' class="item_active"'; echo '><a href="artistes.php"><span>Liste des artistes</span></a></li>
			<li';if ($titre == 'Music*boX v.3 :: connection') echo ' class="item_active"'; echo '><a href="connect.php"><span>Connection</span></a></li>
			<li';if ($titre == 'Music*boX v.3 :: inscription') echo ' class="item_active"'; echo '><a href="register.php"><span>Inscription</span></a></li>
			<li';if ($titre == 'Music*boX v.3 :: about') echo ' class="item_active"'; echo '><a href="about.php"><span>About</span></a></li>
			<li><a href="mailto:"><span>Contact</span></a></li> 
		</ul>';
		}
		?>
Beh ça marche! :shock:

Php c'est l'pied! :D Le débutant que je suis est souvent stupéfié (et ravi) de voir ses codes fonctionner; et ça me donne un sentiment satisfaction et me motive à continuer à apprendre. Mais en même temps quand j'vois tout ce que j'ai à apprendre je pousse un gros soupir de découragement... Mais c'est encourageant de trouver une communauté où l'on trouve aide et instruction! :wink: (c'était ma "séquence considération philosophique sur des bouts de code" XD)
Encore merci à tous!!
Probably (only a) Human Problem?