2009-07-31 2 views
0

나는 주 메뉴와 하위 메뉴를 나에게 침을 뱉는 기능을 사용하고 있습니다. 기본적으로 페이지 ID를주고 CSS를 통해 강조 표시된 메뉴 항목이있는 메뉴를 제공합니다.이 메뉴 코드를 개선하는 방법

내가 묻는 것은이 코드 (및 내가 주변에 놓인 다른 코드)를 어떻게 향상시킬 수 있습니까? 코드 줄 수를 줄이고 코드 반복 횟수를 줄입니까? Switch 문이 이전 if/else 조건문보다 빠르다는 것을 알고 있지만 스위치를 사용하면 HTML 메뉴 항목을 강조 표시하는 방법을 모르겠습니다.

css 클래스 (class = "sub_active_link")는 현재 메뉴 항목을 강조 표시합니다. 강조 표시되지 않은 링크는 (class = "sub_link")입니다.

코드를 다시 작성할 필요가 없습니다. 이와 같은 상황에 대한 개념이나 모범 사례 만 필요합니다.

모든 아이디어 나 방향에 대해 매우 감사 드리며 더 완벽한 프로그래머가되어 주셔서 감사합니다.

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

이것은 나를 괴롭게합니다. : - \ – hobodave

+0

이봐, 너의 디자이너가 너를 사랑한다고! – UpTheCreek

답변

0

이 같은 배열을 사용할 수 있습니다

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

그런 다음 foreach는 함께 걸을는 $ 페이지 변수에 키를 비교합니다.

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

이 방법은 링크 텍스트의 $ 페이지 배열의 값을 사용할 수 있습니다 HTML 코드 어떤 삼항 연산자를했습니다.

나머지는 알아 보겠습니다.

관련 문제