Menu PHP "intelligente"

Ho implementato nel mio sito un scriptino che mi genera un mený intelligente, ovvero si "accorge" quando sono in una pagina e quindi cambia il colore del link corrispondente alla pagina stessa.

Il problema Ť che non mi "riconosce" le pagine con url del tipo index.php?p=contatti.

C'Ť una soluzione?

Vi sposto lo scriptino (preso da latoserver.it):

<?php
// Barra di navigazione intelligente
//† by Luca Balzerani

// Struttura dati: array con link e descrizioni
$links = array( "index.php" => "Home",
† † † † "news.php" => "News",
† † † † "index.php?p=contatti" => "Contatti",
† † † † "book.php?p=leggi" => "Book"
† † † † );

$pagina_corrente = basename($PHP_SELF);


// Visualizzazione barra di navigazione

echo "<div id=\"navcontainer\">\n";
echo "<ul id=\"navlist\">\n";
while (list($url,$desc)=each($links)) {
† if ($url==$pagina_corrente) {
† † echo "<li id=\"active\"><a href=\"$url\" id=\"current\">$desc</a></li>";
† } else {
† † echo "<li><a href=\"$url\">$desc</a></li> ";
† }
}
echo "</ul>\n";
echo "</div>\n";
?>

Potete vedere un esempio con annesso **errore** nelle pagine "Contatti" e "Book" a questo indirizzo:

http://buteleti.altervista.org

ciao

drudo

inviato 11 anni fa
drudo
X 0 X

prova a sostituire:

$pagina_corrente = basename($PHP_SELF);

con

$pagina_corrente = $_SERVER["REQUEST_URI"];

Ciao.

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

Grazie mille Gianni mi hai risolto un dilemma ;)

Se a qualcuno servisse ecco il piccolo codicello:

<?php
// Barra di navigazione intelligente
//† by Luca Balzerani

// Struttura dati: array con link e descrizioni
$links = array( "index.php" => "Home",
† † † † "news.php" => "News",
† † † † "index.php?p=contatti" => "Contatti",
† † † † "book.php?p=leggi" => "Book"
† † † † );

$pagina_corrente = $_SERVER['REQUEST_URI'];


// Visualizzazione barra di navigazione

echo "<div id=\"navcontainer\">\n";
echo "<ul id=\"navlist\">\n";
while (list($url,$desc)=each($links)) {
† if ("/".$url==$pagina_corrente) {
† † echo "<li id=\"active\"><a href=\"$url\" id=\"current\">$desc</a></li>";
† } else {
† † echo "<li><a href=\"$url\">$desc</a></li> ";
† }
}
echo "</ul>\n";
echo "</div>\n";
?>

ciao

drudo

risposto 11 anni fa
drudo
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda