function paginate( $offset, $total_recs, $max_rec, $url) { global $TPL; $total_pages = ceil( $total_recs / $max_rec ); // build first page and prev link if( $offset > 1 ) { $link_pages .= "« First "; $link_pages .= "«"; } else { $link_pages .= "« First "; $link_pages .= "«"; } if( $offset - 5 < 1 ) { $link_page_start = 0; $link_page_end = ( 10 < $total_pages ) ? 10 : $total_pages ; } elseif( $offset + 5 > $total_pages ) { $link_page_start = $total_pages - 10; $link_page_end = $total_pages; } else { $link_page_start = $offset - 5; $link_page_end = $offset + 5; } // build page links html for( $i = $link_page_start; $i < $link_page_end; $i++ ) { if( ($i + 1) == $offset ) { $link_pages .= " " . ($i + 1) . " "; } else { $link_pages .= " " . ($i + 1) . " "; } } // build last page and next link if( $offset < $total_pages ) { $link_pages .= "»"; $link_pages .= " Last »"; } else { $link_pages .= "» "; $link_pages .= " Last » "; } $TPL->assign_var("PAGINATION", $link_pages); }