首页 技术 正文
技术 2022年11月19日
0 收藏 641 点赞 2,725 浏览 7898 个字

Thinkphp5 自带的分页比较简单,本文通过修改Bootstrap类自定义显示分页的页码和数量

一、修改完成后如下图显示

Thinkphp5 自定义分页样式显示页码和数量

二、修改Bootstrap代码:

1、为了不改动Bootstrap.php源代码,拷贝thinkphp目录下的Bootstrap.php重新命名为BootstrapDetailed.php

Thinkphp5 自定义分页样式显示页码和数量

2、BootstrapDetailed代码

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308 <?php// +----------------------------------------------------------------------// | ThinkPHP [ WE CAN DO IT JUST THINK ]// +----------------------------------------------------------------------// | Copyright (c) 2006~2017 http://thinkphp.cn All rights reserved.// +----------------------------------------------------------------------// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )// +----------------------------------------------------------------------// | Author: zhangyajun <448901948@qq.com>// +---------------------------------------------------------------------- namespace think\paginator\driver; use think\Paginator; class BootstrapDetailed 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);    }       //总数标签    protected  function totalshow()    {         $totalhtml="<li class=\"disabled\"><span>共".$this->total."条记录&nbsp&nbsp第".$this->currentPage()."页/共".$this->lastPage()."页</span></li>";        return $totalhtml;     }     //尾页标签     protected  function showlastpage($text '尾页')    {         if($this->currentPage()==$this->lastPage())        {            return $this->getDisabledTextWrapper($text);         }         $url $this->url($this->lastPage());        return $this->getPageLinkWrapper($url$text);    }     //首页标签     protected  function showfirstpage($text '首页')    {         if($this->currentPage()==1)        {            return $this->getDisabledTextWrapper($text);         }         $url $this->url(1);        return $this->getPageLinkWrapper($url$text);    }  //后五页    protected  function afivepage($text '后五页')    {          if($this->lastPage()<$this->currentPage()+5)        {            return $this->getDisabledTextWrapper($text);         }        $url $this->url($this->currentPage()+5);          return $this->getPageLinkWrapper($url$text);    }     //前五页    protected  function bfivepage($text '前五页')    {          if($this->currentPage()<5)        {            return $this->getDisabledTextWrapper($text);         }        $url $this->url($this->currentPage()-5);          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);    }   //跳转到哪页    protected  function  gopage()    {          return $gotohtml="<li><form action='' method='get' ><span><input type='text' name='page'> <input type='submit' value='确定'> </span></form></li>";       // return $totalhtml;;     }     /**     * 页码按钮     * @return string     */    protected function getLinks()    {        if ($this->simple)            return '';         $block = [            'first'  => null,            'slider' => null,            'last'   => null        ];         $side   = 2;        $window $side * 2;         if ($this->lastPage < $window +1) {            $block['slider'] = $this->getUrlRange(1, $this->lastPage);         elseif ($this->currentPage <= $window-1) {             $block['slider'] = $this->getUrlRange(1, $window + 1);        elseif ($this->currentPage > ($this->lastPage - $window+1)) {            $block['slider']  = $this->getUrlRange($this->lastPage - ($window), $this->lastPage);         else {             $block['slider'] = $this->getUrlRange($this->currentPage - $side$this->currentPage + $side);        }         $html '';         if (is_array($block['first'])) {            $html .= $this->getUrlLinks($block['first']);        }         if (is_array($block['slider'])) {             $html .= $this->getUrlLinks($block['slider']);        }         if (is_array($block['last'])) {           $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 %s</ul>',                     $this->getPreviousButton(),                    $this->getNextButton()                );            else {                return sprintf(                    '<ul class="pagination"> %s %s %s %s %s %s %s %s </ul>',                    //显示数量页码信息                    $this->totalshow(),                   //第一页                    $this->showfirstpage(),                   //上一页                    $this->getPreviousButton(),                   //前五页                    $this->bfivepage(),                   //页码                    $this->getLinks(),                   //后五页                    $this->afivepage(),                    //下一页                    $this->getNextButton(),                   //最后一页                    $this->showlastpage()                    //最后再加个参数 %s 可以显示跳转到哪页                  //  $this->gopage()                 );            }        }    }     /**     * 生成一个可点击的按钮     *     * @param  string $url     * @param  int    $page     * @return string     */    protected function getAvailablePageWrapper($url$page)    {        return '<li><a href="' . htmlentities($url) . '" rel="external nofollow" >' $page '</a></li>';    }     /**     * 生成一个禁用的按钮     *     * @param  string $text     * @return string     */    protected function getDisabledTextWrapper($text)    {        return '<li class="disabled"><span>' $text '</span></li>';    }     /**     * 生成一个激活的按钮     *     * @param  string $text     * @return string     */    protected function getActivePageWrapper($text)    {        return '<li class="active"><span>' $text '</span></li>';    }     /**     * 生成省略号按钮     *     * @return string     */    protected function getDots($text '...')    {         //$url = $this->url($this->currentPage() + 1);       //  return $this->getPageLinkWrapper($url, $text);       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、使用方法

12345 $test=Db::name("test")->paginate(2,false,            [                'type'=>'BootstrapDetailed'            ]            );

  

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,022
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,513
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,359
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,142
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,773
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,851