disign.it | Php, briciola di pane | a digital sign for a best design!
A digital sign for a best design
Programmazione 2.458 visualizzazioni

Php, briciola di pane

06/12/2011

Uno degli elementi classici della navigazione è costituito dalla briciola di pane, o breadcrumb, ovvero quella riga -generalmente posta sulla parte superiore del contenuto- che indica all'utente in quale sezione si trova e il percorso di annidamento.

Per realizzare questa tecnica è innazitutto necessario costruire un albero di cartelle con annidamenti che rispecchino quelli della navigazione e nomi delle stesse completi,  nonchè indicativi del contenuto, poiché saranno quelli che appariranno nella nostra briciola di pane.

Nel caso l'albero sia già costituito con nomi abbreviati, o non significativi, dovremo adeguare lo script con alcuni cicli di controllo (if... else) per far corrispondere al nome breve della cartella un testo che sia realmente significativo per l'utente finale.

Ecco come si costruisce lo script PHP (avevo già presentato qui una versione semplice in Javascript), sara sufficiente fare un include del file di questo script in ogni documento in cui vogliamo far apparire la briciola di pane!


error_reporting(E_ALL ^ E_NOTICE);
 /* setting */
 $separatore = " / "; // simbolo di divisione elementi path, può essere un'immagine
 $file_corrente = 1; // visualizzazione nome file corrente (1 = no; 0 = sì)
/* fine setting */
 $a_tag_apertura = "<a href = '";
 $a_chiusura = "'>";
 $a_tag_chiusura = "</a>";
 $lunghezza_separatore = strlen($separatore);

 $indirizzo = $_SERVER["SERVER_NAME"].$_SERVER["SCRIPT_NAME"];
 $indirizzo_separato = explode("/", $indirizzo);
 $numero_elementi_indirizzo = count($indirizzo_separato);
 $numero = ($numero_elementi_indirizzo - $file_corrente);
 $home = $a_tag_apertura . "http://" . $indirizzo_separato[0] . $a_chiusura . "home" .$a_tag_chiusura;

 $a_cart = '';
 $a_cart .= $a_tag_apertura . "/";
 for ($i = 1; $i<$numero; $i++) {
 $a_cart .= $indirizzo_separato[$i]. "/";
 if (($i == ($numero-1)) && ($file_corrente == 0)) {
 $l = strlen($a_cart);
 $a_cart = substr($a_cart,0,($l-1));
 }
 $a_cart_completo = $a_cart . $a_chiusura . $indirizzo_separato[$i] . $a_tag_chiusura . $separatore;
 $completo[$i-1] = $a_cart_completo;
 }

 $p_completo = $home . $separatore;
 for ($w = 0; $w<$numero; $w++) {
 $p_completo .= $completo[$w];
 }

 if($file_corrente == 0) {
 $lunghezza_p_comp = strlen($p_comp);
 $x = ($lunghezza_p_comp - $lunghezza_separatore);
 $p_completo = substr($p_comp,0,$x);
 }

 echo $p_completo;

← CSS3 e Internet Explorer APPELLO URGENTE DI AIIP: A RISCHIO IL FUTURO DI INTERNET A BANDA LARGA →

Invia una domanda o un commento sull'articolo

I campi obbligatori sono segnalati *

*

*



 

© 2009 - 2017 Impronte digitali di Luca Frassineti. Tutti i diritti riservati.