Bonjour à tous.
Voilà mon problème qui n’en est pas vraiment un car tous fonctionne correctement.
Il se trouve que mon menu est un ensemble d’include appelé par une fonction.
Le menu est donc appelé au chargement de la page par :
disponible sur chacune de mes pages.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <?php require_once("./incl.menu.php"); $menu = affiche_menu(); ?>
incl.menu.php contient le code suivant qui permet de gérer l’onglet actif de cette partie du menu.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 <?php function affiche_menu() { // tableaux contenant les liens d'accès et le texte à afficher $tab_menu_lien = array( "home.php", "services.php", "account.php", "news.php", "#", "#" ); $tab_menu_texte = array( "Home", "Services", "Account", "News", "Contact", "How to" ); // informations sur la page $info = pathinfo($_SERVER['PHP_SELF']); $menu = "\n<div id=\"menu\">\n <ul class=\"onglets\">\n"; // boucle qui parcours les deux tableaux foreach($tab_menu_lien as $cle=>$lien) { $menu .= " <li"; // si le nom du fichier correspond à celui pointé par l'indice, alors on l'active if( $info['basename'] == $lien ) $menu .= " class=\"active\""; $menu .= "><a href=\"" . $lien . "\">" . $tab_menu_texte[$cle] . "</a></li>\n"; } $menu .= "</ul>\n</div>"; // on renvoie le code xHTML return $menu; } ?>
L’autre partie du menu est celle qui m’embête car j’ai tendance à penser que, bien que fonctionnant correctement, c’est un joyeux bordel et que cela pourrait être simplifié.
Dans mon header j’ai l’appel suivant :
incl.topmenu.php contient le code suivant qui permet de gérer la deuxieme partie du menu qui depend du statut du visiteur ; si connecté à son compte ou non.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <?php include("incl.topmenu.php"); ?>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <?php if (isset($_SESSION['id']) && !empty($_SESSION["id"])) { include ('incl.user_connected.php'); } else { include ('incl.userbar.php'); } ?>
Ici le code de incl.userbar.php actif si le user n’est pas connecté :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <div id="topmenu"> <ul class="userbar"> <li> <?php echo $menu; ?> </li> </ul> <ul class="userbarlog"> <li> <a class="panelLink panelOpener" id="slide_panellogin_opener" href="#login_popup">Login</a> <!-- <a class="panelLink" href="#login_popup" style="background:url('png/encoche_nav.png') no-repeat right center; padding-right:25px;">Login</a> --> </li> <li> <a href="register.php">Register</a> </li> <li> <a class="panelSearch panelOpener" id="slide_panelsearch_opener" href="#mainsearch">Search</a> <!-- <a class="panelSearch" href="#mainsearch" style="background:url('png/encoche_nav.png') no-repeat left center; padding-right:25px;">Search</a> --> </li> </ul> </div>
Ici le code de incl.user_connected.php actif si le user est connecté :
Ma question est toute simple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <div id="topmenu"> <ul class="userbar"> <li> <?php echo $menu; ?> </li> </ul> <ul class="userbarlog"> <li> <a href="deconnexion.php">Logout</a> </li> <li> <a class="panelAccount panelOpener" id="slide_panelaccount_opener" href="#account_popup" style="background:url('png/encoche_nav.png') no-repeat right center; padding-right:25px; ">Welcome <?php echo stripslashes(htmlentities(trim($_SESSION['username']))); ?></a> <!-- <a class="panelAccount" href="#account_popup" style="background:url('png/encoche_nav.png') no-repeat right center; padding-right:25px; ">Welcome <?php echo stripslashes(htmlentities(trim($_SESSION['username']))); ?></a> --> </li> <li> <a class="panelSearch panelOpener" id="slide_panelsearch_opener" href="#mainsearch" style="background:url('png/encoche_nav.png') no-repeat left center; padding-right:25px;">Search</a> <!-- <a class="panelSearch" href="#mainsearch" style="background:url('png/encoche_nav.png') no-repeat left center; padding:0 25px 0 20px; ">Search</a> --> </li> </ul> </div>. Est-il possible de simplifier ce code ou de le rendre plus propre ?
Merci à ceux qui prendront le temps de me répondre.
Partager