Вместо того, чтобы повторять код навигационной панели на каждой странице, я хочу написать один фрагмент кода PHP для панели меню навигации и включить этот файл на соответствующие страницы. Мой первый HTML-код меню панели навигации выглядит следующим образом. (По умолчанию выбрано "USERS".)
<ul>
<li class="active" ><a href="administrator1.php"><span><B>USERS</B></span></a></li>
<li><a href="administrator2.php"><span><B>CREATE PROFILE</B></span></a></li>
<li><a href="administrator3.php"><span><B>PAYMENTS</B></span></a></li>
<li><a href="administrator4.php"><span><B>DEFENSE</B></span></a></li>
<li><a href="administrator5.php"><span><B>PROGRESS REPORT</B></span></a></li>
</ul>
Поэтому я изменил приведенный выше код на PHP-код. Имя файла, имеющего этот код, - 'test.php'
<?php
$menu = array(
'users' => array('text'=>'USERS', 'url'=>'?p=administrator1.php'),
'createProfile' => array('text'=>'CREATE PROFILE', 'url'=>'?p=administrator2.php'),
'payment' => array('text'=>'PAYMENTS', 'url'=>'?p=administrator3.php'),
'defense' => array('text'=>'DEFENSE', 'url'=>'?p=administrator4.php'),
'progressReport' => array('text'=>'PROGRESS REPORT', 'url'=>'p=administrator5.php'),);
class Nav {
public static function GenerateMenu($items) {
$html = "<ul>";
foreach($items as $item) {
$html .= "<li><a href='{$item['url']}' ><span><B>{$item['text']}</B></span> </a></li>";
}
$html .= "</ul>";
return $html;
}
};
?>
В 'administrator1.php' я назвал указанную выше функцию следующим образом:
<?php
include 'test.php';
echo Nav::GenerateMenu($menu);
?>
Моя проблема в том, как я могу поместить "administrator1.php" в качестве выбранного по умолчанию элемента списка меню и как поместить выбранный элемент списка в класс CSS?
Выбранный элемент списка должен иметь "активный" класс CSS.
<li class="active" >
Проверьте, является ли текущее имя файла сценария частью URL-адреса, отображаемого в навигации. Если это так, то присвойте ему active
класс.
foreach($items as $item) {
if(stristr($item['url'],__FILE__)===FALSE)
{
$html .= "<li><a href='{$item['url']}' ><span><B>{$item['text']}</B></span> </a></li>";
}
else
{
$html .= "<li class='active'><a href='{$item['url']}' ><span><B>{$item['text']}</B></span> </a></li>";
}
}
include
HTML-файл, если хотите.<li class="active">
просто HTML-код не будет работать! Мне понадобится код PHP!