Nasıl Bu Menü kodu geliştirebiliriz

1 Cevap php

Ben benim için ana ve alt menünün tükürmek bir işlevi kullanıyorum. Temelde ben bir sayfa kimliği beslemek ve bana doğru CSS ile vurgulanan menü öğesi ile menü verir.

Ne soruyorum: nasıl bu kod geliştirmek yoktur (ve bunun gibi diğerleri etrafında döşeme var ki?) Kod satırları miktarını düşürmek ve kod tekrarını azalan? Ben bir geçiş deyimi koşullu ifadeler, if / else eski daha hızlı olduğunu biliyorum ama ben bir anahtarını kullanırsanız eğer benim HTML menü öğesini vurgulamak için nasıl emin değilim.

Css sınıf (class = "sub_active_link") geçerli menü öğesi vurgulayarak sorumludur. A vurgulu olmayan bağlantı (class = "sub_link") 'dir.

Böyle bir durum için sadece kavram ya da en iyi uygulama, yeniden yazılmış kod gerekmez.

Bana yardım için herhangi bir fikir veya bir yönde büyük takdir ve teşekkür daha eksiksiz bir programcı olmak.

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;
}

1 Cevap

: Böyle bir dizi, kullanabilirsiniz

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

Then walk over it with foreach, compare the keys to the $page variable. In the html code put some ternary operators:

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

Bu şekilde bağlantıları metin için $ sayfaları dizinin değerlerini kullanabilirsiniz.

Gerisini bulacaksınız.