Я создаю веб-сайт с использованием HTML / bootstrap и для уменьшения повторения того же кода, который я пытался использовать с помощью PHP include для нижнего колонтитула и боковой панели, например:
<html>
<body>
<?php include('navigation.php'); ?>
Contents of this page here...
<?php include('sidebar.php'); ?>
<?php include('footer.php'); ?>
</body>
</html>
Я хотел сделать то же самое для меню навигации, но так как выделенные ссылки меняются с каждой страницей, я не уверен, как это динамически изменить.
Так как я использую bootstrap, мне нужен какой-то метод, с помощью которого я могу класс = «активный» в меню ссылки.
(Примечание: новичок в Php.)
Есть несколько простых способов сделать это. Лучший способ для меня — поместить содержимое вашего файла navigation.php в функцию с аргументом. Затем вы вызываете функцию после включения и передаете в качестве аргумента число или строку, представляющую элемент, который нужно поместить в качестве активного.
Ваша функция тогда будет примерно такой:
<?php
function displayNavBar($activeItem){ ?>
<li class="">
<ul class="" > <li <?php if($activeItem=="Home"){echo "class='active'";}?>>
<a href="#">Home</a></li> <li><a href="#">contact</a></li> <li class="active"><a href="#">privacy</a></li> <li><a href="#">about</a></li </ul> </li>
<?php } ?>
Очевидно, что я написал cose только для первого пункта, вы должны сделать то же самое с остальными. И тогда в вашем файле вы должны вызвать созданную функцию:
displayNavBar("Home"):
Я не уверен насчет структуры вашего сайта, но обычно вы читаете текущий URL и устанавливаете активный класс в соответствии с этим. Так, используя, например:
$current_page = $_SERVER['PHP_SELF'];
Если бы вы были в /index.php, то вы бы
$current_page = '/index.php';
Тогда это просто сказать
<li<?php echo $current_page=='/index.php' ? ' class="active"' : ''; ?>><a href="">Home</a></li>
<li<?php echo $current_page=='/about.php' ? ' class="active"' : ''; ?>><a href="">About</a></li>
Это всего лишь пример. Установите текущую страницу, как указано выше, посмотрите, что результат использует echo, затем установите ссылку, как показано ниже.