>[success] ### 第三难 ThinkPHP自定义分页模板
>[info] ### 默认分页模板
![](https://box.kancloud.cn/e62f97e2699a9355038e4fdf8645ad24_586x316.png)
>[info] ### 自定义分页模板
* 项目链接:http://pan.baidu.com/s/1miIIcmG 密码:wwnl
![](https://box.kancloud.cn/ff14988e37b002a6f3e2379b3c14b305_666x321.png)
~~~php
<?php
namespace tool;
use think\Paginator;
class TpPageHelper extends Paginator
{
//TODO : 中间按钮个数
protected $bnumber = 10;
//TODO : 首页
protected function getfirstButton($str = '')
{
if ($this->currentPage() <= 1) {
return $this->getDisabledTextWrapper($str);
}
$url = $this->url(1);
return $this->getPageLinkWrapper($url, $str);
}
//TODO : 上一页
protected function getPreviousButton($text = "«")
{
if ($this->currentPage() <= 1) {
return $this->getDisabledTextWrapper($text);
}
$url = $this->url(
$this->currentPage() - 1
);
return $this->getPageLinkWrapper($url, $text);
}
//TODO : 页码
protected function getLinks()
{
if ($this->total > $this->listRows) {
if ($this->lastPage < $this->bnumber) {
return $this->getUrlLinks($this->getUrlRange(1, $this->lastPage));
} else {
$min = 1;
if ($this->currentPage > $this->bnumber / 2) $min = $this->currentPage - floor($this->bnumber / 2);
if ($this->lastPage - $this->currentPage < $this->bnumber / 2) $min = $this->lastPage - $this->bnumber + 1;
return $this->getUrlLinks($this->getUrlRange($min, $min + $this->bnumber - 1));
}
}
}
//TODO : 下一页
protected function getNextButton($text = '»')
{
if (!$this->hasMore) {
return $this->getDisabledTextWrapper($text);
}
$url = $this->url($this->currentPage() + 1);
return $this->getPageLinkWrapper($url, $text);
}
//TODO : 末页
protected function getlastButton($text = '')
{
if (!$this->hasMore) {
return $this->getDisabledTextWrapper($text);
}
$url = $this->url($this->lastPage());
return $this->getPageLinkWrapper($url, $text);
}
//TODO : 渲染页
public function render()
{
//数据是否足够分页
if ($this->hasPages()) {
return sprintf(
'<ul class="btn-item fr">%s %s %s %s %s</ul>',
$this->getfirstButton('首页'),
$this->getPreviousButton('上一页'),
$this->getLinks(),
$this->getNextButton('下一页'),
$this->getlastButton('末页')
);
}
}
//TODO : 生成禁用按钮
protected function getDisabledTextWrapper($text)
{
return '<li class="disabled"><span>' . $text . '</span></li>';
}
//TODO : 生成普通按钮
protected function getPageLinkWrapper($url, $page)
{
if ($page == $this->currentPage()) {
return $this->getActivePageWrapper($page);
}
return $this->getAvailablePageWrapper($url, $page);
}
//TODO : 生成当前页按钮
protected function getActivePageWrapper($text)
{
return '<li class="active"><span>' . $text . '</span></li>';
}
//TODO : 可点击按钮
protected function getAvailablePageWrapper($url, $page)
{
return '<li><a href="' . htmlentities($url) . '">' . $page . '</a></li>';
}
//TODO : 批量生成页码按钮
protected function getUrlLinks(array $urls)
{
$html = '';
foreach ($urls as $page => $url) {
$html .= $this->getPageLinkWrapper($url, $page);
}
return $html;
}
}
~~~
* 将 TpPageHelper.php 放在extend\tool下
![](https://box.kancloud.cn/d2f9796713cadd91d6fc66d371d7c634_225x73.png)
* 修改默认模板
![](https://box.kancloud.cn/0e0f5f5427c7c5fedbf205d510b00f5d_850x305.png)
- 西天取经(九九八十一难)
- 第一难 WebUpload文件上传
- 第二难 UEditor文本编辑器
- 第三难 ThinkPHP自定义分页模板
- 第四难 VerificationCode验证码
- 第五难 递归 尾递归 迭代 回调
- 第六难 GRPC服务端和客户端
- 第七难 PHP小笔记
- 第八难 yum安装Apache PHP MySQL
- 第九难 高性能MySQL简介
- 第十难 DIV+CSS简介
- 十一难 留言板
- 十二难 正则表达式
- 十三难 PHPMailer邮件发送
- 十四难 日历
- 十五难 百度地图
- 十六难 加密
- 十七难 筛选url跳转
- 十八难 图片转ASCII码图
- 十九难 环境配置
- 二十难 开发工具LiteIDE
- 二一难 开发工具2
- 二二难 准备工作
- 二三难 第一个应用程序 Hello World
- 二四难 语法结构
- 二五难 命名规则
- 二六难 变量
- 二七难 常量
- 二八难 常量计数器 iota
- 二九难 判断语句if
- 三十难 择语句switch
- 三一难 循环语句 for
- 三二难 遍历 range
- 三三难 跳转语句goto, break, continue
- 三四难 make, len, cap, new, nil
- 三五难 数组 array
- 三六难 切片 slice
- 三七难 集合 map
- 三八难 通道 channel
- 三九难 函数 function
- 四十难 结构 struct
- 四一难 方法 method
- 四二难 接口 interface
- 四三难 指针
- 四四难 异常
- 四五难 模板应用
- 四六难 Go安装GRPC服务端和客户端
- 四七难 安装虚拟机软件(VirtualBox)
- 四八难 安装Centos7
- 四九难 --help
- 五十难 目录文件
- 五一难 系统磁盘
- 五二难 Shell
- 五三难 Nginx安装配置
- 五四难 PHP安装配置
- 五五难 MySQL安装配置
- 五六难 yum 安装 Apache PHP MySQL
- 五七难 安装gRPC
- 五八难 安装memcache
- 五九难 介绍
- 六十难 DIV + CSS
- 六一难 浏览器兼容问题
- 六二难 书写风格(Js中写Html)
- 六三难 NodeJs(Express框架pug模板引擎)
- 六四难 SQL优化工具SQLAdvisor
- 六五难 JpGraph图表
- 六六难 日期排序
- 六七难 大部分问题解决方法
- 六八难 小趣味
- 六九难 编程语言排行榜
- 七十难 PHP编辑器
- 七一难 Key
- 七二难 手动定位和自动定位当前文件位置
- 七三难 关闭代码提示
- 七四难 配置XDebug
- 七五难 配置FTP
- 七六难 配置SSH
- 七七难 Notepad++
- 七八难 XShell 和 Xftp
- 七九难 PHPExcel导入导出
- 八十难 编程科普
- 八一难 ThinkPHP5.1新特性: 容器
- 大雷音寺(领取经书)