Ho testato lo script e qui da me funziona correttamente.
Eccotene la versione aggiornata, migliorata e commentata.
Codice PHP:
<?php
$pagine = array (
'Home' =>'http://www.sanguenellevene.net/index.php',
'Biografia' =>'#',
'Discografia' =>'http://www.sanguenellevene.net/discografia/barabba.php',
'Tour' =>'#',
'forum' =>'http://www.sanguenellevene.net/forum/index.php',
);
// di quante voci è composto il mio menu???
$num = count($pagine);
// inizializzo un contatore
$i = 1;
// inizializzo la variabile stringa $out per evitare
// NOTICE da parte dello script
$out = "";
echo"<ul>\n";
foreach ($pagine as $text => $link) {
/*
controllo che il numero del ciclo sia uguale a quello
che definisce l'ultimo ITEM di lista da inserire
uso l'operatore ternario in luogo del solito IF
*/
($i == $num) ? $style = " style=\"border-right: 1px solid #666666\"" : $style = "" ;
/*
controllo che l'indirizzo del link corrisponda a quello della pagina visualizzata
*/
(basename($_SERVER['PHP_SELF']) == basename($link)) ? $class = " class=\"active\"" : $class = "" ;
/*
se l'indirizzo del link corrisponda a quello della pagina visualizzata
modifico il link e metto il void di JS
*/
(basename($_SERVER['PHP_SELF']) == basename($link)) ? $link = "javascript:void(0)" : $link = $link ;
/*
ricorda che il trattino tra JAVA e SCRIPT qui sopra, è messo dal forum
e lo devi correggere (togliendolo) dal tuo script
*/
$out.="\t<li{$style}{$class}><a href=\"$link\">$text</a>\n";
$i++;
}
echo $out;
echo "[/list]\n";
?>