/** * Allows pages to be made for multiple records. * * @param string $base_url * @param integer $num_items * @param integer $per_page * @param integer $start_item * @param boolen $add_prevnext_text * @return string */ function generate_pagination ( $base_url, $num_items, $per_page, $start_item, $add_prevnext_text = TRUE ) { global $lang; $cow = false; if ( !strstr ( $base_url, '?' ) ) { $amp = ''; $base_url = $base_url . '?'; } else { $amp = '&'; } $total_pages = ceil ( $num_items / $per_page ); if ( $total_pages == 1 ) { return ''; } $on_page = floor ( $start_item / $per_page ) + 1; $page_string = ''; if ( $total_pages > 10 ) { $init_page_max = ( $total_pages > 3 ) ? 3 : $total_pages; for ( $i = 1; $i < $init_page_max + 1; $i++ ) { $page_string .= ( $i == $on_page ) ? '' . $i . '' : '' . $i . ''; if ( $i < $init_page_max ) { $page_string .= ", "; } } if ( $total_pages > 3 ) { if ( $on_page > 1 && $on_page < $total_pages ) { $page_string .= ( $on_page > 5 ) ? ' ... ' : ', '; $init_page_min = ( $on_page > 4 ) ? $on_page : 5; $init_page_max = ( $on_page < $total_pages - 4 ) ? $on_page : $total_pages - 4; for ( $i = $init_page_min - 1; $i < $init_page_max + 2; $i++ ) { $page_string .= ( $i == $on_page ) ? '' . $i . '' : '' . $i . ''; if ( $i < $init_page_max + 1 ) { $page_string .= ', '; } } $page_string .= ( $on_page < $total_pages - 4 ) ? ' ... ' : ', '; } else { $page_string .= ' ... '; } for ( $i = $total_pages - 2; $i < $total_pages + 1; $i++ ) { $page_string .= ( $i == $on_page ) ? '' . $i . '' : '' . $i . ''; if ( $i < $total_pages ) { $page_string .= ", "; } } } } else { for ( $i = 1; $i < $total_pages + 1; $i++ ) { $page_string .= ( $i == $on_page ) ? '' . $i . '' : '' . $i . ''; if ( $i < $total_pages ) { $page_string .= ', '; } } } if ( $add_prevnext_text ) { if ( $on_page > 1 ) { $page_string = ' Previous  ' . $page_string; } if ( $on_page < $total_pages ) { $page_string .= '  Next'; } } $page_string = 'Go to page: ' . $page_string; return $page_string; }