2014-09-25 135 views
3

我有單獨的文件(LIB.php)與定義的功能。 在每個頁面中調用此函數。 我想讓它充滿活力,當我瀏覽的網頁內容中的一個頁面變得活躍狀態在導航列表中的活動鏈接

function get_Navigation(){ 

$navigation = <<<END 
<div class="menubar"> 

    <ul> 
     <li><a href="index.php"><i class="icon-home icon-large"></i><main>Home</main></a></li> 
     <li><a href="admin.php"><i class="icon-star icon-large"></i><main>Admin</main></a></li> 
     <li><a href="cart.php"><i class="icon-money icon-large"></i><main>Cart</main></a></li> 
    </ul> 

    </div> 
END; 

echo $navigation; 
} 
+0

您可以使用'__FILE__'獲取當前文件並檢查它是否與導航中的文件相同。 – Jerodev 2014-09-25 08:17:47

回答

1

使用basename($_SERVER['PHP_SELF']);獲取文件名,這將返回類似index.php然後,你可以添加一個類的行或鏈接來修改其外觀。所以,你的代碼可能是這個樣子,如果你想使用heredoc string而不是串聯幾串保持:

$isactive = "isactive"; 
function isactive($filename){ 
    $currentfile = basename($_SERVER['PHP_SELF']); 
    if($currentfile == $filename) return "active"; 
} 
$navigation = <<<END 
<div class="menubar"> 

    <ul> 
     <li class='{$isactive("prog.php")}'><a href="index.php"><i class="icon-home icon-large"></i><main>Home</main></a></li> 
     <li class='{$isactive("admin.php")}'><a href="admin.php"><i class="icon-star icon-large"></i><main>Admin</main></a></li> 
     <li class='{$isactive("cart.php")}'><a href="cart.php"><i class="icon-money icon-large"></i><main>Cart</main></a></li> 
    </ul> 

    </div> 
END; 

echo $navigation; 

注意,我創建一個$isactive變量,它看起來是多餘的,但它是欺騙定界符字符串的方法返回函數值而不是僅僅打印它的名字,但是這實際上是在另一個範圍內。

0

這取決於你使用任何框架,你是否重寫URL。如果我們假設約老式的PHP不重寫,你可以這樣做:

function get_Navigation(){ 

    $current_filename = basename(__FILE__, ".php"); 
    $menuItems = array('index' => false, 'admin' => false, 'cart' => false); 

    switch($current_filename) { 
     case 'index': $menuItems['index'] = true; break; 
     case 'admin': $menuItems['admin'] = true; break; 
     case 'cart': $menuItems['cart'] = true; break; 
    } 

    $navigation = ' 
     <div class="menubar"> 
     <ul> 
     <li><a href="index.php" class="' . ($menuItems['index'] ? 'selected' : '') . '"><i class="icon-home icon-large"></i><main>Home</main></a></li> 
     <li><a href="admin.php" class="' . ($menuItems['admin'] ? 'selected' : '') . '"><i class="icon-star icon-large"></i><main>Admin</main></a></li> 
     <li><a href="cart.php" class="' . ($menuItems['cart'] ? 'selected' : '') . '"><i class="icon-money icon-large"></i><main>Cart</main></a></li> 
     </ul> 
    </div> 
'; 

    echo $navigation; 
} 

我假設索引頁的index.php命名,後臺管理頁面 - admin.php的和購物車頁面 - cart.php

這會將class'selected'追加到激活的鏈接。