PHP: Lapozás
Sziasztok!
Írtam egy lapozó szkriptet:Az a gondom vele, hogy ha ez most így működik:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ......
És úgy szeretném "darabolni", ahogyan pl. itt a Weblaboron is van:
1 2 3 4 5 6 7 8 9 10 >>
<< 2 3 4 5 6 7 8 9 10 11 >>
<< 13 14 15 16 17 18 19 20 21 22
Egy ideje gondolkodom rajta, de csak nem jövök rá.
Van valakinek ötlete?
■ Írtam egy lapozó szkriptet:
<?php
$pages=10;
if(isset($_GET["page"])) {
$page=$_GET["page"];
if($page<0) {
$page=0;
}
if(!is_numeric($page)) {
$page=0;
}
}
else {
$page=0;
}
$news_page=@mysql_query("SELECT COUNT(*) AS QN FROM tabla");
$rows=@mysql_fetch_array($news_page);
$rows_num=$rows["QN"];
if($rows_num>$pages) {
$page_num=1;
for ($runner=0; $runner<$rows_num; $runner+=$pages) {
$next=$page_num-1;
if($runner<>$page) {
echo "<a href=\"?page=$next\">$page_num.</a> ";
}
else {
echo "$page_num. ";
}
$page_num++;
}
}
?>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ......
És úgy szeretném "darabolni", ahogyan pl. itt a Weblaboron is van:
1 2 3 4 5 6 7 8 9 10 >>
<< 2 3 4 5 6 7 8 9 10 11 >>
<< 13 14 15 16 17 18 19 20 21 22
Egy ideje gondolkodom rajta, de csak nem jövök rá.
Van valakinek ötlete?
környezet
Majdnem
Mit kellene tenni?
Sikerült
Dátum inkább?
A lapozó listán pedig a szűk környzete melett ha hosszú a lista akkor érdemes nagyobb egységeket átlépő lapozó linket is betenni.
Pl 67 oldal jönne ki es én a 23-ik lapon vagyok és 45-re szeretnék menni akkor tudjak nagyobb lépésekben haladni:
-10...20, 21, 22, (23), 24, 25, 26 ... +10
Vagy ha már dátum:
-1 hónap, -1hét...12,13,(14),15,16...+1hét, +1hónap
Jó az ötlet
1 2 3 ... 10 11 12 13 14 ... 33 34 35
Más esetekben én azt szeretem a legjobban, ha van link a legelső lapokra, az épp nézett lap környezetére, és a legutolsókra is.
<< Előző 1 2 3 ... 10 11 12 13 14 ... 33 34 35 Következő >>
Természetesen az épp kiválasztott oldalt valamiképp jelölni kell. A fenti példában némileg rövidítettem, szvsz az előző és következő 5-6 lapra érdemes linkelni.
Arra viszont még nem találtam szép és logikus megoldást, hogy egy adott link különböző sorrendek (pl. dátum szerint, név szerint, növekvően vagy csökkenően) mindig ugyanoda mutasson, vagyis felhasználóbarát legyen a lapozás. Körülményes, Ha van erre jó ötletetek, szívesen fogadnám!
Off
pager.php
Én ezt ütöttem össze egyszer. Nagyon régi kód (stílust nem vállalom), de működik. Plusz van benne pár finomság. Nem csak azt mondhatod, hogy a 6. oldal látszódjon, hanem hogy a 657. sor. És akkor minden úgy számolódik, hogy a megjelenő oldalon az első sor a 657. legyen. Plusz a linkek úgy számolódnak, hogy ha 7. oldalon vagy, és úgy van beállítva, hogy 5 link jelenik meg, akkor 5 6 [7] 8 9 linkek látszódnak, tehát igyekszik az aktuális oldal linkjét középre kavarni.
nem mulkodik