В настоящее время я использую файл PHP с нижним колонтитулом моего веб-сайта, поэтому я могу просто включить его на каждой странице и изменить только один файл, чтобы изменить нижний колонтитул на каждой странице сайта.
Теперь я хотел бы сделать то же самое с меню на моем сайте, которое выглядит так:
<ul>
<li><a href="#">Menu 1</a></li>
<li><a href="#" class="active">Menu 2</a></li>
<li><a href="#">Menu 3</a></li>
<li><a href="#">Menu 4</a></li>
</ul>
Активный класс выделяет имя страницы, на которой находится пользователь, поэтому, если пользователь находится на странице «Меню 2» веб-сайта, будет выделено «Меню 2». Теперь мне интересно, как я могу поместить это меню в отдельный файл, например, ‘menu.php’, который я могу включить в каждую страницу, но при этом иметь возможность изменить class = «active» на страницу, на которой находится пользователь.
$open_page = substr($_SERVER["SCRIPT_NAME"], strrpos($_SERVER["SCRIPT_NAME"],"/")+1);
а также
<ul>
<li><a href="#" <?php if($open_page == "Menu_1.php") echo " class= 'active' "; ?>>Menu 1</a></li>
<li><a href="#" <?php if($open_page == "Menu_2.php") echo " class= 'active' "; ?>>Menu 2</a></li>
<li><a href="#" <?php if($open_page == "Menu_3.php") echo " class= 'active' "; ?>>Menu 3</a></li>
<li><a href="#" <?php if($open_page == "Menu_4.php") echo " class= 'active' "; ?>>Menu 4</a></li>
</ul>
Сравнение с именем файла не является лучшей практикой & когда ваш проект становится тяжелым, его трудно поддерживать
Позвоните в нижний колонтитул со страницы & передать идентификатор страницы-
------ Menu1_page.php --------
<?php
require_once 'footer.php';
getFooter('Menu1');
?>
в footer.php сохраните нижний колонтитул в функции
---- footer.php -----
<?php
function getFooter($activeid){
?>
<ul>
<li><a href="#" class="<?=($activeid=='Menu1')?'active':''?>">Menu 1</a></li>
<li><a href="#" class="<?=($activeid=='Menu2')?'active':''?>">Menu 2</a></li>
......
</ul>
<?php
}
?>
Ну, в зависимости от того, как вы перемещаетесь по своей странице, у вас будет что-то вроде
mydomain.com\index.php?page=whereyouare
,
Тогда вы можете получить доступ $_GET['page']
(даже в вашем footer.php), чтобы определить, на какой странице вы находитесь, и если / иначе это правильно, чтобы соответствовать class = active
Я бы не рекомендовал использовать global-vars для решения этой проблемы.