Code: Select all
//------------------------------------------------------------------------------
// Create hyperlink
//------------------------------------------------------------------------------
function hyperlink( $link, $text, $alt='' ) {
if( $alt != '' ) $alt = "title="$alt"";
return "<a href="$link" $alt>$text</a>";
}
//------------------------------------------------------------------------------
// Duplicate a GET query
//------------------------------------------------------------------------------
function duplicate_link( $key_0, $val_0 ) {
$config_main_page = "index.php";
$link = $config_main_page . '?';
foreach( $_GET as $key => $value ) {
if( $key == $key_0 ) $link .= "$key_0=$val_0&";
else $link .= $key . '=' . $value . '&';
}
return substr( $link, 0, strlen( $link ) - 5 );
}
//------------------------------------------------------------------------------
// Create the Paginator
//------------------------------------------------------------------------------
function paginate( $page_key, $page, $rpp, $count ) {
if( $rpp == 0 || $count / $rpp <= 1 ) return "";
$pages = ceil( $count / $rpp );
$left_page = ( (ceil($page / 10) == ($page / 10) ) ?
floor( $page / 10 ) - 1 : floor( $page / 10 ) ) * 10 + 1;
$ret = "<p>";
if( $page != 1 ) $ret .= hyperlink( duplicate_link( $page_key, $page - 1 ),
"<<" );
else $ret .= "<<";
for( $i = 0; $i < 10; $i++ ) {
if( $i == 0 ) {
if( $left_page + $i != $page ) $ret .=
hyperlink( duplicate_link( $page_key, $left_page ), " $left_page" );
else $ret .= " <b>[$page]</b>";
}
else if( $i == 9 ) {
if( $left_page + $i != $page )
$ret .= hyperlink( duplicate_link( $page_key, $left_page + 9 ),
" " . ($left_page + 9) );
else $ret .= " <b>[$page]</b>";
}
else if( $left_page + $i == $pages ) {
if( $left_page + $i != $page )
$ret .= hyperlink( duplicate_link( $page_key, $left_page + $i ),
" " . ($left_page + $i) );
else $ret .= " <b>[$page]</b>";
break;
}
else {
if( $left_page + $i != $page ) $ret .=
hyperlink( duplicate_link( $page_key, $left_page + $i ), " ." );
else $ret .= " <b>[$page]</b>";
}
}
if( $page != $pages ) $ret .=
hyperlink( duplicate_link( $page_key, $page + 1 ), " >>" );
else $ret .= " >>";
$ret .= "</p>";
return $ret;
}Hope that helps. Check out the site where this script is used to paginate: Sourceworld