Yani PHP yapıyorum ama jenerik olarak mümkün olduğunca yazmaya çalışacağım bu yüzden bir mantık konudur.
Burada başlamak için bu Sayfalandırması komut nasıl çalışıyor:
- için (draw first three pages links)
- Eğer (draw ellipsis (...) if there are pages between #1's pages and #3's pages)
- için (draw current page and two pages on each side of it links)
- Eğer (draw elipsis (...) if there are pages between #3's pages and #5's pages)
- için (draw final three pages links)
Sorun sayfaların düşük miktarlarda (sayfa sayısı 10 oldu zaman farkettim) zaman orada bir üç nokta olmalı ama hiçbiri çizilmiş olmasıdır.
Kodu üstüne:
$page_count = 10; //in actual code this is set properly
$current_page = 1; //in actual code this is set properly
for ($i = 1;$i <= 3;$i++)
{
if ($page_count >= $i)
echo $i;
}
if ($page_count > 3 && $current_page >= 7)
echo "...";
for ($i = $current_page - 2;$i <= current_page + 2;$i++)
{
if ($i > 3 && $i < $page_count - 2)
echo $i;
}
if ($page_count > 13 && $current_page < $page_count - 5)
echo "...";
for ($i = $page_count - 2;$i <= $page_count;$i++)
{
if ($page_count > 3)
echo $i;
}
Yani iyi bir fikir böyle bir davayı dahil ifadeler, ancak ben denedim ve stumped eğer iki üç nokta birini değiştirmek için olmak olur rakam.
Ben biliyorum çünkü :) - Ayrıca ben "her yineleme için 2 onlar CURRENT_PAGE yeniden hesaplamak çünkü döngüler için olanlar etkisiz" so gibi ipuçlarını vermeyin lütfen okunabilirlik uğruna bu kodu yoğunlaşmış unutmayın
For those whom want to see a breakdown of how this logic currently works, here is example output ( modified ) with iterating $page_count and $current_page. http://rafb.net/p/TNa56h71.html