2009-07-31 13 views
0

Ich benutze eine Funktion, um mein Haupt- und Untermenü für mich auszuspucken. Grundsätzlich füttere ich es mit einer Seiten-ID und es gibt mir das Menü mit dem Menüpunkt über CSS richtig hervorgehoben.Wie verbessere ich diesen Menücode

Was ich frage ist: Wie verbessere ich diesen Code (und andere, die ich herumliegen habe)? Verringern Sie die Anzahl der Codezeilen und verringern Sie die Codewiederholungen? Ich weiß, dass eine Switch-Anweisung schneller ist als die alten if/else-bedingten Anweisungen, aber ich bin mir nicht sicher, wie ich meinen HTML-Menüpunkt hervorheben soll, wenn ich einen Schalter verwende.

Die css-Klasse (class = "sub_active_link") ist dafür verantwortlich, den aktuellen Menüpunkt hervorzuheben. Ein nicht hervorgehobener Link ist (class = "sub_link").

Ich brauche den Code nicht neu geschrieben, nur das Konzept oder Best Practice für eine Situation wie diese.

Jede Idee oder Richtung wird sehr geschätzt und danke, dass Sie mir geholfen haben, ein vollständigerer Programmierer zu werden.

function top_menu_logged_in_sub_menu($user, $page ='main') 
{ 
    $sub_menu_html = '<div id="sub_nav"><ul>'; 
    if($page == 'main'){ 
     $sub_menu_html.= ' 
         <li><img src="images/nav_2_lev_tab_Hi_L.gif" alt=""/></li> 
         <li class="sub_link_active"><span><a href="main.php">My Admin</a></span></li> 
         <li><img src="images/nav_2_lev_tab_Hi_R.gif" alt="" /></li> 
        '; 
    } 
    else{ 
     $sub_menu_html.= ' 
         <li><img src="images/nav_2_lev_tab_L.gif" width="8" height="26" /></li> 
         <li class="sub_link"><span><a href="main.php">My Admin</a></span></li> 
         <li ><img src="images/nav_2_lev_tab_R.gif" alt="" /></li> 
        '; 
    } 
    if($page == 'myProjects'){ 
     $sub_menu_html.= ' 
         <li ><img src="images/nav_2_lev_tab_Hi_L.gif" alt="" /></li> 
         <li class="sub_link_active"><span><a href="myProjects.php">My Projects</a></span></li> 
         <li><img src="images/nav_2_lev_tab_Hi_R.gif" alt="" /></li> 
        '; 
    } 
    else{ 
     $sub_menu_html.= ' 
         <li><img src="images/nav_2_lev_tab_L.gif" alt="" /></li> 
         <li class="sub_link"><span><a href="myProjects.php">My Projects</a></span></li> 
         <li><img src="images/nav_2_lev_tab_R.gif" alt="" /></li> 
        '; 
    } 
    if($page == 'insertProject'){ 
     $sub_menu_html.= ' 
         <li><img src="images/nav_2_lev_tab_Hi_L.gif" alt="" /></li> 
         <li class="sub_link_active" ><span><a href="insertProject.php">Post a Project</a></span></li> 
         <li><img src="images/nav_2_lev_tab_Hi_R.gif" alt="" /></li> 
        '; 
    } 
    else{ 
     $sub_menu_html.= ' 
         <li><img src="images/nav_2_lev_tab_L.gif" /></li> 
         <li class="sub_link"><span><a href="insertProject.php">Post a Project</a></span></li> 
         <li><img src="images/nav_2_lev_tab_R.gif" /></li> 
        '; 
    } 
    if($page == 'myAccount'){ 
     $sub_menu_html.= ' 
         <li><img src="images/nav_2_lev_tab_Hi_L.gif" /></li> 
         <li class="sub_link_active" ><span><a href="myAccount.php">My Account</a></span></li> 
         <li><img src="images/nav_2_lev_tab_Hi_R.gif" /></li> 
        '; 
    } 
    else{ 
     $sub_menu_html.= ' 
         <li><img src="images/nav_2_lev_tab_L.gif" /></li> 
         <li class="sub_link"><span><a href="myAccount.php">My Account</a></span></li> 
         <li><img src="images/nav_2_lev_tab_R.gif" /></li> 
        '; 
    } 

    $sub_menu_html.= ' 
      </ul> 
       <div class="user_id"> 
        Welcome, '.$user.'! &nbsp;&nbsp;<span class="sign_out"><a href="http://www.example.org/login.php?action=logout">Sign Out</a></span>&nbsp;&nbsp; 
       </div> 
     </div> 
    '; 
    return $sub_menu_html; 
} 
+0

Das schmerzt mich. : - \ – hobodave

+0

Mann, ich wette, dein Designer liebt dich nur! – UpTheCreek

Antwort

0

Sie könnten ein Array wie folgt verwenden:

$pages=array('myAccount'=>'My Account', ...); 

Dann über sie gehen mit foreach, vergleichen Sie die Tasten, um die $ Seite variabel. im HTML-Code setzen einige ternäre Operatoren:

'<li><img src="images/nav_2_lev_tab_'.($page==$key?'Hi_':'').'L.gif" /></li>' 

Auf diese Weise können die Werte der $ Seiten Array für die Links Text verwenden könnten.

Sie werden den Rest herausfinden.

Verwandte Themen