|
sm.page.php分頁類- <?php
- class Page {
- public $count; #結果總數
- public $page; #當前頁
- public $pagesize; #每頁結果數
- public $pagecount; #翻頁數
- public $baseurl; #url
- public $result; #結果數組集
- public $pagelist; #每翻頁數
- #構造函數,初始化變量
- function __construct( $count , $page , $pagesize , $pagelist , $baseurl = false ) {
- $this->count = $count;
- $this->page = $page;
- $this->pagesize = $pagesize;
- $this->baseurl = isset($baseurl) ? $baseurl : $this->__geturl();
- $this->pagelist = $pagelist;
- }
- #獲得當前url
- function __geturl() {
- return ereg_replace("(^|&)page={$page}","",$_SERVER['QUERY_STRING']);
- }
- #獲得分頁列表
- function __getpagelist() {
- $this->result['count'] = $this->count;
- $this->result['page'] = $this->page;
- $this->result['pagesize'] = $this->pagesize;
- $this->result['pagecount'] = ceil($this->count/$this->pagesize);
- //只有一頁以下
- if($this->result['pagecount']<=1) {
- $this->result['pagelist'] = 0;
- } else {
- //一頁以上
- #前一頁,第一頁的算法
- $this->result['first'] = ($this->page == 1) ? 0 : 1;
- $this->result['pre'] = ($this->page == 1) ? 0 : 1;
- #後一頁,最後一頁的算法
- $this->result['next'] = ($this->page == $this->pagecount ) ? 0 : 1;
- $this->result['last'] = ($this->page == $this->pagecount ) ? 0 : 1;
- #起始
- $pagearray = array();
- $start = floor(($this->page-1)/$this->pagesize)*10+1;
- for($i=0;$i<$this->pagesize;$i++) {
- if( ($start+$i) <= $this->result['pagecount']) {
- $pagearray[$i]['page'] = $start+$i;
- }
- if( ($start+$i) != $this->page ) {
- $pagearray[$i]['link'] = 1;
- }
- }
- #分頁導航列表
- $this->result['pagelist'] = $pagearray;
- $this->result['baseurl'] = $this->baseurl;
- }
- }
- }
- ?>
複製代碼 模版代碼
|
|