Un saluto a tutti...
ho bisogno di un consulto con qualcuno più esperto di me (non ci vuole tanto
) in php...
Avevo bisogno di caratterizzare la voce di menu della pagina corrente, in modo da richiamare via include un solo menu e poter fare le modifiche in un solo file...
Cercando in vecchie discussioni qui sul forum ho trovato due esempi, ma le discussioni riguardavano altri dettagli o non erano portate a termine, per cui ho dovuto finire lo scriptino da me...
VVoVe:
Risultato... mi ritrovo con due versioni che fanno la stessa cosa... anche a modo mi sembra...
Mi dite qual è la migliore? Magari con due righe di spiegazione sul perché, in modo che possa imparare qualcosina in più...
Grazie in anticipo a chiunque mi concede un po' della sua attenzione e buon lavoro a tutti

PRIMA VERSIONE:
Codice PHP:
<?php
# pagine menu con relativi link
$pagine = array ('prima' => 'prima.php','seconda' => 'seconda.php','terza' => 'terza.php', 'quarta' => 'quarta.php');
echo'<ul id="nav">
';
#crea menu
foreach ($pagine as $text => $link){
#verifica se la pagina un cui siamo è quella del menu e associa $class="link_attivo" (selezionato) $class="link_neutro"; (non selezionato)
if (basename($_SERVER['PHP_SELF'])==$link) $class="link_attivo"; else $class="";
echo'<li class="'.$class.'">[url="'.$link.'"]'.$text.'[/url]
';
}
echo'
[/list]
';
?>
SECONDA VERSIONE:
Codice PHP:
<?php
// definisce l'array di pagine
$pagine = array ('prima' => 'prima.php','seconda' => 'seconda.php','terza' => 'terza.php','quarta' => 'quarta.php');
// inizia l'elenco
echo '<ul>';
// per ogni elemento dell'array di pagine
foreach ($pagine as $text => $link)
{
// inizia la voce di elenco
echo '<li';
// se sono nella pagina linkata
if (substr($_SERVER['SCRIPT_NAME'],strrpos($_SERVER['SCRIPT_NAME'],'/')+1) == $link)
{
// aggiunge la classe appropriata
echo ' class="link_attivo"';
}
// inserisce link e testo
echo '>[url="' . $link . '"]' . $text . '[/url]';
}
// chiude l'elenco
echo '[/list]';
?>
Per qualche princiapiante come me, che volesse utilizzare una delle due soluzioni...
oltre a salvare uno dei due codici precedenti come menu.php, poi basta includerlo nel proprio html, ad esempio così:
codice:
<html>
<head>
<style type="text/css" media="all">
.link_attivo{background:#FF0000;}
</style>
</head>
<body>
<? include("menu.php"); ?>
</body>
</html>