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;
}
}