<?php
// ------------------------------------------------------------------------- //
// Affichage des numéros de pages universel //
// ------------------------------------------------------------------------- //
// Auteur: Fred <webmaster@t4c-fr.net> //
// Web: http://www.t4c-fr.net //
// ------------------------------------------------------------------------- //
function aff_num_pages($cur_page,$nbelemparpage,$nbelemtotal,$nbnumpage=10)
{
global $HTTP_HOST,$REQUEST_URI;
$nbpages=floor($nbelemtotal/$nbelemparpage);
$reste=$nbelemtotal%$nbelemparpage;
if ($reste>0) $nbpages++;
if ($nbpages>1)
{
$param=ereg_replace("pg=[0-9]+[&]?",'',$REQUEST_URI);
// s'il y a des parametres
if (ereg("\\?",$param))
{
// si le dernier char est un ? ou un & on ne met rien sinon on met
// un & (séparateur de parametres)
if (ereg("\\?$",$param) || ereg("&$",$param))
$prefix='';
else
$prefix='&';
}
// si il n'y a rien (premier parametre) on met un ?
else
$prefix='?';
// indice de départ pour l'affichage des n° de pages
$i_start=(floor(($cur_page-1)/$nbnumpage)*$nbnumpage)+1;
// indice de fin d'affichage des n° de pages
$i_stop=$i_start+$nbnumpage-1;
// si l'indice de fin est supérieur aux nombre de pages on remplace
// celui-ci
if ($i_stop>$nbpages)
$i_stop=$nbpages;
else
$sup_flag=1;
// si l'indice de départ est supérieur à 1 on affiche un <
$inf_val=$i_start-1;
if ($i_start>1)
echo "<a href='http://".$HTTP_HOST.$param.$prefix."pg=$inf_val'><</a> ";
for ($j=$i_start;$j<=$i_stop;$j++)
{
if ($j==$cur_page)
echo "$j ";
else
echo "<a href='http://".$HTTP_HOST.$param.$prefix."pg=$j'>$j</a>";
}
// si il y a d'autres pages après
if ($sup_flag)
echo "<a href='http://".$HTTP_HOST.$param.$prefix."pg=$j'>></a><br>";
else
echo "<br>";
}
// pour finir on retourne l'indice de départ pour la requete MySQL
$ind_start=($cur_page-1)*$nbelemparpage;
return $ind_start;
}
?>