thinkphp5如何实现消息队列(thinkPHP5.1框架使用SemanticUI实现分页功能示例)
类别:编程学习 浏览量:2335
时间:2021-11-08 16:43:06 thinkphp5如何实现消息队列
thinkPHP5.1框架使用SemanticUI实现分页功能示例本文实例讲述了thinkPHP5.1框架使用SemanticUI实现分页功能。分享给大家供大家参考,具体如下:
1、config目录下新建paginate.php,下面是文件的内容
|
<?php //分页配置 return [ 'type' => 'Semantic' , 'var_page' => 'page' , ]; |
2、thinkphp\library\think\paginator\driver\下新建Semantic.php,下面是文件的内容
|
<?php /** * Created by alic(AlicFeng) on 17-6-15 下午9:17 from PhpStorm. * Email is alic@samego.com */ namespace think\paginator\driver; use think\Paginator; class Semantic extends Paginator { private static $previousButtonHtml = '<i class="icon left arrow"></i>' ; private static $nextButtonHtml = '<i class="icon right arrow"></i>' ; /** * 上一页按钮 * @return string */ protected function getPreviousButton() { if ( $this ->currentPage() <= 1) { return $this ->getDisabledTextWrapper(Semantic:: $previousButtonHtml ); } $url = $this ->url( $this ->currentPage() - 1 ); return $this ->getPageLinkWrapper( $url , Semantic:: $previousButtonHtml ); } /** * 下一页按钮 * @return string */ protected function getNextButton() { if (! $this ->hasMore) { return $this ->getDisabledTextWrapper(Semantic:: $nextButtonHtml ); } $url = $this ->url( $this ->currentPage() + 1); return $this ->getPageLinkWrapper( $url , Semantic:: $nextButtonHtml ); } /** * 页码按钮 * @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( '<li style="text-align: center"><li class="ui pagination menu">%s %s</li></li>' , $this ->getPreviousButton(), $this ->getNextButton() ); } else { return sprintf( '<li style="text-align: center"><li class="ui pagination menu">%s %s %s</li></li>' , $this ->getPreviousButton(), $this ->getLinks(), $this ->getNextButton() ); } } return null; } /** * 生成一个可点击的按钮 * * @param string $url * @param int $page * @return string */ protected function getAvailablePageWrapper( $url , $page ) { return '<a href="' . htmlentities( $url ) . '" rel="external nofollow" class="item">' . $page . '</a>' ; } /** * 生成一个禁用的按钮 * * @param string $text * @return string */ protected function getDisabledTextWrapper( $text ) { return '<a class="disabled item">' . $text . '</a>' ; } /** * 生成一个激活的按钮 * * @param string $text * @return string */ protected function getActivePageWrapper( $text ) { return '<a class="active item">' . $text . '</a>' ; } /** * 生成省略号按钮 * * @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 ); } } |
3、搞定
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
原文链接:https://blog.csdn.net/weixin_38468437/article/details/83381015
您可能感兴趣
- sql server查询操作怎么做(sqlserver分页查询处理方法小结)
- dedecms无缩略图怎么设置(DEDECMS系统分页标签自定义二次开发实例)
- dedecsm模板中首页如何实现分页的三种方法比较分析(dedecsm模板中首页如何实现分页的三种方法比较分析)
- vue和springboot分页开发实现(解决Vue+SpringBoot+Shiro跨域问题)
- mysql的分页原理(mysql分页的limit参数简单示例)
- mysql提高分页效率(MySQL优化教程之超大分页查询)
- dedecms文章顺序(dedecms 分页标题提取方法)
- laravel前后端分离实现排序(laravel自定义分页的实现案例offset和limit)
- sql语句实现分页(SQL 窗口函数实现高效分页查询的案例分析)
- dede模板栏目调用(织梦DEDECMS5.7栏目列表页分页URL优化列表页重复的解决方案)
- mysql深度分页问题(MySQL DDL 引发的同步延迟该如何解决)
- mysql 高效分页(MySQL 分页查询的优化技巧)
- sqlserver存储过程同步数据(SQL Server存储过程同时返回分页结果集和总数)
- dedecms的自由列表管理(dedecms TAG标签列表分页链接优化方法)
- thinkphp5如何实现消息队列(thinkPHP5.1框架使用SemanticUI实现分页功能示例)
- dedecms导航条调用(dede调用其他栏目的文章或者缩略图列表且有分页效果的方法)
- OPPO用户看过来 汇总几个春节实用技巧,轻松搞定多设备联动玩法(汇总几个春节实用技巧)
- 北京旅游攻略(北京旅游攻略5日游及其花费)
- 四川旅游攻略(四川旅游攻略自由行攻略)
- 上海迪士尼攻略(上海迪士尼攻略旅游)
- 哪里可以看熊猫(成都哪里可以看熊猫)
- oppo手机的三种录屏方法,你知道有哪些吗(oppo手机的三种录屏方法)
热门推荐
- 阿里云ecs 运维(阿里云ECS服务器磁盘Linux在线扩容)
- 网站页面导航怎么设置css(纯CSS + 媒体查询实现网页导航效果)
- 9小时搞定微信小程序开发(关于加快微信小程序开发的一些小建议)
- php私有函数怎么调(php intval函数用法总结)
- 同步、异步、阻塞、非阻塞
- sqlserver分页查询sql语句(sql server实现分页的方法实例分析)
- docker查看某个容器状态(docker 移除掉运行不正常的container操作)
- pythonsocket建立多用户通讯(Python socket实现多对多全双工通信的方法)
- HTTP header中Cache-control的介绍
- sql function函数的用法(SQl Function 创建函数实例介绍)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9