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
您可能感兴趣
- mysql分页查询有几种(MySQL 查询的排序、分页相关)
- sql数据分页怎么查询(SQL数据分页查询的方法)
- sqlserver修改排序规则几种方法(SQL Server 分页编号的另一种方式推荐)
- thinkphp5如何实现消息队列(thinkPHP5.1框架使用SemanticUI实现分页功能示例)
- dedecms列表分页无法显示(dedecms 5.6 分页样式代码修改方法)
- django分页器图(Django框架实现分页显示内容的方法详解)
- thinkphp5.0实例详解(ThinkPHP5&5.1框架关联模型分页操作示例)
- dedecms文章顺序(dedecms 分页标题提取方法)
- sql数据分页如何查询(SQL分页查询方式汇总)
- 织梦栏目设置封面显示不正常(织梦列表页分页错位分页显示为竖排的解决方法)
- sqlserver小结(基于sqlserver的四种分页方式总结)
- mysql深度分页问题(MySQL DDL 引发的同步延迟该如何解决)
- sqlserver创建带参数的存储过程(SQLServer存储过程实现单条件分页)
- dedecms分页修改(dedecms 自动审核会员发表的最新文章的修改方法)
- oracle和mysql查询所有表(Oracle、MySQL和SqlServe三种数据库分页查询语句的区别介绍)
- 织梦dedecms的时间调用标签(dedecms/织梦专题节点列表内容实现分页的方法介绍)
- 官宣 全椒籍明星许海峰 奚秀兰 方芳 王璐瑶携手回家 走太平(全椒籍明星许海峰)
- 以前全椒人是怎么过冬的 满满都是回忆(以前全椒人是怎么过冬的)
- NVIDIA显卡份额冲上88 A饭发愁 游戏优化恐没A卡份了(NVIDIA显卡份额冲上88A饭发愁)
- AMD YES A卡还是N卡 A卡和N卡的区别(AMDYESA卡还是N卡)
- 以后显卡多了一个新选择,N卡和A卡外又多了个I卡(以后显卡多了一个新选择)
- 读卖乐园的彩灯(读卖乐园的彩灯)
热门推荐
- css3带阴影弹出窗口(CSS3解决移动页面上点击链接触发色块的问题)
- cdn网络搭建(使用云服务器搭建网站还有必要使用CDN吗?)
- sqlserver带参数的存储过程(SQL Server 日期和时间的内部存储过程)
- ubuntu内核升级指定版本(Ubuntu12.04建立内核树实现过程详解)
- mysql主从同步原理详解(MySQL双主主主架构配置方案)
- mysqlshell日常运维脚本(监控MySQL主从状态的shell脚本)
- cssanimation效果(使用CSS transition和animation改变渐变状态的实现方法)
- mysql主从复制如何解决延迟(MySQL 8.0.23中复制架构从节点自动故障转移的问题)
- pythonqt入门教程(使用python实现mqtt的发布和订阅)
- 阿里云怎么注册用户(怎么注册阿里云帐号)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9