1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| function navigation($length,$interval,$index, $nb_show = 3){
// $length : nombre total de LIGNES
// $interval : offset (donc nombre d'affichage par page
// $index : numéro de la page courante
// $nb_show = (int) : Variable du nombre de pages à afficher autour de celle sélectionnée
// NOTE : La variable prend en compte la page courante, donc si $nb_show = 3, on aura : la page courante + 2 pages AVANT et 2 pages APRES
$index = (int) $index;
$nb_pages = (int) ceil($length/$interval);
$begin = max($index-$nb_show, 1);
$end = min($index+$nb_show, $nb_pages);
if ($end+1 == $nb_pages) {
$end = $nb_pages;
}
if ($begin+$nb_show == $nb_pages) {
$begin = 1;
}
for ($i = $begin; $i <= $end ; $i++){
$nav[$i] = array('id_page' => $i , 'selected' => ($i === $index));
}
return array( 'selection' => $nav, 'first' => ($begin <= 1) , 'last' => ($end >= $nb_pages) , 'max' => $nb_pages ,'total' => (int) $length );
} |
Partager