/** * Pagination, public method * @param int $page Current page * @param int $size Data Bar number * Total records of @param int $count * @return Mixed page number Array (' current page ', prev ', ' Next ', ' home ', ' last ', ' page number ') (' current ', ' prev ', ' Next ', ' first ', ' previous ', ' Pages ' =>array (0= >array (' name ' =>1, ' page ' => ' 1 ')) */ Public Function Pager ($page, $size, $count) { Omit page number marks $name _prev_more = ' ... '; $name _next_more = ' ... '; Show number of page numbers $pages _length = 9; Calculate the total number of pages if ($count) { $num = Ceil ($count/$size); } if ($num && $page) { Current page $result [' current ']= $page; Previous page if ($page-1) { $result [' prev '] = $page-1; }else{ $result [' prev '] = 1; } Next page if ($num = = $page) { $result [' next '] = $num; }else{ $result [' next '] = $page + 1; } $pages = Array (); Calculate the length of an omitted page number if ($num >= $pages _length) { $length = Intval ($pages _length/2); }else{ $length = Intval ($num/2); } //page number for ($i =1 $i < = $num; $i + +) { if ($page = = $i) { $pages [$i] [' active '] = ' Active '; } if ($i >= $page-$length && $i <= $page + $length) { $ pages[$i] [' page '] = $i; $pages [$i] [ Name '] = $i; } } //Start omitting long page numbers if ($page- 1 > $length) { $prev _more[' page '] = $page-$ Length-1; $prev _more[' name '] = $name _prev_more ; array_unshift ($pages, $prev _more); } //End omitted long page number if ($num-$ Page > $length) { $next _more[' page '] = $ Page + $length + 1; $next _more[' name '] = $name _next_more ; array_push ($pages, $next _more); } $result [' pages '] = $pages; Home, last $result [' a '] = 1; $result [' last '] = $num; Print_r ($result); TODO: View Data structures return $result; } Return "; } Return data structure Pager (1,10,11) Array ( [current] => 1 [prev] => 1 [NEX T] => 2 [pages] => Array ( [1] => Array ( [Active] => active [Page] => 1 [name] => 1 ) [2] => Array ( [Page] => 2 [Name] => 2 ) ) [A] => 1 [Last] => 2 ) Pager (1,1,11); Array ( [current] => 1 [prev] => 1 [NEX T] => 2 [pages] => Array ( [1] => Array ( [Active] => active [Page] => 1 [name] => 1 ) [2] => Array ( [Page] => 2 [Name] = > 2 ) [3] => Array ( [Page] => 3 [Name] = > 3 ) [4] => Array ( [Page] => 4 [Name] = > 4 ) [5] => Array ( [Page] => 5 [Name] = > 5 ) [6] => Array ( [Page] => 6 [Name] => ... ) ) [A] => 1 [Last] => 11 ) |