建站学 - 轻松建站从此开始!

建站学-个人建站指南,网页制作,网站设计,网站制作教程

当前位置: 建站学 > 网站开发 > JSP教程 >

php+smarty分页类

时间:2011-04-19 08:54来源: 作者: 点击:
<?php //分页代码 class ShowPage {  var   $PageSize;  var   $Total;  var   $ifram;  var   $functionname;  //取得总页数  function PageCount()  {   $TotalPage = ($this-&g

<?php //分页代码
class ShowPage
{
 var   $PageSize;
 var   $Total;
 var   $ifram;
 var   $functionname;
 //取得总页数
 function PageCount()
 {
  $TotalPage = ($this->Total%$this->PageSize == 0)?floor($this->Total/$this->PageSize):floor($this->Total/$this->PageSize)+1;
  return   $TotalPage;
 }

 //取得当前页
 function   PageNum()
 {
  //if   (isset($_GET['page']))
  $page = (isset($_GET['page'])!="")?$_GET['page']:$page = 1;
  return $page;
 }
 //查询语句定位指针
 function   OffSet()   {
  if   ($this->PageNum()>$this->PageCount())   {
   $this->PageNum = $this->PageCount();
   $pagemin = max(0,$this->Total - $this->PageSize - 1);
  }
  elseif ($this->PageNum() == 1){
   $pagemin = 0;
  }
  else   {
   $pagemin = min($this->Total - 1,$this->PageSize * ($this->PageNum() - 1));
  }
  return $pagemin.",".$this->PageSize;
 }
 //定位首页
 function   FristPage(){
  $href = $this->ifram==1?"javascript:".$this->functionname."('?page=1".$this->Url()."')":"?page=1".$this->Url()."";
  $Frist = ($this->PageNum() <= 1)?"<dt><a href=\"#\">首页</a></dt>":"<dt><a href=\"".$href."\" title=\"首页\">首页</a></dt>";
  return $Frist;
 }
 //定位上一页
 function   PrePage()   {
  $prepage=$this->PageNum() - 1;
  $href = $this->ifram==1?"javascript:".$this->functionname."('?page=".$prepage.$this->Url()."')":"?page=".$prepage.$this->Url()."";
  $Previous = ($this->PageNum() >= 2)?"<dt><a href=\"".$href."\" title=\"上一页\">上一页</a></dt>":"<dt><a href=\"#\">上一页</a></dt>";
  return   $Previous;
 }
 //定位下一页
 function   NextPage()   {
  $nextpage = $this->PageNum() + 1;
  $href = $this->ifram==1?"javascript:".$this->functionname."('?page=".$nextpage.$this->Url()."')":"?page=".$nextpage.$this->Url()."";
  $Next = ($this->PageNum() <= $this->PageCount()-1)?"<dt><a href=\"".$href."\" title=\"下一页\">下一页</a></dt>":"<dt><a href=\"#\">下一页</a></dt>";
  return   $Next;
 }
 //定位最后一页
 function   LastPage()   {
  $href = $this->ifram==1?"javascript:".$this->functionname."('?page=".$this->PageCount().$this->Url()."')":"?page=".$this->PageCount().$this->Url()."";
  $Last = ($this->PageNum() >= $this->PageCount())? " <dt><a href=\"#\">尾页</a></dt >":"<dt><a href=\"".$href."\" title=\"尾页\">尾页</a></dt>";
  return   $Last;
 }
 //下拉跳转页面
 function   JumpPage()   {
  $tomode=$this->ifram==1?$this->functionname."(this.options[this.selectedIndex].value)":"javascript:location=this.options[this.selectedIndex].value;";
  $Jump = "<dt style='border:0'>第 <select name=page onchange=\"".$tomode."\">";
  for($i=1;$i<=$this->PageCount();$i++) {
   if   ($i==$this->PageNum())
   $Jump.= "<option value=\"?page=".$i.$this->Url()."\" selected>$i</option>";
   else
   $Jump.="<option value=\"?page=".$i.$this->Url()."\">$i</option>";
  }
  $Jump.="</select> 页</dt>";
  return   $Jump;
 }
 //URL参数处理
 function  Url()   {
  $fullurl = $_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING'];
  $url = end(explode('?',$fullurl));
  $url = preg_match("/&page=[\s\S]*&/",$url)?preg_replace("/&page=[^&]*&/","&",$url):preg_replace("/[&]?page=[^&]*[&]?/","",$url);
  return strpos($fullurl,'?')?"&".$url:"";
 }

 function  SumOver(){
  $zhongshu =$this->PageCount()."页/".$this->Total."条";
  return $zhongshu;
 }

 //记录总数
 function  sum(){
  $zhongshu = "<dt>共".$this->PageCount()."页/".$this->Total."条信息&nbsp;</dt>";
  return $zhongshu;
 }

 //生成导航条
 function ShowLink(){
  $i=0;
  $href = $this->ifram==1?"javascript:".$this->functionname."('?page=".$i.$this->Url()."')":"?page=".$i.$this->Url()."";
  if($this->PageCount()<9 || ($this->PageCount()>=9 && $this->PageNum()<5)){
   $mm = $this->PageCount()+1;
   $mmax = $this->PageCount()>=9?10:$mm;
   for($i=1;$i<$mmax;$i++){
    $href = $this->ifram==1?"javascript:".$this->functionname."('?page=".$i.$this->Url()."')":"?page=".$i.$this->Url()."";
    $pagestr .= $i==$this->PageNum()?"<dt><a class=\"onnum\">".$i."</a></dt>":"<dt><a href=\"".$href."\">".$i."</a></dt>";
   }
  }else{
   $min = $this->PageNum()-4;
   $min_t = $this->PageCount()-8;
   $max = $this->PageNum()+5;
   $max_t = $this->PageCount()+1;
   $min = $max>$this->PageCount()?$min_t:$min;
   $max = $max>$this->PageCount()?$max_t:$max;
   for($i=$min;$i<$max;$i++){
    $href = $this->ifram==1?"javascript:".$this->functionname."('?page=".$i.$this->Url()."')":"?page=".$i.$this->Url()."";
    $pagestr .= $i==$this->PageNum()?"<dt><a href='#' class=\"onnum\">".$i."</a></dt>":"<dt><a href=\"".$href."\">".$i."</a></dt>";
   }
  }
  // if($this->Total > $this->PageSize){
  $pages = "<dt>".$this->sum().$this->FristPage().$this->PrePage().$pagestr.$this->NextPage().$this->LastPage().$this->JumpPage()."<dt>";
  // }
  return $pages;
 }
}
?>

(责任编辑:admin)
织梦二维码生成器
顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片