Thinkphp5 自定义分页类
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,1.在extend\目录下创建page目录,在page目录中创建Page.php文件,将以下代码放入文件中
千家信息网最后更新 2025年01月22日Thinkphp5 自定义分页类
1.在extend\目录下创建page目录,在page目录中创建Page.php文件,将以下代码放入文件中
namespace page;
use think\Paginator;
class Page extends Paginator
{
//首页protected function home() { if ($this->currentPage() > 1) { return "首页"; } else { return "首页
"; }}//上一页protected function prev() { if ($this->currentPage() > 1) { return "上一页"; } else { return "上一页
"; }}//下一页protected function next() { if ($this->hasMore) { return "下一页"; } else { return"下一页
"; }}//尾页protected function last() { if ($this->hasMore) { return "尾页"; } else { return "尾页
"; }}//统计信息protected function info(){ return "共" . $this->lastPage . "页" . $this->total . "条数据
";}/** * 页码按钮 * @return string */protected function getLinks(){ $block = [ 'first' => null, 'slider' => null, 'last' => null ]; $side = 3; $window = $side * 2; if ($this->lastPage < $window + 6) { $block['first'] = $this->getUrlRange(1, $this->lastPage); } elseif ($this->currentPage <= $window) { $block['first'] = $this->getUrlRange(1, $window + 2); $block['last'] = $this->getUrlRange($this->lastPage - 1, $this->lastPage); } elseif ($this->currentPage > ($this->lastPage - $window)) { $block['first'] = $this->getUrlRange(1, 2); $block['last'] = $this->getUrlRange($this->lastPage - ($window + 2), $this->lastPage); } else { $block['first'] = $this->getUrlRange(1, 2); $block['slider'] = $this->getUrlRange($this->currentPage - $side, $this->currentPage + $side); $block['last'] = $this->getUrlRange($this->lastPage - 1, $this->lastPage); } $html = ''; if (is_array($block['first'])) { $html .= $this->getUrlLinks($block['first']); } if (is_array($block['slider'])) { $html .= $this->getDots(); $html .= $this->getUrlLinks($block['slider']); } if (is_array($block['last'])) { $html .= $this->getDots(); $html .= $this->getUrlLinks($block['last']); } return $html;}/** * 渲染分页html * @return mixed */public function render(){ if ($this->hasPages()) { if ($this->simple) { return sprintf( '%s%s %s %s', $this->css(), $this->prev(), $this->getLinks(), $this->next() ); } else { return sprintf( '%s%s %s %s %s %s %s', $this->css(), $this->home(), $this->prev(), $this->getLinks(), $this->next(), $this->last(), $this->info() ); } }}/** * 生成一个可点击的按钮 * * @param string $url * @param int $page * @return string */protected function getAvailablePageWrapper($url, $page){ return '' . $page . '';}/** * 生成一个禁用的按钮 * * @param string $text * @return string */protected function getDisabledTextWrapper($text){ return '' . $text . '
';}/** * 生成一个激活的按钮 * * @param string $text * @return string */protected function getActivePageWrapper($text){ return '' . $text . '';}/** * 生成省略号按钮 * * @return string */protected function getDots(){ return $this->getDisabledTextWrapper('...');}/** * 批量生成页码按钮. * * @param array $urls * @return string */protected function getUrlLinks(array $urls){ $html = ''; foreach ($urls as $page => $url) { $html .= $this->getPageLinkWrapper($url, $page); } return $html;}/** * 生成普通页码按钮 * * @param string $url * @param int $page * @return string */protected function getPageLinkWrapper($url, $page){ if ($page == $this->currentPage()) { return $this->getActivePageWrapper($page); } return $this->getAvailablePageWrapper($url, $page);}/** * 分页样式 */protected function css(){ return ' ';}
}
2.修改配置文件即可
//分页配置
'paginate' => [
'type' => 'page\Page',//分页类
'var_page' => 'page',
'list_rows' => 15,
],
分页样式为:
注:1)可以在代码中修改CSS部分代码,能修改一些颜色之类的样式
2)如果开启了TP5的简洁分页,只会显示上一页、下一页两个按钮
原文地址:http://www.thinkphp.cn/topic/50858.html
按钮
生成
上一
首页
代码
文件
样式
目录
页码
配置
普通
简洁
两个
信息
原文
地址
数据
激活
省略号
部分
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
电信服务器连接异常
网络安全心得体会200学生
网络技术中心管理制度
查询存在的数据库
互联网产业科技创新大会
深信服修改服务器地址
一套软件开发价格
查看本地域名服务器的缓存
不同等级数据库配置
开源 流媒体 服务器
服务器配置和设备的管理
新游网络安全海报
网络安全空间毕设
软件开发后怎么与硬件对接
单片机软件开发项目经验
db数据库怎么加新东西
数据库与数据项
软件开发属于什么纳税范围
服务器ro
干货满满快来开启网络安全大作战
聊天软件开发的特点有哪些
东营高校党建软件开发系统
服务器怎么匹配到win7
软件开发可以报销吗
数据库应用课程设计报告
国外网络安全监控技术
it软件开发工作
数据库查询较慢如果排查问题
模拟器查询本地数据库
软件开发技术咨询报价