J'ai configuré un menu pour un site assez simple basé sur icant.co.uk. C'est assez simple avec peut-être 5 pages. Le petit site est principalement un navigateur mysql pour quelques tables utilisant MATE. Theres un fichier common.php qui contient l'en-tête HTML & donc c'est là que j'ai mis le code ci-dessous.Comment construire correctement un menu de navigation qui met en évidence la page actuelle
Le code ci-dessous met en évidence la page actuelle dans le menu. C'est moche et je suis sûr qu'il doit y avoir une meilleure façon de le faire.
Toute aide est appréciée, merci!
Heres mon code
<?php
$currentFile = Explode('/', $_SERVER["PHP_SELF"]);
$currentFile = $currentFile[count($currentFile) - 1];
if ($currentFile == "orders.php"){
echo '<li id="active"><a href="orders.php" id="current">Orders</a></li>';
}
else{
echo '<li><a href="orders.php">Orders</a></li>';
}
if ($currentFile == "customers.php"){
echo '<li id="active"><a href="customers.php" id="current">Customer List</a></li>';
}
else{
echo '<li><a href="customers.php">Customer List</a></li>';
}
if ($currentFile == "order_details.php"){
echo '<li id="active"><a href="order_details.php" id="current">Order Details</a></li>';
}
else{
echo '<li><a href="order_details.php">Order Details</a></li>';
}
?>
MISE À JOUR Pour les curieux, voici le code de travail!
<?php
$currentFile = Explode('/', $_SERVER["PHP_SELF"]);
$currentFile = $currentFile[count($currentFile) - 1];
// easier to manage in case you want more pages later
$pages = array(
array("file" => "orders.php", "title" => "Orders"),
array("file" => "order_details.php", "title" => "Order Details"),
array("file" => "customers.php", "title" => "Customer List")
);
$menuOutput = '<ul>';
foreach ($pages as $page) {
$activeAppend = ($page['file'] == $currentFile) ? ' id="active"' : "";
$currentAppend = ($page['file'] == $currentFile) ? ' id="current' : "";
$menuOutput .= '<li' . $activeAppend . '>'
. '<a href="' . $page['file'] . '"' . $currentAppend . '">' . $page['title'] .'</a>'
. '</li>';
}
$menuOutput .= '</ul>';
echo $menuOutput;
>
c'est ce que je cherchais, le tester maintenant. Pour une raison quelconque, je reçois une erreur de syntaxe pour ($ pages comme $ page) {'Erreur d'analyse: erreur de syntaxe, T_AS inattendu, s'attendre ';'' – shaiss
Essayez le code maintenant, il contient quelques erreurs mineures :) – emkee
Cool , ça a marché. Je devais ajouter dans la partie id = "current". Merci pour l'aide! – shaiss