2010-08-11 3 views
0

Я хочу, чтобы иметь возможность вытащить имя файла и url, в котором я сейчас включен, установить две переменные (имя файла, папку) и проверить его на массив. В зависимости от значений мы устанавливаем «активный» класс на то, что < li>, чтобы показать страницу, является частью этого раздела.Получение «активной» страницы для установки вкладки nav

Я никогда раньше не использовал массивы, но я сделал небольшое исследование, думая, что это самый логичный способ сделать это. Установка I массив с именами папок, и какие страницы должны быть там

$navPages = array ("band" => array ("biography","index"), 
        "music" => array ("discography","lyrics","meanings",), 
        "site" => array ("about","team") 
       ); 

Так выше, папка/группа/должна иметь biography.php и index.php. Итак, теперь мне нужен способ просмотреть этот массив и сделать совпадение, чтобы, если я навещаю «site.com/band/biography.php», я могу проверить массив и сказать «Да, вновь на этой странице. Теперь примените «активный» класс к «Band» < LI>.

до сих пор, я могу получить имя файла

$page = basename($_SERVER['PHP_SELF'], ".php"); 

Теперь я не могу понять , как проверить каждый массив, чтобы увидеть, если я нахожусь в правой странице. Я попытался

if(in_array($page, $navPages[band])) { 
    $class = 'active'; 
} 

И это работает, но я понял, что должен быть способ проверить все 3 массивов , 'band', 'music', 'site' все сразу. Поэтому я хочу посмотреть, находится ли имя файла в массиве, но также мне нужно убедиться, что он в нужном месте. Например, index.php может быть в любой папке, мне нужен только истинный оператор, если index.php находится в массиве 'band', а не только в массиве $ navPages.

Может ли кто-нибудь помочь мне с этим? Я старался быть как можно более подробным, сообщите мне, есть ли что-то, что мне не хватает.

Кроме того, это первый случай, когда я пытаюсь сделать раздел навигации таким образом. Поэтому, если вы видите, что мне не хватает какой-либо логики в отношении того, что мне нужно для выполнения этой работы, любые советы будут оценены, спасибо!

ответ

0

Не указывайте ключ band:

if(in_array($page, $navPages)) { 
    $class = 'active'; 
} 

Это будет выглядеть для текущей страницы в весь массив, а если да, то условие будет установлен класс по току.

+0

Спасибо за ответ, я попробовал это, но это не дало мне истинного заявления. Также (я отредактировал сообщение, чтобы прояснить это), мне также нужно проверить массив на URL-адрес, чтобы убедиться, что я нахожусь в нужном месте - «Итак, я хочу посмотреть, находится ли имя файла в массиве, но также Мне нужно убедиться, что оно в нужном месте. Например, index.php может быть в любой папке, мне нужен только истинный оператор, если index.php находится в массиве 'band', а не только в массиве $ navPages. " – Andelas

+0

Попробуйте также проверить индекс следующим образом: 'if (in_array ($ page, $ navPages) && in_array ('index', $ navPages))' – Sarfraz

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