У меня проблемы с использованием php для контроля, если навигационной ссылке присвоен класс «активный», в зависимости от того, на что установлена переменная $ CURRENT_PAGE.
Вот файл navigation.php, который включен в каждый файл страницы веб-сайта.
<div class="container mt-3">
<ul class="nav nav-tabs">
<li class="nav-item">
<a class="nav-link <?php if ($CURRENT_PAGE == "Index") {?>active<?php }?>" href="index.php">Home</a>
</li>
<li class="nav-item">
<a class="nav-link <?php if ($CURRENT_PAGE == "About") {?>active<?php }?>" href="about.php">About Us</a>
</li>
<li class="nav-item">
<a class="nav-link <?php if ($CURRENT_PAGE == "Contact") {?>active<?php }?>" href="contact.php">Contact</a>
</li>
</ul>
</div>
Вот файл конфигурации, который устанавливает переменную $ CURRENT_PAGE:
<?php
switch ($_SERVER["SCRIPT_NAME"]) {
case "/php-template/about.php":
$CURRENT_PAGE = "About";
$PAGE_TITLE = "About Us";
break;
case "/php-template/contact.php":
$CURRENT_PAGE = "Contact";
$PAGE_TITLE = "Contact Us";
break;
default:
$CURRENT_PAGE = "Index";
$PAGE_TITLE = "Welcome to my homepage!";
}
?>
Для справки по моему шаблону я использую шаблон исходного кода из этого поста.https://medium.com/@stevesohcot/sample-basic-php-template-for-file-structure-with-example-code-47ff6d610191
Что касается проблемы, с которой я столкнулся, активный класс отображается только по домашней ссылке, даже если я нахожусь на другой странице, например на странице контактов.Когда я наведите курсор на навигационные ссылки «about» и «contact», активный класс инициирует, но инициирует только тогда, когда я наведите курсор мыши на навигационные ссылки «about» и «contact».Может быть, это связано с классами начальной загрузки, которые я использую?
Пример