Выделение текущего пункта меню, если PHP включает - PullRequest
3 голосов
/ 03 декабря 2010

Если я делаю навигацию по меню в html и использую PHP для включения его в каждую страницу на моем сайте, как мне выделить текущую страницу, если все, что я могу поместить на страницу, это включить ("menu.html");

Ответы [ 4 ]

10 голосов
/ 03 декабря 2010

Сделайте ваше menu.html в menu.php, и внутри этого файла сделайте что-то вроде

<ul class="menu">
    <li <?php echo ($page == 'page1') ? 'class="current"' : '';?>> <a href="#">Page1</a> </li>
    <li <?php echo ($page == 'page2') ? 'class="current"' : '';?>> <a href="#">Page2</a></li>   
</ul>

Таким образом, на каждой странице вы включаете menu.php, вы можете просто установить переменную, например,

<?php    
$page = 'page1';
include('menu.php');
?>

Имейте в виду, что это всего лишь пример, так как мы не знаем, как выглядит ваш текущий код

6 голосов
/ 03 декабря 2010

Вы также можете написать меню на PHP, так как вы уже используете PHP для загрузки меню, просто запустите оператор if / else для пунктов меню, чтобы проверить, соответствует ли «href» в ссылке текущему URL страницы. и установите для пункта меню значение «активный».

3 голосов
/ 03 декабря 2010

В сыром php это должно быть похоже на

<?php 
$currentPage = ''; // should be accessed from $_SERVER
$cssMenu = array('home.html', 'about.html');
if(array_search($currentPage, $cssMenu)) $cssMenu[$currentPage] = 'active';
?>

<ul id="top-menu">
<li class="<?= $cssMenu['home.html'] ?>">Home</li>
<li class="<?= $cssMenu['about.html'] ?>">About</li>
</ul>
1 голос
/ 03 декабря 2010

Поскольку вы не можете изменять классы и div перед загрузкой страницы, вам придется использовать какой-то javascript / jquery / что угодно для динамического выделения ссылки после загрузки страницы.Это не должно быть слишком сложно;у вас может быть немного Javascript, который просматривает div меню (если вы используете div) для записи href, соответствующей текущей странице, и затем добавляете соответствующий класс css к этому конкретному тегу.

...