以下代碼所做的是檢查數組中的所有導航項目,然後檢查URI
匹配來知道哪個菜單項應該顯示爲活動的。帶有REQUEST_URI的動態菜單適用於'/'根目錄,但不適用'/index.php'
一切正常,因爲它應該。但有一件事。
當我在根domain.com
上時,菜單中的Home
項顯示爲應該激活。但當我去/index.php
同樣的事情應該發生,但它不是我想讓他們都工作。
我不太確定我在哪裏或如何在代碼中實現該功能。
PHP
<?php
$GLOBALS['config'] = array(
'navigation' => array(
'Home' => '/', //this part here
'Sign up' => '/signup.php',
'Login' => '/login.php'
)
);
class Navigation {
public static function get() {
$URI = $_SERVER['REQUEST_URI'];
$navArr = Config::get('navigation');
$navigation = '<ul id="nav">' . "\n";
foreach($navArr as $name => $path) {
$navigation .= ' <li' . (($URI == $path) ? ' class="active"' : false) . '><a href="' . $path . '">' . $name . '</a></li>' . "\n";
}
$navigation .= '</ul>';
return $navigation;
}
}
?>
還,如果我記得不建議使用全局變量:? – Cristo
如果我添加一個條目,我基本上會在我的菜單中獲得2個指向同一頁面的項目。我不想那樣。 –
這是因爲你如何實施。然後去.htaccess – Cristo