<?php
// ------------------------------------------------------------------------- //
// Navigation rapide //
// ------------------------------------------------------------------------- //
// Auteur: mathieu delestre <lordb@caramail.com> //
// Web: http://ldb-globe.fr.st //
// ------------------------------------------------------------------------- //
/*
Ce script a pour but la génération d'un menu de navigation page à page en
indiquant simplement l'url de base pour la navigation, le nom de la variable de
travail (qui servira dans le script pour identifier le numéro de page) le total
d'entrées existantes et le nombre d'entrées à afficher par page.
D'autres paramètres sont optionnels comme par exemple le fait d'avoir un
next/back ou encore un last/first.
*/
function create_navigation($url, $page=0, $nb_entry, $entry_limit=10,
$nom_param="page", $next_back=1, $first_last=0,
$short_nav=999)
{
//nb_entry = nombre d'elements au total
//entry limit = nombre d'elements par page
//nom_param = nom du paramètre de navigation dont on veux disposer
//next_back = affichage de deux bouton next et back en debut et fin de nav
//first_last = idem next_back mais pour aller directement aux premiere et
// derniere page
//short_nav = navigation raccourcis (on voit les N précédent et N suivant
// autour de sa page
//par default 999 permet de tout afficher (sauf vraiment très gd nombre de
//page ^^)
if(ereg("\?",$url))
$concat = "&";
else
$concat = "?";
$return = "";
if($first_last and $page>0)
$return = "<a href=\"$url".$concat."$nom_param=0\"><<</a> ";
if($next_back and $page>0)
$return .= "<a href=\"$url".$concat."$nom_param=".($page-1)."\"><</a> ";
if(intval($nb_entry/$entry_limit)==($nb_entry/$entry_limit))
$nb_page = intval($nb_entry/$entry_limit)-1;
else
$nb_page = intval($nb_entry/$entry_limit);
$start = max($page-$short_nav,0);
$end = min($page+$short_nav,$nb_page);
if($start>0)
$return .= "... ";
for($i=$start;$i<=$end;$i++)
{
if($i==$page)
$return .= "<b>".($i+1)."</b> ";
else
$return .= "<a href=\"$url".$concat."$nom_param=$i\">".($i+1)."</a> ";
}
if($end<$nb_page)
$return .= "... ";
if($next_back and $page<$nb_page)
$return .= "<a href=\"$url".$concat."$nom_param=".($page+1)."\">></a> ";
if($first_last and $page<$nb_page)
$return .= "<a href=\"$url".$concat."$nom_param=$nb_page\">>></a> ";
return $return;
}
?>