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将列表页重复的第一页去除的方法)
- redis新增数据分页(Scrapy-Redis结合POST请求获取数据的方法示例)
- php分页函数有什么用(php实现分页功能的详细实例方法)
- thinkphp5如何实现消息队列(thinkPHP5.1框架使用SemanticUI实现分页功能示例)
- python yield 使用浅析(yii框架使用分页的方法分析)
- dede模板栏目调用(织梦DEDECMS5.7栏目列表页分页URL优化列表页重复的解决方案)
- laravel 前后端开发(在Laravel中实现使用AJAX动态刷新部分页面)
- dedecms无缩略图怎么设置(DEDECMS系统分页标签自定义二次开发实例)
- sqlserver分页查询sql语句(sql server实现分页的方法实例分析)
- sqlserver修改排序规则几种方法(SQL Server 分页编号的另一种方式推荐)
- thinkphp分页效果怎样(thinkphp5+layui实现的分页样式示例)
- mysql分页查询有几种(MySQL 查询的排序、分页相关)
- dedecms循环栏目(dedecms 栏目列表分页链接优化)
- dedecms频道封面不能修改内容(DEDECMS内容页分页过多、过长问题最佳解决方案)
- dedecms的自由列表管理(dedecms TAG标签列表分页链接优化方法)
- react自适应布局如何实现(React实现分页效果)
- 寒假余额不满24小时,不如来一场说走就走的亲子阅读之旅(寒假余额不满24小时)
- 省委书记出席的交流会,十位县委书记同场发言,代表公文材料的高水平(省委书记出席的交流会)
- 《刘老根3》热播,去世15年的她却再次被 伤害(去世15年的她却再次被)
- 十二星座爱情支配欲指数(十二星座爱情支配欲指数)
- 虐待儿童是发泄支配欲的愚蠢行为(虐待儿童是发泄支配欲的愚蠢行为)
- 你或许不知道你隐藏的支配欲望(你或许不知道你隐藏的支配欲望)
热门推荐
- css3中基本选择符(CSS3 clip-path 用法介绍详解)
- canvas宽高技巧(canvas画图被放大且模糊的解决方法)
- python中encode中文自定义编码(详解Python解决抓取内容乱码问题decode和encode解码)
- 为什么dede主页加载不出来(dede中第一次登陆密码错误的解决方法)
- 宝塔怎么开放端口(宝塔面板修改默认端口以及一些常用端口的安全设置)
- vue自定义组件修饰符(Vue自定义组件使用事件修饰符的踩坑记录)
- dedecms怎么在根目录外生成文件夹(dedecms 5.6 缩略图按大小比例缩小裁剪)
- dedecms二次开发(简单几步为DedeCMS实现LightBox效果)
- python编辑redis(python使用pipeline批量读写redis的方法)
- mysql存储引擎的创建与修改(关于MySQL Memory存储引擎的相关知识)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9