Я хочу поместить свое меню в отдельный файл PHP, поэтому, когда мне нужно отредактировать его, мне нужно отредактировать его только один раз. Проблема начинается, когда я хочу выделить активную страницу. Может кто-нибудь помочь мне это исправить?
<?php $currentPage = basename($_SERVER['SCRIPT_FILENAME']); ?>
Переключить навигацию
<li><a href="index.php" <?php if ($currentPage == 'index.php') { echo 'id="here"'; }?>><span class="glyphicon glyphicon-home"></span> Home</a></li>
<li><a href="about.php" <?php if ($currentPage == 'about.php') { echo 'id="here"'; }?>><span class="glyphicon glyphicon-picture"></span> About us</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"> <span class="glyphicon glyphicon-calendar"></span> Services <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="services1.php" <?php if ($currentPage == 'services1.php') { echo 'id="here"'; }?>><span class="glyphicon glyphicon-user"></span> Drivers services</a></li>
<li><a href="services2.php" <?php if ($currentPage == 'services2.php') { echo 'id="here"'; }?>><span class="glyphicon glyphicon-wrench"></span> Shop services</a></li>
</ul>
</li>
<li><a href="application.php"<?php if ($currentPage == 'application.php') { echo 'id="here"'; }?>><span class="glyphicon glyphicon-pencil"></span> On-line Application</a></li>
<li><a href="contact.php" <?php if ($currentPage == 'contact.php') { echo 'id="here"'; }?>><span class="glyphicon glyphicon-envelope"></span> Contact us</a></li>
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->
</nav>
<div class="clearfix"> </div>
</div><!-- navbar -->
Я нашел решение моего вопроса, добавив этот CSS в файл стилей:
/* The here ID identifies the current page and applies a white color to the text and a black background as a visual indicator. */
a#here {
background-color: #000 !important;
color: #fff !important;
}
Быстрый и грязный метод для достижения этой цели в каждом файле:
<?php
include("header.php"); // Insert location of header file here
?>
и в вашем файле header.php после создания блока head вставьте этот
<?php $active= substr(basename($_SERVER['SCRIPT_FILENAME']),0, -4); ?> // Page Name
<body <?php echo "class='$active'";?>> // This sets the bodies class to be the page name.
наконец, в style.css используйте следующий код для установки выделенной функции
// This is an example for my CSS. Insert your own css selector
// In my css i have this which adds a small orange bar to the bottom of the navigation option. I set the opacity to 0 to not display it.
.header nav ul li a:before
{
height: 5px;
background: #ea5c18;
opacity: 0;
}
// Then i set .PageName (the bodies class name) and set that specific nav element to have an opacity of 1.
.PageName .header nav ul li:first-child a:before
{
opacity:1;
}