Глобальная навигация с активным селектором (PHP)

0

Вместо того, чтобы повторять код навигационной панели на каждой странице, я хочу написать один фрагмент кода 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" >
  • 1
    Зачем вам нужно было преобразовать HTML- код в PHP- код? Вы могли бы обязательно include HTML-файл, если хотите.
  • 0
    Я хочу преобразовать его в код PHP, чтобы был только один файл с кодом меню навигации. Итак, если что-то нужно изменить, мне придется редактировать только один код. И поскольку я хочу поместить выбранный элемент в класс CSS как <li class="active"> просто HTML-код не будет работать! Мне понадобится код PHP!
Показать ещё 2 комментария
Теги:
navigation

1 ответ

0

Проверьте, является ли текущее имя файла сценария частью 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>";
  }

}
  • 0
    Я изменил URL каждого элемента массива в $ menu на «administrator1.php», «administrator2.php» и т. Д. Но все равно class = «active» не будет работать, хотя панель навигации работает правильно!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню