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