Page 1 sur 1

Menu dans include, modification en fonction de la page

Posté : 03 sept. 2008, 12:23
par Stef
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)?

Posté : 03 sept. 2008, 12:43
par animithra
pourquoi ne pas mettre une variable de session contenant la page sur laquelle tu te trouves et tester par la suite avec un if ?

Posté : 03 sept. 2008, 13:44
par Stef
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?

Posté : 03 sept. 2008, 13:51
par guilt92
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é...

Posté : 03 sept. 2008, 13:55
par Stef
Hum, oui... j'vais cogiter à cette solution.

Merci pour ta réponse!!

Posté : 05 sept. 2008, 19:35
par Stef
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!!