/**
- ** Generic php paging class. (Like Google style)
- ** You only need to provide two parameters: the total number of records and the number of records displayed on each page. (Detailed instructions are provided ..)
- ** You do not need to specify a URL. the link is generated by the program. It is convenient for querying results by page.
- ** The form is submitted using the GET method, which ensures that URL parameters are not lost in operations such as query and deletion.
- **/
- Class Pager {
- // IE address bar
- Var $ url;
- // The total number of records
- Var $ countall;
- // Total number of pages
- Var $ page;
- // Pagination numeric link
- Var $ thestr;
- // Home page and previous page
- Var $ backstr;
- // Link to the last page and Next page
- Var $ nextstr;
- // Current page number
- Var $ pg;
- // Number of records displayed per page
- Var $ countlist;
- // Flip style
- Var $ style;
- // Constructor. This function is automatically executed when the class is instantiated.
- Function Pager ($ countall, $ countlist, $ style = "page "){
- // When the number of records is different from the number displayed on each page, add 1 after the remaining number of pages
- $ This-> countall = $ countall;
- $ This-> countlist = $ countlist;
- $ This-> style = $ style;
- If ($ this-> countall % $ this-> countlist! = 0 ){
- $ This-> page = sprintf ("% d", $ this-> countall/$ this-> countlist) + 1;
- } Else {
- $ This-> page = $ this-> countall/$ this-> countlist;
- }
$ This-> pg =$ _ GET ["pg"];
- // Ensure that pg starts from page 1st if not specified
- If (! Ereg ("^ [1-9] [0-9] * $", $ this-> pg) | empty ($ this-> pg )){
- $ This-> pg = 1;
- }
- // The page number exceeds the maximum value.
- If ($ this-> pg >$ this-> page ){
- $ This-> pg = $ this-> page;
- }
- // Obtain the current URL. For specific implementation, see the function entity at the bottom.
- $ This-> url = Pager: getUrl ();
- // Replace the page number with the correct format
- If (isset ($ _ GET ["pg"]) & $ _ GET ["pg"]! = $ This-> pg ){
- $ This-> url = str_replace ("? Pg = ". $ _ GET [" pg "],"? Pg = $ this-> pg ", $ this-> url );
- $ This-> url = str_replace ("& pg = ". $ _ GET ["pg"], "& pg = $ this-> pg", $ this-> url );
- }
- // Generate a page with numbers such as 12345.
- If ($ this-> page <= 10 ){
- For ($ I = 1; $ I <$ this-> page + 1; $ I ++ ){
- $ This-> thestr = $ this-> thestr. Pager: makepg ($ I, $ this-> pg );
- }
- } Else {
- If ($ this-> pg <= 5 ){
- For ($ I = 1; $ I <10; $ I ++ ){
- $ This-> thestr = $ this-> thestr. Pager: makepg ($ I, $ this-> pg );
- }
- } Else {
- If (6 + $ this-> pg <= $ this-> page ){
- For ($ I = $ this-> PG-4; $ I <$ this-> pg + 6; $ I ++ ){
- $ This-> thestr = $ this-> thestr. Pager: makepg ($ I, $ this-> pg );
- }
- } Else {
- For ($ I = $ this-> PG-4; $ I <$ this-> page + 1; $ I ++ ){
- $ This-> thestr = $ this-> thestr. Pager: makepg ($ I, $ this-> pg );
- }
}
- }
- }
- // Generate text links such as the top and bottom pages
- $ This-> backstr = Pager: gotoback ($ this-> pg );
- $ This-> nextstr = Pager: gotonext ($ this-> pg, $ this-> page );
- // Echo ("total ". $ this-> countall. "entries, per page ". $ this-> countlist. "entries, total ". $ this-> page. "page ". $ this-> backstr. $ this-> thestr. $ this-> nextstr );
- }
- // Auxiliary function for generating digital paging
- Function makepg ($ I, $ pg ){
- If ($ I = $ pg ){
- Return "style." '> ". $ I ."";
- } Else {
- Return "url, 5, $ I)." class = '". $ this-> style."'>". $ I ."";
- }
- }
- // Function for generating information such as the previous page
- Function gotoback ($ pg ){
- If ($ PG-1> 0 ){
- Return $ this-> gotoback = "url, 3, 0 ). "class = '". $ this-> style. "'> homepage url, 2, 0 ). "class = '". $ this-> style. "'> Previous Page ";
- } Else {
- Return $ this-> gotoback = "style." '> homepage previous page ";
- }
- }
- // Function for generating information such as the next page
- Function gotonext ($ pg, $ page ){
- If ($ pg <$ page ){
- Return "url, 1, 0 ). "class = '". $ this-> style. "'> Next Page url, 4, 0 ). "class = '". $ this-> style. "'> last page ";
- } Else {
- Return "style." '> last page of the next page ";
- }
- } Bbs.it-home.org
- // Process the $ pg method in the url, which is used to automatically generate pg = x
- Function replacepg ($ url, $ flag, $ I ){
- If ($ flag = 1 ){
- $ Temp_pg = $ this-> pg;
- Return str_replace ("pg =". $ temp_pg, "pg =". ($ this-> pg + 1), $ url );
- } Else if ($ flag = 2 ){
- $ Temp_pg = $ this-> pg;
- Return str_replace ("pg =". $ temp_pg, "pg =". ($ this-> PG-1), $ url );
- } Else if ($ flag = 3 ){
- $ Temp_pg = $ this-> pg;
- Return str_replace ("pg =". $ temp_pg, "pg = 1", $ url );
- } Else if ($ flag = 4 ){
- $ Temp_pg = $ this-> pg;
- Return str_replace ("pg =". $ temp_pg, "pg =". $ this-> page, $ url );
- } Else if ($ flag = 5 ){
- $ Temp_pg = $ this-> pg;
- Return str_replace ("pg =". $ temp_pg, "pg =". $ I, $ url );
- } Else {
- Return $ url;
- }
- }
- // Obtain the current URL
- Function getUrl (){
- $ Url = "http: //". $ _ SERVER ["HTTP_HOST"];
- If (isset ($ _ SERVER ["REQUEST_URI"]) {
- $ Url. = $ _ SERVER ["REQUEST_URI"];
- } Else {
- $ Url. = $ _ SERVER ["PHP_SELF"];
- If (! Empty ($ _ SERVER ["QUERY_STRING"]) {
- $ Url. = "? ". $ _ SERVER [" QUERY_STRING "];
- }
- }
- // Add pg = x to the current URL
- If (! Ereg ("(pg = | PG = | pG = | Pg =)", $ url )){
- If (! Strpos ($ url ,"? ")){
- $ Url = $ url ."? Pg = 1 ";
- } Else {
- $ Url = $ url. "& pg = 1 ";
- }
- }
- Return $ url;
- }
- }
- ?>
|