文档章节

php+smarty分页类

过儿1943
 过儿1943
发布于 2013/01/04 15:32
字数 627
阅读 79
收藏 2

<?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;
 }
}
?>

© 著作权归作者所有

过儿1943
粉丝 1
博文 5
码字总数 5016
作品 0
西城
私信 提问
加载中

评论(1)

gxcnvip
gxcnvip
如何调用?
开源微信公众号管理系统--微笑微信

微笑微信是一款免费的开源微信公众号管理系统,基于php+mysql,让微信开发者最便捷的进行二次开发。 基于 BSD 开源协议 允许企业或个人自由的使用,修改源代码,也可以将修改后的代码作为开源...

微笑微信
2013/09/12
47.8K
3
PHP+Smarty

我想咨询2个问题,急求~~~ 1、我用php写的程序,模版用smarty。全部生成html。有一个问题,我head和footer都是公共的,当时当我生成了静态页面之后,我想修改导航的一个题目。怎么能使全部的...

yuxl
2011/12/12
1K
3
php,vue,vue-ssr 做出来的页面有什么区别?

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由shirishiyue发表于云+社区专栏 目前我这边的web页面,都是采用php+smarty模板生成的,是一种比较早期的开发模式。好处是没...

腾讯云加社区
2018/11/15
0
0
服务端与客户端共用smarty模板技术

后端渲染的局限性 有些时候,我们总会做一些瀑布流的界面,如下: 在不断的下拉过程中,会动态向其中添加重复的DOM结构,而且,我们也希望同步刷新页面的时候,DOM是直接在服务端渲染好的,而...

侯禹
2016/02/18
189
1
thinkphp简洁、美观、靠谱的分页类

废话不多说先上图预览下;即本博客的分页; 这个分页类是在thinkphp框架内置的分页类的基础上修改而来; 原分页类的一些设计,在实际运用中感觉不是很方便; 1:只有一页内容时不显示分页; ...

白俊遥
2016/03/06
14
0

没有更多内容

加载失败,请刷新页面

加载更多

Element.getBoundingClientRect()

Element.getBoundingClientRect()方法返回元素的大小及其相对于视口的位置。 语法 rectObject = object.getBoundingClientRect(); 值 返回值是一个 DOMRect 对象,这个对象是由该元素的 getC...

JamesView
33分钟前
5
0
设计模式的七大原则

小小小施爷
39分钟前
5
0
Spring Cloud之API 网关Zuul

一、为什么需要网关? 安全性: 1.最主要的一点是网关可以将所有服务的API接口统一聚合,并统一对外暴露。外界系统调用API接口时,都是由网关对外暴露的API接口,外界系统不需要知道微服务系...

尹小狗家的小小喵
41分钟前
4
0
总结:为什么要限制最大连接数?

一个tcp连接需要:1,socket文件描述符;2,IP地址;3,端口;4,内存 原因: 建立连接需要消耗资源,详情查看: https://blog.csdn.net/qj4522/article/details/84892762 https://blog.csd...

浮躁的码农
51分钟前
8
0
我对算卦的认识

现在越来越认识到算卦其实就是帮自己尽快的做一个决定。 有一次看锵锵三人行,有一期一个嘉宾讲了他去算卦的事情。当时他有两个选择,一个是从商,一个是当演员。算卦的结果是当演员,他就放...

我是菜鸟我骄傲
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部