Corso PHP/ Lezione 8: Una barra di navigazione "intelligente"

In questa puntata mostreremo come costruire in modo semplice una barra di navigazione "intelligente" per il nostro sito in PHP

Una barra di navigazione è un elemento molto familiare per chi abitualmente naviga sulla Rete; si tratta di quella regione di una pagina web in cui sono raccolti i link alle principali sezioni del sito cui essa appartiene. In questa lezione vedremo come utilizzare PHP per costruirne una "intelligente", in grado cioè di evidenziare automaticamente la voce corrispondente alla pagina corrente.

La nostra barra di navigazione sarà generata da uno script PHP separato, che chiameremo barra.php3, e che verrà richiamato da tutte le pagine in cui vorremo visualizzare la barra.

Cominciamo con il costruire una struttura dati appropriata; nel nostro caso sarà sufficiente un array associativo (vedi la lezione n. 3), che chiameremo $links, in cui avremo tanti elementi quanti sono i link che vogliamo inserire nella barra di navigazione. Ogni elemento consisterà di una chiave e di un valore: la chiave sarà l'indirizzo della pagina web corrispondente, il valore una sua breve descrizione. Ecco un esempio di un siffatto array:
// Struttura dati: array con link e descrizioni
$links = array( "index.php3" => "Home page",
"pagina2.php3" => "Pagina 2",
"pagina3.php3" => "Pagina 3"
);


In questo modo abbiamo rappresentato, internamente al nostro script, la struttura della barra di navigazione. Veniamo adesso alla parte ``intelligente'': vogliamo, infatti, che quando la barra di navigazione viene visualizzata, venga evidenziata la voce corrispondente alla pagina in cui ci troviamo. Come fa a saperlo? Ci sono sostanzialmente due possibilità: possiamo essere noi a stabilire di volta in volta quale voce evidenziare oppure, come nel nostro caso, fare in modo che ciò avvenga in modo automatico.

Nel nostro esempio, quello che facciamo è confrontare il nome del file della pagina corrente con quelli contenuti nell'array $links: la pagina corrente è quella per cui il confronto ha esito positivo. Il percorso della script PHP corrente è contenuto nella variabile globale $PHP_SELF; poiché nel nostro caso ci interessa soltanto il nome del file piuttosto che l'intero percorso, utilizziamo la funzione basename per estrarlo, nel modo seguente:

// Nome del file dello script corrente
$pagina_corrente = basename($PHP_SELF);


A questo punto non ci resta altro da fare che scrivere il codice PHP necessario alla visualizzazione della barra di navigazione; si tratta, in realtà, di un compito molto semplice: dobbiamo scorrere l'array creato precedentemente, confrontando ogni indirizzo con quello della pagina corrente e, in base all'esito del confronto, rappresentare la voce in maniera opportuna.
Nel nostro caso, ad esempio, decidiamo di racchiudere ogni link della barra di navigazione tra parentesi quadre, con la sola eccezione di quello corrispondente alla pagina corrente, visualizzato in grassetto e senza collegamento ipertestuale. Vediamo il sorgente.