Class Paginator { function __construct () { } static function render ($page _type, array $args = Array ()) { $html = "; Switch ($page _type) { Case ' 1 ': $html = Page_1 ($channel _code, $page _num, $cur _page, $per _group, $base _url, $n, $v); Break Case ' 2 ': $html = Fpage ($row _num, $pagesize, $page, $url); Break Case ' 3 ': Break Default $html = page ($num, $perpage, $curpage, $mpurl, $hiddenFrom = '); } return $html; } Function 1: Paging navigation based on total number of pages, current page, and page grouping and URL function Page_1 ($channel _code, $page _num, $cur _page, $per _group, $base _url, $n, $v) { Paging function parameter list (number of pages, current page, number of pages per page, link address) $base _url. = Strpos ($base _url, '? ')? ' & ': '? '; If there is, add & $page _val = ""; if ($page _num < 1) { return $page _val; If less than 1, returns an empty } elseif ($page _num = = 1) { return $page _val = 1; If equals 1, returns 1 } Group $group _OK =! ($page _num-1)% ($per _group-1)); No remainder Calculate how many groups there are if ($group _ok) { $group _num = ($page _num-1)/($per _group-1); }else { $group _num = Ceil (($page _num-1)/($per _group-1); }//Determines whether the current page is the last of a group Number of groups $is _last_page =! ($cur _page-1)% ($per _group-1)); Calculate the number of groups currently in if ($is _last_page) { $cur _group = ($cur _page-1)/($per _group-1) + 1; } else { $cur _group = Ceil (($cur _page-1)/($per _group-1); } Calculates the starting page of the display, the key $from = ($cur _group-1) * ($per _group-1) + 1; $from = $cur _group <= 1? 1: $from; $to = $from + $per _group; $to = $to > $page _num? $page _num + 1: $to; for ($a = $from; $a < $to; $a + +) { if ($a! = $cur _page) { Not current page $page _val. = '' . $a. ''; } else { Current page $page _val. = ''. $a. ''; } } Previous Next home last page $next = $cur _page + 1; Current Page +1 $prev = $cur _page-1; Current Page-1 if ($cur _page! = $page _num) { The current page is not the last page $page _val. = '' . ' Next page '. ''; $page _val. = '' . ' >> '. ''; Last } if ($cur _page! = 1) { Not the first page, plus the previous content $page _val = '' . ' Previous page '. '' . $page _val; $page _val = '' . ' << '. '' . $page _val; Home } $page _val = '
'; return $page _val; } Function 2: Based on number of records, page Lieqing, current page, URL year component page function Fpage ($row _num, $pagesize, $page, $url) { $page, current page; Total number of records $row _num; $pagesize: Number of records per page; $url record page; If, if there is a count, take 1 plus $page _count = $row _num% $pagesize? intval ($row _num/$pagesize) + 1:intval ($row _num/$pagesize); if ($page _count = = 1) { $page _string = "First page | previous page | next page | last page"; } else { If more than one page if ($page = = 1) { The first page shows $page _string = "First page | previous page | Next Page | Last "; } if (($page > 1) and ($page < $page _count)) { $page _string = "First page | Prev | ($page + 1). "> Next Page | Last "; } if ($page = = $page _count) { $page _string = "First page | Prev | next | Last "; } } $page _str = $page _string. (",". $page. "/" . $page _count. "Page"); echo " " . $page _str. " "; } /** * Paging function * * @param int $num: Total Records * @param int $perpage: Records per page * @param int $curpage: Current page * @param string $mpurl: Path URL * @param unknown_type $hiddenFrom * @return String */ Function page ($num, $perpage, $curpage, $mpurl, $hiddenFrom = ') { $multipage = "; Recovery $mpurl. = Strpos ($mpurl, '? ')? ' & ': '? '; if ($num > $perpage) { $page = 10; $offset = 2; $pages = @ceil ($num/$perpage); Total pages if ($page > $pages) { $from = 1; $to = $pages; } else { If the total number of pages >10 $from = $curpage-$offset; Current Page-2 $to = $from + $page-1; Current Page +10-3 if ($from < 1) { $to = $curpage + 1-$from; $from = 1; if ($to-$from < $page) { $to = $page; } } elseif ($to > $pages) { $from = $pages-$page + 1; $to = $pages; } } if ($hiddenFrom) { $multipage = ($curpage-$offset > 1 && $pages > $page? ' Home ': '). ($curpage > 1? ' ‹‹ prev ': '); for ($i = $from; $i <= $to; $i + +) { $multipage. = $i = = $curpage? ''. $i. '' : ". $i."; } $multipage. = ($curpage < $pages? ' Next page ›› ': '). ($to < $pages? ' Last ': '); $multipage = $multipage? ". $multipage. ': '; } else { $multipage = ($curpage-$offset > 1 && $pages > $page? ' Home ': '). ($curpage > 1? ' ‹‹ prev ': '); for ($i = $from; $i <= $to; $i + +) { $multipage. = $i = = $curpage? ''. $i. '' : ". $i."; } $multipage. = ($curpage < $pages? ' Next page ›› ': '). ($to < $pages? ' Last ': '); $multipage = $multipage? ". $multipage. ': '; } } return $multipage; } Not currently function Page_get_start ($page, $PPP, $totalnum) { $totalpage = Ceil ($totalnum/$PPP); $page = max (1, Min ($totalpage, intval ($page))); Return ($page-1) * $PPP; } Not currently function Js_page ($hiddenFrom, $page) { if ($hiddenFrom) { Return ' onclick=javascript:$ ("#page"). Val ("'. $page. '"); $ ("#". $hiddenFrom. '). Submit (); '; } } } ?> |