total_pages()); // Ending group of pages: $n7...$n8 $n7 = max(1,$page->total_pages()-$count_out+1); $n8 = $page->total_pages(); // Middle group of pages: $n4...$n5 $n4 = max($n2+1,$page->current_page()-$count_in); $n5 = min($n7-1,$page->current_page()+$count_in); $use_middle = ($n5 >= $n4); // Point $n3 between $n2 and $n4 $n3 = (int)(($n2+$n4)/2); $use_n3 = ($use_middle && (($n4-$n2)>1)); // Point $n6 between $n5 and $n7 $n6 = (int)(($n5+$n7)/2); $use_n6 = ($use_middle && (($n7-$n5)>1)); // Links to display as array(page => content) $links = array(); // Generate links data in accordance with calculated numbers for ($i = $n1; $i <= $n2; $i++) $links[$i] = $i; if ($use_n3) $links[$n3] = '…'; for ($i = $n4; $i <= $n5; $i++) $links[$i] = $i; if ($use_n6) $links[$n6] = '…'; for ($i = $n7; $i <= $n8; $i++) $links[$i] = $i; ?>