Creare un indice stile Google

Avete presente gli indici delle pagine in basso che si visualizzano quando scartabelliamo delle pagine che stiamo ricercando? Beh,ultimamente mi è capitato di dover implementare qualcosa di simile sul mio sito per facilitare la navigazione e poichè non facciamo le cose meccanicamente ma usiamo la zucca (noi programmatori intendo),dovevo creare uno script che mi creasse in automatico tale indice di navigazione. Ecco i passi per crearlo:

  • creare le nostre pagine con il seguente modello: nomepageina+numero_progressivo. Es: page1,page2,page3,ecc.
  • creare la seguente funzione:


function showPagesIndex($page,$num_pages) {
echo "<br><p align=\"center\">";
// pagina corrente
$active = str_replace(".php","",(str_replace($page, "",basename($_SERVER['PHP_SELF']))));
$i = $active - 3;
$f = $active + 4;
$c = $a = 0; //init

for($c=$i; $c<=$f && $c<=$num_pages; $c++) {
if($c > 0){
$a++;
$var = $c==$active ? "<strong>$c</strong> " : "<a href=\"$page$c.php\">$c</a> ";
if($a == 1 && $c != 1) $var="<a href=\"$page".($c-1).".php\">&lt;<</a> ".$var;
echo $var;
if($c!=$f && $c<$num_pages)
echo "- ";
}
}

$c--; // invalida l'ultimo incremento del ciclo
if($c < $num_pages){
$c++; // la pagina successiva all'ultima
echo " <a href=\"$page$c.php\">&gt;></a></p>";
}
}

  • la funzione precedente prende come parametro il nome modello della nostra pagina e il numero totale di pagine.
  • Siccome non vogliamo dover far modifiche in ogni pagina man mano che le cose evolvono inserendo di volta in volta il numero delle pagine totali,creaimo una funzione che ritorni il numero di pagine totali per la sezione di nostro interesse. Quindi ammettendo che stiamo parlano di PostgreSQL e che abbiamo creato dieci pagine del tipo pgsql1.php,pgsql2.php,ecc facciamo:
    function getNumPagesSQL() {
    return 10;
    }
    Ed infine ecco come la usiamo nelle nostre pagine,basterà solo ricopiare questa stringa e quando dovremo fare modifiche,modificare per tutte le pagine solo le funzioni:

    showPagesIndex("pgsql",getNumPagesSQL())

La funzione creata creerà indici del tipo "<<>>" dove i segni di maggiore e minore rimandano allaa pagina immediatamente successiva e precedente. Una demo è visionabile sul mio sito qui in fondo alla pagina. Scaricate le funzioni.

0 comments:

Byte Strike Blog - Designed by Posicionamiento Web | Bloggerized by GosuBlogger