zoukankan      html  css  js  c++  java
  • 简单的PHP+SMARTY分页类

    类的代码

    Code
     <?php
     
    /*  Page.Class.php
      *  Page
      *  @link        http://www.sunboyu.cn
      *  @package     OA
      *  @version     V1.0
      *
      *  2008 08 28  sunboyu@gmail.com
      
    */
      
    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)/10)*10+1;
     
    for($i=0;$i<10;$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;
     }
     }
     }
     
    ?>

    模版代码

    Code
    <table>
        
    <tr>
        
    <td>
    共{{$page.count}}条数据 每页{{$page.pagesize}}条 共{{$page.pagecount}}页 当前第{{$page.page}}页
    </td>
    <td>
    {{if $page.first eq 1}}
    <href="{{$page.baseurl}}">首页</a>
    {{else}}
    首页
    {{/if}}
    {{if $page.pre eq 1}}
    <href="{{$page.baseurl}}&page={{$page.page-1}}">上一页</a>
    {{else}}
    上一页
    {{/if}}
    {{foreach from=$page.pagelist item=vols}}
        {{if $vols.link eq 1}}
    <href="{{$page.baseurl}}&page={{$vols.page}}">[{{$vols.page}}]</a>
    {{else}}
    [{{$vols.page}}]
    {{/if}}
    {{/foreach}}
    {{if $page.next eq 1}}
    <href="{{$page.baseurl}}&page={{$page.page-1}}">下一页</a>
    {{else}}
    下一页
    {{/if}}
    {{if $page.last eq 1}}
    <href="{{$page.baseurl}}&page={{$page.pagecount}}">尾页</a>
    {{else}}
    尾页
    {{/if}}
    </td>
    </tr>
    </table>

    调用范例

    Code
    <?php
    require_once('Include/Init.inc.php');
    require_once('Include/Class/Page.Class.php');
    $page = new Page( 999 , 12 , 10 , 6 , '?' );
    $page->__getpagelist();
    $smarty->assign("page",$page->result);
    $smarty->display("page.html");
    ?>
    aliyun活动 https://www.aliyun.com/acts/limit-buy?userCode=re2o7acl
  • 相关阅读:
    CF 552(div 3) E Two Teams 线段树,模拟链表
    单词接龙
    书的复制 动规,贪心
    C++文本处理&造轮子
    【NOIP2015】【Luogu2661】信息传递(有向图最小环)
    平时上机练习的注意点(NOIP2018)
    【SHOI2009】【BZOJ2028】会场预约(线段树染色)
    【AHOI2009】【BZOJ1798】Seq 维护序列seq(线段树模板,易错提醒)
    2018 “百度之星”程序设计大赛
    2018 “百度之星”程序设计大赛
  • 原文地址:https://www.cnblogs.com/wangbin/p/1507387.html
Copyright © 2011-2022 走看看