TShopping
標題:
PHP+SMARTY分頁類(3*3個圖文表格)
[打印本頁]
作者:
woff
時間:
2010-4-30 19:03
標題:
PHP+SMARTY分頁類(3*3個圖文表格)
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;
}
}
}
?>
複製代碼
模版代碼
歡迎光臨 TShopping (http://www.tshopping.com.tw/)
Powered by Discuz! X3.2