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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
<?php
    require_once("./incl.menu.php");
 
    $menu = affiche_menu();
?>
disponible sur chacune de mes pages.

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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<?php include("incl.topmenu.php"); ?>
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
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é :


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>
Ma question est toute simple . Est-il possible de simplifier ce code ou de le rendre plus propre ?
Merci à ceux qui prendront le temps de me répondre.