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
您可能感兴趣
- dedecms频道封面不能修改内容(DEDECMS内容页分页过多、过长问题最佳解决方案)
- sqlserver数据库如何分页(SQL server分页的4种方法示例很全面)
- mysql表锁行锁和分页锁(MySQL 不停机不锁表主从搭建)
- dedecms表单格式(DedeCMS arclist的分页使用教程)
- dedecms无缩略图怎么设置(DEDECMS系统分页标签自定义二次开发实例)
- sqlserver存储过程同步数据(SQL Server存储过程同时返回分页结果集和总数)
- yii框架使用教程(Yii框架分页技术实例分析)
- javascript组件库实现(JavaScript分页组件使用方法详解)
- dedecms后台内链如何制作(DedeCMS系统TAG标签和分页伪静态设置教程的实现)
- vue和springboot分页开发实现(解决Vue+SpringBoot+Shiro跨域问题)
- sql server查询操作怎么做(sqlserver分页查询处理方法小结)
- dedecms循环栏目(dedecms 栏目列表分页链接优化)
- dedecms列表分页无法显示(dedecms 5.6 分页样式代码修改方法)
- dedecms文章顺序(dedecms 分页标题提取方法)
- react自适应布局如何实现(React实现分页效果)
- mongodb 分页查询
- 仙女们的私藏鲜法大PK 鲜香切块牛肉(仙女们的私藏鲜法大PK)
- 天热没胃口 这道菜开胃又下饭,2个小技巧新手一学就会(这道菜开胃又下饭)
- 指天椒紫苏爆炒牛肉(指天椒紫苏爆炒牛肉)
- 谷雨前,吃牛羊肉别忘了吃河鲜,除湿还清热,加紫苏一炒特解馋(吃牛羊肉别忘了吃河鲜)
- 紫苏牛肉锅里滚一滚,香的鼻子都要掉了(紫苏牛肉锅里滚一滚)
- 每天都吃水果的好处(每天吃水果的好处与功效)
热门推荐
- 如何降低SQL语句复杂度
- python的静态方法和类方法(深入解析python中的实例方法、类方法和静态方法)
- sql语句查询所有成绩(SQL查询排名函数实例)
- mysql5.7.20非安装版教程(MySQL5.5 部署的一个问题)
- mysql重复插入数据教程(Mysql避免重复插入数据的4种方式)
- mysql数据表实例教程(mysql数据库入门第一步之创建表)
- dedecms如何换主页模板(DEDECMS织梦模板实现图集单击图片翻页的教程)
- phpcurl调用本地函数(PHP使用CURL实现下载文件功能示例)
- phpredis怎么测试成功(PHP+redis实现的限制抢购防止商品超发功能详解)
- vue设置div大小(Vue实现div滚轮放大缩小)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9