php / * ** file: class.pagenumber.php ** Class: Pagenumber ** Version: none ** created: 5/12/2004 ** Author: morgan woo ** email: morgan.woo@163.com ** update: huabing lv ** email: hb_lv@hotmail.com** ** Copyright (c) 2004 mr.woo. All rights reserved. * /
Class pacer {
// The generated page number (in fact, it is not available) VAR $ PAGENUMBER = ''; // Total number of entries required to classify var $ totalItems = 0; // Data connection related var $ conn; var $ sql; // Each page display Several entry var $ itemsperpage = 3; // Total number VAR $ TOTALPAGENUMBER = 0; // Current page number! Var $ currentpagenumber = 1;
// A page displays several page number VAR $ length = 10; // requires the URL Var $ URL = '';
Function Pager ($ CONN, $ SQL, $ CURRENTPAGENUMBER, $ ITEMSPAGE, $ Length, $ URL) {$ this-> currentpagenumber = $ currentpagenumber; $ this-> conn = $ conn; $ this-> sql = $ sql; $ This-> itemsperpage = $ this-> length = $ length; $ this-> url = $ URL; $ this-> URL. = (Stristr ($ this-> URL, '?')! = false) ? '&': '?'; // URL has "?" "Add" & "No"? "$ This-> gettotalpagenumber ();
} Function gettotalitems () {// for adoDB $ = $ this-> conn-> execute ($ this-> sql); $ this-> totalitems = $ r-> recordcount (); return $ this-> totalitems; } Function gettotalpagenumber () {
$ this-> TotalPagenumber = CEIL ($ this-> gettotalitems () / $ this-> itemsperpage); return $ this-> TotalPagenumber;
// SQL Limit Start, start value in Length Function getLimitStart ($ start = ($ this-> currentpagenumber-1) * $ this-> itemsperpage; return $ start;} // SQL Limit Start, Length LENGTH FUNCTION GETLIMITEMS () {Return $ this-> itemsperpage;} function getrsperpage () {$ modisql = $ this-> sql. "Limited". $ This-> getLimitStart (). ",". $ This-> getLimitItems (); // The use of Adodb's saying $ modirs = $ this-> conn-> execute ($ modisql); $ arr = $ modirs-> getArray (); returnid;}
// S. function. Chinese Page Function getPagenumber () {IF ($ this-> gettotalpagenumber ()> 1) {$ Pagenumber = 'Current Chapter'. $ This-> currentpagenumber. 'Page / total'. $ This-> TotalPagenumber . 'Page'; // Displays the first page and the previous page IF ($ this-> currentpagenumber> 1) {// first // first Page $ Pagenumber. = " First Page b>"; // Previous page // previous page $ panumber. = " Previous page b>";} // the start number is the first number of all pages which show on the current $ startnumber = intVal ($ this-> currentpagenumber / $ this-> length) * $ this-> length; // prev n page // 交 ($ this-> currentpagenumber> = $ this-> length) {$ Pagenumber. = "[ "($ StartNumber-1)." B>] ... ";} $ leftpagenumber = 0; for ($ I = $ startnumber; $ i <= $ this-> totalpagenumber; $ i ) { IF ($ I == 0) Continue; IF ($ I- $ StartNumber <$ this-> length) {IF ($ I == $ this-> currentpagenumber) {$ Pagenumber. = "[ $ i < / b>] ";} else {$ PAGENUMBER. =" [". $ i. "]"; }} Else {$ leftpagenumber = $ this->
TotalPagenumber- $ I 1; Break;}}
// Display the next page list if ($ leftpagenumber> = 1) {$ Pagenumber. = "... [ " ($ StartNumber $ this-> length). " b>]";} if ($ this-> currentpagenumber! = $ this-> totalpagenumber) {// Next page $ panumber. = " Next page b> "; // Last Page $ Pagenumber. ="
// Prev n Page // Atlide IF ($ this-> currentpagenumber> = $ this-> length) {$ Pagenumber. = "[ " ($ startNumber-1). " b>] ...";} $ leftpagenumber = 0; for ($ I = $ startnumber; $ i) <= $ ==) {IF ($ I == 0) Continue; IF ($ I- $ StartNumber <$ THIS-> Length) {IF ($ I == $ this-> currentpagenumber) { $ Pagenumber. = "[ $ I b>]";} else {$ Pagenumber. = "[ " $ I. "]";}} else {$ leftpagenumber = $ this-> TotalPagenumber- $ I 1; Break;}}