function pagination($page_current, $page_total, $pages_per_cycle = 11) { $page_cycle_total = (($page_current + ($pages_per_cycle / 2)) > $page_total) ? $page_total : ($page_current + ($pages_per_cycle / 2)); /* print "PAGECURRENT: " . $page_current . "
"; print "PAGETOTAL: " . $page_total . "
"; print "PAGEPERCYCLE: " . $pages_per_cycle . "
"; print "PAGECYCLETOTAL: " . $page_cycle_total . "
"; */ $pages_per_cycle_half = ($pages_per_cycle / 2); if (($page_current + $pages_per_cycle_half) > $page_total) { $page_cycle_range_low = ((($page_total - $pages_per_cycle) + 1) <= 0) ? 1 : (($page_total - $pages_per_cycle) + 1); $page_cycle = range($page_cycle_range_low, $page_cycle_total); } elseif ($page_current > $pages_per_cycle_half) { $page_total = (($page_current + $pages_per_cycle_half) > $page_total) ? $page_total : ($page_current + $pages_per_cycle_half); $page_cycle = range((floor($page_current - $pages_per_cycle_half) + 1), floor($page_current + $pages_per_cycle_half)); } else { if ($page_total > $pages_per_cycle) { $page_cycle = range(1, $pages_per_cycle); } else { $page_cycle = range(1, $page_total); } } return $page_cycle; } }