thinkphp分页效果怎样(thinkphp5+layui实现的分页样式示例)
类别:编程学习 浏览量:2003
时间:2021-10-14 00:54:09 thinkphp分页效果怎样
thinkphp5+layui实现的分页样式示例本文实例讲述了thinkphp5+layui实现的分页样式。分享给大家供大家参考,具体如下:
tp5之layui分页样式
1.分页类
路径:\thinkphp\library\think\paginator\driver
Layui.php
|
<?php namespace think\paginator\driver; use think\Paginator; class Layui extends Paginator { /** * 上一页按钮 * @param string $text * @return string */ protected function getPreviousButton( $text = "上一页" ) { if ( $this ->currentPage() <= 1) { return $this ->getDisabledTextWrapper( $text ); } $url = $this ->url( $this ->currentPage() - 1 ); return $this ->getPageLinkWrapper( $url , $text ); } /** * 下一页按钮 * @param string $text * @return string */ protected function getNextButton( $text = '下一页' ) { if (! $this ->hasMore) { return $this ->getDisabledTextWrapper( $text ); } $url = $this ->url( $this ->currentPage() + 1); return $this ->getPageLinkWrapper( $url , $text ); } /** * 页码按钮 * @return string */ protected function getLinks() { if ( $this ->simple) return '' ; $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( '<ul class="pager">%s %s</ul>' , $this ->getPreviousButton(), $this ->getNextButton() ); } else { return sprintf( '%s %s %s' , $this ->getPreviousButton(), $this ->getLinks(), $this ->getNextButton() ); } } } /** * 生成一个可点击的按钮 * * @param string $url * @param int $page * @return string */ protected function getAvailablePageWrapper( $url , $page ) { return '<a href="' . htmlentities( $url ) . '" rel="external nofollow" >' . $page . '</a>' ; } /** * 生成一个禁用的按钮 * * @param string $text * @return string */ protected function getDisabledTextWrapper( $text ) { return '<a class="layui-laypage-prev" >' . $text . '</a>' ; } /** * 生成一个激活的按钮 * * @param string $text * @return string */ protected function getActivePageWrapper( $text ) { return '<span class="layui-laypage-curr"> <em class="layui-laypage-em"></em><em>' . $text . '</em></span>' ; } /** * 生成省略号按钮 * * @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 ); } } |
2.配置文件
paginate.php
|
<?php /** * @auther: xxf * Date: 2019/9/2 * Time: 10:24 */ //分页配置 return [ 'type' => 'Layui' , 'var_page' => 'page' , ]; |
3.模型查询
|
public function getUserShowList( $size = 20, $where = null) { $res = $this ->field( 'id,title,list_order,is_top,create_time,create_time time' ) ->where( $where ) ->order([ 'is_top' => 'desc' , 'list_order' => 'desc' , 'id' => 'desc' ]) ->paginate( $size ); return $res ; } |
4.模板渲染
|
< li class = "layui-box layui-laypage layui-laypage-molv" >{$list|raw}</ li > |
效果
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
原文链接:https://blog.csdn.net/flysnownet/article/details/100247490
您可能感兴趣
- easyui combogrid分页
- dedecms分页效果(dedecms重新定义cn_substr函数截取字数更准确)
- sqlserver分页查询sql语句(sql server实现分页的方法实例分析)
- laravel前后端分离实现排序(laravel自定义分页的实现案例offset和limit)
- mysql的分页原理(mysql分页的limit参数简单示例)
- sqlserver创建带参数的存储过程(SQLServer存储过程实现单条件分页)
- dedecsm模板中首页如何实现分页的三种方法比较分析(dedecsm模板中首页如何实现分页的三种方法比较分析)
- tp5框架源码分析(tp5框架无刷新分页实现方法分析)
- dedecms文章顺序(dedecms 分页标题提取方法)
- sql语句实现分页(SQL 窗口函数实现高效分页查询的案例分析)
- dedecms分页修改(Dedecms图片加上Alt和Title等属性的修改方法)
- python yield 使用浅析(yii框架使用分页的方法分析)
- mysql的limit的分页使用(获取 MySQL innodb B+tree 的高度的方法)
- redis新增数据分页(Scrapy-Redis结合POST请求获取数据的方法示例)
- yii框架使用教程(Yii框架分页技术实例分析)
- 织梦列表页分页怎么用(织梦首页和列表页怎么调用自定义字段)
- 太鸡贼了,这老小区轻松搞定了停车问题(这老小区轻松搞定了停车问题)
- 节日我在岗|警景相融 平安相伴(节日我在岗警景相融)
- 战 疫 时刻 致敬每一位石化大学的 守护者(战疫时刻)
- 老弄堂里的市井味道(老弄堂里的市井味道)
- 小米音乐可绑定QQ音乐, QQ音乐 真的会消失在小米的设备上吗(小米音乐可绑定QQ音乐)
- 小米Watch S1评测 或许能成为小米冲击高端可穿戴设备的里程碑(小米WatchS1评测或许能成为小米冲击高端可穿戴设备的里程碑)
热门推荐
- selenium怎么做集群(基于linux配置selenium环境并实现运行)
- docker容器启动失败怎么查找原因(解决docker安装后运行hello-world报错的问题)
- 云服务器和物理服务器哪个可靠(云服务器与香港服务器有什么区别?)
- php redis配置(php+redis实现消息队列功能示例)
- sqlserver2000显示无服务器(SQL SERVER 2000 9003错误的解决方法只适用于SQL2000)
- 国外虚拟主机怎么样(海外虚拟主机怎么挑选?)
- 如何编写docker-compose(使用Docker Compose搭建 Confluence的教程)
- elasticsearch数据写入原理(Python对ElasticSearch获取数据及操作)
- python语言支持多态(Python实现多态、协议和鸭子类型的代码详解)
- vuex数据持续化(Vuex数据持久化实现的思路与代码)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9