Gestion menu horizontal

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Gestion menu horizontal

Re: Gestion menu horizontal

par tomy29 » 10 févr. 2013, 15:23

Je reviens sur ce sujet. J'aimerais qu'une fois que j'ai cliqué sur un élément du menu et que la page correspondante s'affiche, l'élément du menu sur lequel j'ai cliqué ait un style particulier. Ca pourrait fair l'objet d'un post dans un forum css mais comme il y a du PHP je tente ma chance ici. J'ai suivi quelques tutoriels mais sans succès. Le lien active ne change pas de style.

index.php:
<!doctype html>
<html>
    <head>
        <link rel="stylesheet" type="text/css" href="css/default.css">
    </head>
    <body>
	<header>
		<?php include('header.php');?>
	</header>
	<nav>
		<?php include('menu.php');?>
	</nav>
	<div class="content">
		<?php  include($_GET['page'].'.php');?>
	</div>
	</body>
</html>
menu.php:
<ul id="navigation">
	<li><a href="index.php?page=myLists" <?php if ($page == 'myLists.php') { ?>class="active"<?php } ?>>My Lists</a></li>
	<li><a href="index.php?page=worldLists" <?php if ($page == 'worldLists.php') { ?>class="active"<?php } ?>>World Lists</a></li>
	<li><a href="index.php?page=profile" <?php if ($page == 'profile.php') { ?>class="active"<?php } ?>>Profile</a></li>
</ul>
default.css:
...
...
nav a.active {
  background: #95A9B1;
}
Dans chaque fichier (myLists.php, worldLists.php, profile.php) j'ai mis l'instruction : $page = basename(__FILE__);
Il suffirait de mettre $page en Session pour y accéder dans le menu?

Merci d'avance pour vos réponses.

Re: Gestion menu horizontal

par tomy29 » 29 janv. 2013, 21:05

Merci pour ta réponse.
Effectivement c'est très ressemblant aux tiles avec cette méthode!

Re: Gestion menu horizontal

par moogli » 28 janv. 2013, 13:02

salut,

l'include c'est pas une finalité en soit, on peux très bien s'en passer :)

c'est le pendant PHP de l'import java. a ceci prêt que si tu fait de l'affichage il sera fait a l'emplacement de l'include.

Après ce que tu souhaite faire c'est simplement un template de ta page, ce que tu fait au final avec les tiles (ou ferais avec JSF).

l'include c'est juste pour avor le code autre part et simplifier la lecture.

Exemple de template
<?php
// include 'utilitaire'
?>
<!doctype html>
<html>
<head>...</head>
<body>
<header>
<?php
include('header.php');
?>
</header>
<nav>
<?php
include('menu.php');
?>
</nav>
<div id="content">
<?php 
// gestion du contenu
?>
</div>
<footer></footer>
</html>
le "header" et le "menu" sont deux fichier a part, que tu créer une fois pour toute.

La gestion du contenu peux s'appuyer sur le système de pseudo frame (qui au final est le même pour le menu ;)

@+

Gestion menu horizontal

par tomy29 » 28 janv. 2013, 11:06

Bonjour,

Je débute en PHP et je cherche à mettre en place un site avec un menu horizontal en haut de la page. En cliquant sur un item du menu, la page correspondante s'affiche en dessous. Du grand classique.
Après quelques recherches sur le net, j'ai vu qu'il fallait dans chaque page faire un include du menu.php.
Est-ce la seule manière de gérer le menu et les pages en dynamique?
Je suis du monde Java (Struts) et suis habitué au système de Tiles pour gérer tout ça. Je me demandais s'il n'y avait pas une façon similaire de procéder avec PHP.

Merci pour vos réponses.