- class Page {
- private $total; //데이터 테이블의 총 레코드 수
- private $listRows; 각 페이지의 행 수
- private $limit;
- private $uri;
- private $pageNum; //페이지 수
- private $config=array('header'=>"records", "prev"= >"이전 페이지", "next"=>"다음 페이지", "first"=>"홈 페이지", "last"=>"마지막 페이지");
- 비공개 $ listNum=8 ;
- /*
- * $total
- * $listRows
- */
- 공개 함수 __construct($total, $listRows=10, $pa=""){
- $this ->total=$total;
- $this->listRows=$listRows;
- $this->uri=$this->getUri($pa);
- $this -> page=!empty($_GET["page"]) ? $_GET["page"] : 1;
- $this->pageNum=ceil($this->total/$this-> ;listRows) ;
- $this->limit=$this->setLimit();
- }
-
- private function setLimit(){
- return "Limit ".($this -> 페이지-1)*$this->listRows.", {$this->listRows}";
- }
-
- 비공개 함수 getUri($pa){
- $url =$_SERVER ["REQUEST_URI"].(strpos($_SERVER["REQUEST_URI"], '?')?'':"?").$pa;
- echo $url;
- $parse=parse_url ($url );
-
-
-
- if(isset($parse["query"])){
- parse_str($parse['query'],$params);
- unset( $params["page"]);
- $url=$parse['path'].'?'.http_build_query($params);
-
- }
-
- 반환 $url;
- }
-
- 비공개 함수 __get($args){
- if($args=="limit")
- return $this->limit;
- else
- return null;
- }
-
- 비공개 함수 start(){
- if($this->total==0)
- return 0;
- else
- return ($this ->page-1)*$this->listRows 1;
- }
-
- 비공개 함수 end(){
- return min($this->page*$this -> listRows,$this->total);
- }
-
- 비공개 함수 first(){
- if($this->page==1)
- $html. ='' ;
- else
- $html.=" {$this->config["first "]} ";
-
- return $html;
- }
-
- 비공개 함수 prev(){
- if($this-> page== 1)
- $html.='';
- else
- $html.=" {$this->config["prev"]} ";
-
- return $html;
- }
-
- 비공개 함수 pageList(){
- $linkPage="";
-
- $inum=floor($this->listNum/2);
-
- for($ i=$inum; $i>=1; $i--){
- $page=$this->page-$i;
-
- if($page<1)
- 계속 ;
-
- $linkPage.=" {$page}  ;";
-
- }
-
- $linkPage.=" {$this->page} ";
-
-
- for($i=1 ; $i< ;=$inum; $i ){
- $page=$this->page $i;
- if($page<=$this->pageNum)
- $linkPage.= " {$page} ";
- else
- break;
- }
-
- return $linkPage;
- }
-
- 비공개 함수 next(){
- if($this->page==$this->pageNum)
- $html .='';
- else
- $html.=" {$this->config["next"]} ";
-
- return $html;
- }
-
- 비공개 함수 last(){
- if($this->page==$this->pageNum)
- $html.='';
- else
- $ html.=" {$this->config["last" ]} ";
-
- return $html;
- }
-
- 비공개 함수 goPage(){
- return ' < input style="WIDTH: 25px" value="'.$this->page.'"> ';
- }
- 함수 fpage($display=array(0,1,2,3,4,5,6,7,8)){
- $html[0]=" 共유{ $this->total}{$this->config["header"]} ";
- $html[1]=" 每页显示< Strong>".($this->end()-$this->start() 1)."条,本页{$this->start()}- {$this->end()}条 ";
- $html[2]=" {$this->page}/{ $this->pageNum}页 ";
-
- $html[3]=$this->first();
- $html[4]=$ this->prev();
- $html[5]=$this->pageList();
- $html[6]=$this->next();
- $html[ 7]=$this->last();
- $html[8]=$this->goPage();
- $fpage='';
- foreach($display as $index) {
- $fpage.=$html[$index];
- }
-
- return $fpage;
-
- }
-
-
- }
-
제제대码
|