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>