thinkphp简洁、美观、靠谱的分页类
废话不多说先上图预览下;
即本博客的分页;
这个分页类是在thinkphp框架内置的分页类的基础上修改而来;
原分页类的一些设计,在实际运用中感觉不是很方便;
-
只有一页内容时不显示分页;
-
原分页类在当前页是第一页和最后一页的时候,不显示第一页和最后一页的按钮;
-
分页数比较少时不显示首页和末页按钮;
-
包裹分页内容的父级div没有class;
针对以上问题逐一进行了修改成如下; -
如果没有数据不显示分页,如果有一页及以上内容即显示分页;
-
默认就显示第一页和最后一页按钮,但是在当前页是第一页和最后一页的时候按钮点击无效果;
-
默认就显示首页和末页按钮;
-
为包裹分页内容的父级div添加名为page的class;
-
显示总共查出的内容条数;
示例环境:thinkphp3.2.3;
分页类目录:/Thinkphp/Library/Org/Bjy/Page.class.php
分页类代码如下:
<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2014 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: 麦当苗儿 <zuojiazi@vip.qq.com> <http://www.zjzit.cn>
// +----------------------------------------------------------------------
/*
* PHP分页类
* 修改者:白俊遥
* 日 期:2015.5.10
* 邮 箱:baijunyao@baijunyao.com
* 博 客:http://baijunyao.com
*/
namespace Org\Bjy;
class Page{
public $firstRow; // 起始行数
public $listRows; // 列表每页显示行数
public $parameter; // 分页跳转时要带的参数
public $totalRows; // 总行数
public $totalPages; // 分页总页面数
public $rollPage = 5;// 分页栏每页显示的页数
public $lastSuffix = true; // 最后一页是否显示总页数
private $p = 'p'; //分页参数名
private $url = ''; //当前链接URL
private $nowPage = 1;
// 分页显示定制
private $config = array(
'header' => '<span class="rows">共 %TOTAL_ROW% 条记录</span>',
'first' => '首页',
'prev' => '上一页',
'next' => '下一页',
'last' => '末页',
'theme' => '%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER%',
);
/**
* 架构函数
* @param array $totalRows 总的记录数
* @param array $listRows 每页显示记录数
* @param array $parameter 分页跳转的参数
*/
public function __construct($totalRows, $listRows=20, $parameter = array()) {
C('VAR_PAGE') && $this->p = C('VAR_PAGE'); //设置分页参数名称
/* 基础设置 */
$this->totalRows = $totalRows; //设置总记录数
$this->listRows = $listRows; //设置每页显示行数
$this->parameter = empty($parameter) ? $_GET : $parameter;
$this->nowPage = empty($_GET[$this->p]) ? 1 : intval($_GET[$this->p]);
$this->nowPage = $this->nowPage>0 ? $this->nowPage : 1;
$this->firstRow = $this->listRows * ($this->nowPage - 1);
}
/**
* 定制分页链接设置
* @param string $name 设置名称
* @param string $value 设置值
*/
public function