2010-11-27 57 views
0

j'ai trouvé un lien J'aime: Convivial Navigation contextuelle avec PHP Simple Comprend http://brainstormsandraves.com/archives/2006/09/27/navigation/Comment créer un nav.php flexible qui n'a pas besoin d'être maintenu par un codeur

Mais les choses il y a codées en dur. Comment les choses peuvent-elles être facilitées? Dites-moi si vous avez des questions.

+0

Il est le cadre 'Stacey' qui implémente cela. https://github.com/kolber/stacey – Ross

+0

@Ross, merci. Est-il facile à installer? Comment? Quelles sont les versions de PHP supportées? Je pense que je ne veux qu'une partie de ce qu'il fait. –

Répondre

2

Une solution comme cela pourrait être bon:

Dans un nouveau fichier, définissez un tableau: $ pages = array ('Home' => '/index.php', 'News' => '/news.php');

Ensuite, une fonction qui imprime le menu

function print_menu() { 
    foreach($pages as $name=>$url) { 
    if ($_SERVER['REQUEST_URI'] == $url) print $name; 
    else print '<a href="'.$url.'">'.$name.'</a>'; 
    } 
} 
+0

Désolé pour une question 100% noob: A) Je définis les deux dans le même fichier? B) Comment utiliser cette fonction à partir d'un autre fichier, que ce soit .php ou .html? Est-ce que '$ name' est une variable globale définie pour chaque page PHP? Est-ce automatique ou faut-il le définir? Y a-t-il un meilleur nom comme $ nompage, ou est-ce la norme acceptable? –

+0

Battez-moi. Une belle solution simple et propre. J'ai utilisé quelque chose comme ça dans mes projets avant. – mpen

+0

Je les définirais tous les deux dans le même fichier. Pour utiliser cette fonction sur chaque page, utilisez le mot-clé PHP 'include' (beaucoup d'infos sur le site PHP), puis appelez print_menu() où vous voulez le menu. Même si vous incluez le nouveau fichier, vous aurez toujours besoin des balises james

0

Vous pouvez réaliser ceci avec javascript au clientide. Ce qui est beaucoup plus facile et ne nécessite aucun code de modification côté serveur. . Je vais utiliser jquery ici -

function OnLoad(){ 
    // Assuming the links are in the format http://example.com/section/. 
    // I am stripping out the the 4th (3 in the [] below) column when split with /'s 
    location = document.location.href.split("/")[3]; 
    $('li.menuitems a[href*='+location+']').each(function() { 
      $(this).replaceWith($(this).html()); 
     }); 
}); 

J'ai vraiment besoin de travailler sur mon jquery :(Ceci est juste un code pseudo et je vous assure que cela est réalisable Edit: A travaillé sur . obtenir le jquery travail ..

code à la page http://pastie.org/1329224 Exemple de "environ" à GoogAppspot

+0

Je n'ai pas utilisé 'jQuery' avant. Si vous boeuf et nettoyer cela, cela peut être une réponse gagnante. –