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 limit越大越慢(MySQL limit分页大偏移量慢的原因及优化方案)
- dedecms分页修改(Dedecms图片加上Alt和Title等属性的修改方法)
- ASP.NET自定义分页类
- dedecms主表内容(DEDECMS最为常用的分页标签及分页样式代码)
- dedecms栏目内容怎么插入分页符(dedecms织梦让likearticle的mytypeid支持多个栏目和子栏目)
- django分页器图(Django框架实现分页显示内容的方法详解)
- thinkphp5.0实例详解(ThinkPHP5&5.1框架关联模型分页操作示例)
- asp.net自定义分页控件
- sqlserver存储过程同步数据(SQL Server存储过程同时返回分页结果集和总数)
- thinkphp分页效果怎样(thinkphp5+layui实现的分页样式示例)
- redis新增数据分页(Scrapy-Redis结合POST请求获取数据的方法示例)
- oracle和mysql查询所有表(Oracle、MySQL和SqlServe三种数据库分页查询语句的区别介绍)
- 后端ui框架排名(前后端结合实现amazeUI分页效果)
- sqlserver修改排序规则几种方法(SQL Server 分页编号的另一种方式推荐)
- vueelementui表格操作(Vue组件库ElementUI实现表格列表分页效果)
- dede模板栏目调用(织梦DEDECMS5.7栏目列表页分页URL优化列表页重复的解决方案)
- 你喜欢足球吗 足球如何点亮世界的(足球如何点亮世界的)
- 不可分鸽是什么梗(不可分鸽是什么梗)
- 古代的鸽子是爱情的象征,并非和平的使者(古代的鸽子是爱情的象征)
- 一课译词 放鸽子(一课译词放鸽子)
- 终于来了,淘宝更改账户名测试中,快去看看你能不能修改(淘宝更改账户名测试中)
- 淘宝支持账号名修改,网友 终于可以 重新做人 了(淘宝支持账号名修改)
热门推荐
- mysql存储引擎是什么(详解mysql中的存储引擎)
- nodejs的广播机制(node.js如何自定义实现一个EventEmitter)
- 织梦cms中的模块怎么设置(织梦CMS模板在runphp=yes的标签中调用其他field值的方法)
- mysql突然报错206无法连接(详解MySQL连接挂死的原因)
- mysql拼接和过滤(mysql 如何动态修改复制过滤器)
- python简易版学生管理系统(python3.6实现学生信息管理系统)
- canvas处理图片风格(html2 canvas生成清晰的图片实现打印功能)
- 终于有人将mysql 索引讲清楚了(MySQL 索引的一些细节分享)
- 云服务器的安全问题(云服务器如何提高安全组性能?)
- css的border怎么设置三角形(CSS border虚线边框属性教程)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9