galenskap a écrit :
Comment faire ? Est-ce qu'il y a quelque chose que je n'ai pas compris ?
Ah ben non ! Il me semblait que le chapitre sur les sites dynamiques correspondait à ton contexte mais ça n'est pas le cas.
Donc voici une solution... parmi tant d'autres.
Comme
entree1 et
entree2 ne sont pas très parlants on va plutôt imaginer que 3 pages existent (
accueil,
mavie et
monoeuvre) et que le contenu à inclure se trouve dans le répertoire
include/pages/. Pour simplifier on va également supposer que le nom du fichier à inclure correspond à la valeur de
page passée en paramètre et que l'extension est .inc.php (ce qui nous donne
accueil.inc.php,
mavie.inc.php et
monoeuvre.inc.php).
Et enfin on décide que si
page n'est pas renseigné dans l'url on affichera
accueil par défaut et que si
page ne correspond pas à l'une des 3 valeurs possibles on affichera également
accueil (on pourrait aussi afficher une "erreur 404").
Ce qui donne :
index.php<?php
// Initialisation ou récupération de $page ('accueil' par défaut)
$page = isset($_GET['page']) ? $_GET['page'] : 'accueil'; // au besoin voir http://php.net/manual/fr/language.operators.comparison.php#language.operators.comparison.ternary
// pages existantes (clé / Libellé)
$pages = array(
'accueil' => 'Accueil',
'mavie' => 'Ma vie',
'monoeuvre' => 'Mon oeuvre'
);
// si la valeur de page n'est pas l'une des clés du tableau on prend 'accueil' par défaut
if(!array_key_exists($page, $pages)) {
$page = 'accueil';
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Test onglet menu actif - <?php echo $pages[$page] ?></title>
<style type="text/css" media="screen">
/***********************************/
/* Méthode des portes coulissantes */
/**********************************/
#nav {
list-style: none ;
margin: 0 ;
padding: 0 ;
overflow: hidden ; /* Création du contexte de formatage */
}
#nav li {
float: left ;
width: 150px ;
border: 1px solid #600 ;
margin-right: 1px ;
color: #fff ;
background: #c00 ;
}
#nav li a {
display: block ;
background: #900 url(http://www.alsacreations.com/xmedia/tuto/exemples/menunew/lienCoulissant.png) left top no-repeat ;
color: #fff ;
font: 1em "Trebuchet MS",Arial,sans-serif ;
line-height: 1em ;
padding: 4px 0 ;
text-align: center ;
text-decoration: none ;
}
#nav li a:hover, #nav li a:focus, #nav li a:active, #nav li #en_cours {
background: #033 url(http://www.alsacreations.com/xmedia/tuto/exemples/menunew/lienCoulissant.png) right top no-repeat ;
text-decoration: underline ;
}
</style>
<!--[if lt IE 7]>
<style type="text/css">
#nav { /* Contexte de formatage pour IE6 */
overflow: visible ;
height: 1% ;
}
</style>
<![endif]-->
</head>
<body>
<h1>Méthode des portes coulissantes</h1>
<ul id="nav">
<?php
// affichage des liens du menu
foreach($pages as $key => $value) {
$en_cours = ($key == $page) ? ' id="en_cours"' : ''; // test page en cours
echo "\t".'<li><a href="index.php?page='.$key.'"'.$en_cours.'>'.$value."</a></li>\n";
}
?>
</ul>
<div id="contenu">
<?php
include("include/pages/$page.inc.php");
?>
</div>
</body>
</html>
accueil.inc.php<h2>Page accueil.inc.php</h2>
<p>Du texte...</p>
mavie.inc.php<h2>Page mavie.inc.php</h2>
<p>Du texte...</p>
monoeuvre.inc.php<h2>Page monoeuvre.inc.php</h2>
<p>Du texte...</p>
A noter que je me suis basé sur le tuto :
Créer des menus simples en CSS.
Modifié par Heyoan (02 Nov 2009 - 23:04)