FreshMeatInIT
@FreshMeatInIT
В замкнутом кругу

Как правильно сделать динамическое навигационное меню с помощью PHP?

У меня есть навигационное меню:5cd588b5f30e1001709770.png
На картинке его правильный вариант работы. Однако, такое меню приходится пихать в каждый файл с небольшим изменением в коде- добавлением класса 'active' к тому пункту меню, на котором сейчас находится пользователь.
Я попытался написать что-то вроде этого:
<?php
$links = array("/profile.php", "/tasks.php", "/group.php", "/my_stat.php", "/group_stat.php", "/common_stat.php", "/all_profiles.php");   
function what_is()
{
    for($i = 0; $i<count($links); $i++)
    {
        if($links[$i] == $_SERVER['PHP_SELF'])
        { 
            echo 'active';
        }
    }
}
?>

<body>
   <div class="navbar">
      <div class="navbar-inner">
         <div class="container">
            <a href='<?php echo("logout.php");?>'>Logout</a>
         </div>
      </div>
   </div>
   <div class="container">
      <div class="row">
         <div class="col-md-3 ">
            <div class="list-group ">
               <a href="<?php echo($links[0]); ?>" class="list-group-item list-group-item-action <?php what_is();?>">Профиль</a>
               <a href="<?php echo($links[1]); ?>" class="list-group-item list-group-item-action <?php what_is();?>">Задания</a>
               <a href="<?php echo($links[2]); ?>" class="list-group-item list-group-item-action <?php what_is();?>">Группа</a>
               <a href="<?php echo($links[3]); ?>" class="list-group-item list-group-item-action <?php what_is();?>">Моя статистика</a>
               <a href="<?php echo($links[4]); ?>" class="list-group-item list-group-item-action <?php what_is();?>">Статистика группы</a>
               <a href="<?php echo($links[5]); ?>" class="list-group-item list-group-item-action <?php what_is();?>">Общая статистика</a>
               <a href="<?php echo($links[6]); ?>" class="list-group-item list-group-item-action <?php what_is();?>">Все профили</a>
            </div>
         </div>

Однако, не сработало, все пункты меню белого цвета. Где я допускаю ошибку?
  • Вопрос задан
  • 69 просмотров
Пригласить эксперта
Ответы на вопрос 1
dark_tke
@dark_tke
Помогли? Отметь решением!
В общем то логично, что у вас все белые, посмотрите на свой код повнимательнее, вы где вы показываете с какой ссылкой работаете? В вашем варианте, если вы перейдете на последнюю ссылку, то у вас все станут active, что согласитесь неверно, код должен быть например таким:
<?php  ($links[0] === $_SERVER['PHP_SELF']) ? 'active' : ''    ?>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы