2010-08-11 4 views
0

Je veux être capable d'extraire le nom du fichier et de l'URL que je suis actuellement, de définir deux variables (nom de fichier, dossier) et de le comparer à un tableau. Selon ce que sont les valeurs, nous définissons une classe 'active' à < li> pour montrer que la page fait partie de cette section.Obtenir la page 'active' pour définir l'onglet nav

Je n'ai jamais vraiment utilisé de tableaux auparavant, mais j'ai fait quelques recherches en pensant que ce serait la façon la plus logique de le faire. Je configurer un tableau avec les noms de dossier, et quelles pages doivent être là

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

donc ci-dessus, le dossier/bande/doit avoir biography.php et index.php. Alors maintenant, j'ai besoin d'un moyen de regarder à travers ce tableau et faire une correspondance de sorte que si je visite "site.com/band/biography.php" je suis en mesure de vérifier le tableau et de dire "Oui, vous" re sur cette page. maintenant, appliquez une classe « active » à la « bande » < LI>.

jusqu'à présent, je suis en mesure d'obtenir le nom du fichier

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

maintenant, je ne peux pas comment vérifier chaque tableau pour voir si je suis dans la bonne page. J'ai essayé

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

Et cela fonctionne, mais je me suis dit qu'il doit y avoir moyen de vérifier tous les 3 tableaux , 'band', 'musique', 'site' tout à la fois. Donc, je veux voir si le nom de fichier est dans le tableau, mais aussi je dois m'assurer qu'il est au bon endroit. Par exemple, index.php peut être dans n'importe quel dossier, je veux seulement une vraie déclaration si index.php est dans le tableau 'band', pas seulement le tableau $ navPages global.

Quelqu'un peut-il m'aider? J'ai essayé d'être aussi détaillé que possible, faites-moi savoir s'il y a quelque chose qui me manque.

Aussi, c'est la première fois que j'essaye de faire une section nav comme celle-ci. Donc, si vous voyez que je manque une certaine logique sur ce dont j'ai besoin pour faire ce travail, tous les conseils seraient appréciés, merci!

Répondre

0

Ne pas préciser la band clé:

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

Cela recherchera la page en cours dans l'ensemble du réseau et si oui, l'état définira la classe actuelle.

+0

Merci pour la réponse, j'ai essayé cela, mais cela ne m'a pas donné une vraie déclaration. Aussi (j'ai édité le post pour clarifier cela), j'ai besoin de vérifier le tableau par rapport à l'URL, pour être sûr que je suis au bon endroit- "Donc je veux voir si le nom de fichier est dans le tableau, mais aussi Par exemple, index.php peut être dans n'importe quel dossier, je veux seulement une vraie déclaration si index.php est dans le tableau 'band', et pas seulement dans le tableau $ navPages global. " – Andelas

+0

Essayez de vérifier l'index comme ceci: 'if (in_array ($ page, $ navPages) && in_array ('index', $ navPages))' – Sarfraz

Questions connexes