function birdensuna($sayi,$maximum) {
if ( $sayi >= 1 AND $sayi <= $maximum ) { return $sayi; }
else { return $maximum; }
}
function sayfa_baglantilari($ana_baglanti,$sayfa_degiskeni,$eleman_sayisi,$sayfa_basina,$aktif_sayfa,$ekmi) {
// Bu fonksiyon calismak icin birdensuna() fonksiyonunu gerektirir
$sayfa_sayisi = ceil($eleman_sayisi/$sayfa_basina);
if ( $aktif_sayfa < 1 OR $aktif_sayfa > $sayfa_sayisi ) { $aktif_sayfa = 1; }
$sayfalar_araligi = ceil($sayfa_sayisi/20); // sayisi kucultuldukce baglanti sayisi azalir
$sayfalanacak = array(1,$sayfa_sayisi,birdensuna(($aktif_sayfa-20),$sayfa_sayisi)
,birdensuna(($aktif_sayfa-15),$sayfa_sayisi),birdensuna(($aktif_sayfa-10),$sayfa_sayisi)
,birdensuna(($aktif_sayfa-5),$sayfa_sayisi),birdensuna(($aktif_sayfa-2),$sayfa_sayisi)
,birdensuna(($aktif_sayfa-1),$sayfa_sayisi),$aktif_sayfa
,birdensuna(($aktif_sayfa+1),$sayfa_sayisi),birdensuna(($aktif_sayfa+2),$sayfa_sayisi)
,birdensuna(($aktif_sayfa+5),$sayfa_sayisi),birdensuna(($aktif_sayfa+10),$sayfa_sayisi)
,birdensuna(($aktif_sayfa+15),$sayfa_sayisi),birdensuna(($aktif_sayfa+20),$sayfa_sayisi));
for ($i=$aktif_sayfa;$i>0;$i=$i-$sayfalar_araligi) { $sayfalanacak[] = $i; }
for ($i=$aktif_sayfa;$i<$sayfa_sayisi;$i=$i+$sayfalar_araligi) { $sayfalanacak[] = $i; }
$sayfalanacak = array_unique($sayfalanacak);
sort($sayfalanacak);
foreach ( $sayfalanacak as $sayfa_no ) {
if ( $sayfa_no == $aktif_sayfa ) { echo "[$sayfa_no] "; }
else {
if ( $ekmi == 0 ) { echo "<a href=\"$ana_baglanti?$sayfa_degiskeni=$sayfa_no\">$sayfa_no</a> "; }
else { echo "<a href=\"$ana_baglanti&$sayfa_degiskeni=$sayfa_no\">$sayfa_no</a> "; }
} } }Örnek olarak: sayfa_baglantilari("http://localhost/index.php","sayfa",2,1,2,0);şeklinde bir çağırma şöyle bir çıktı üretecektir. ( Sayfa bağlantılarıda verilmiş şekilde. )
1 [2]
ya da
sayfa_baglantilari("http://localhost/index.php","sayfa",500,10,1,0);şeklinde bir çağırma
[1] 2 3 4 6 7 10 11 13 16 19 21 22 25 28 31 34 37 40 43 46 49 50
şeklinde sayfa bağlantıları verilmiş halde bir çıktı üretecektir.