2014-02-11 2 views
0

У меня есть следующий PHP-скрипт, который добавит класс .Active на текущую открытую страницу - этот бит работает, но я am также пытаюсь добавить имя страницы в тег body как идентификатор «#», но, похоже, он не работает, как я это делаю. Кто-нибудь может посоветовать мне?Добавить имя страницы в тег body

<!--add class .active to current page--> 
<?php 
    $directoryURL = $_SERVER['REQUEST_URI']; 
    $path = parse_url($directoryURL, PHP_URL_PATH); 
    $components = explode('/', $path); 
    $currentPage = preg_replace("/\\.[^.\\s]{3,4}$/", "", end($components)); 

    if ($currentPage == "") { 
     $currentPage = "index"; 
    } 

    function href($url) { 
     global $currentPage; 
     $path = explode('/', $url); 
     $page = preg_replace("/\\.[^.\\s]{3,4}$/", "", end($path)); 
     echo 'href="' . $url . '" '; 

     if ($page == $currentPage) { 
     echo 'class="active"'; 
     } 
    } 
?> 

Вот меню:

<li><a <?php href('index.php'); ?>>Home</a></li> 
<li><a <?php href('about.php'); ?>>About</a></li> 
<li><a <?php href('treatments.php'); ?>>Treatments</a></li> 

И HTML код:

<html> 
<head> 
    <title></title> 
</head> 

<body> 
</body> 
</html> 
+1

'echo 'class =" active "id =" $ page "'' –

+0

Я не вижу тега '' в любом месте этого фрагмента кода. Определить: 'body' –

+1

body - '' страницы, которая появляется после '' тег –

ответ

0

Это очень просто добавить эту переменную $ страницу в эхо

echo "class='active' id='$page'"; 
+0

То, как я пробовал это в первый раз, но добавляет id = «имя страницы» к якорю, я хочу применить его к тегу body. –

+1

Вы указали только небольшую часть своего кода. Просто проверьте, использовали ли вы тег body и там вы можете добавить echo, для ex Или echo ""; – Sanoob

+0

Это не сработало для меня, так как это нужно делать из функции, которая сама по себе, а не жестко закодирована в теге Body. –

0

В принципе, если вы не хотите изменять шаблон, вы не можете.

решение было бы сделать это в шаблоне, но это должно быть очевидно для вас:

<body <?php echo $id; ?>> 

То, что кажется менее очевидным для вас, это просто, что вы не можете сделать это без касаясь шаблона.

Кроме того, вы должны избегать глобальных переменных.

Смежные вопросы