thinkPHP5框架分页样式类完整示例分享!

本文实例讲述了thinkPHP5分页样式类。分享给大家供大家参考,具体如下:

在配置文件中改路径

把这段代码放入extend文件下 可以在这个文件下创建个page文件

在分页的控制器方法中

  ->paginate(12,false,[ 'type'=> 'pagePage','var_page'=>'page']);    
  <?php  namespace page;  // +----------------------------------------------------------------------  // | ThinkPHP [ WE CAN DO IT JUST THINK ]  // +----------------------------------------------------------------------  // | Copyright (c) 2006~2017 https://thinkphp.cn All rights reserved.  // +----------------------------------------------------------------------  // | Licensed ( https://www.apache.org/licenses/LICENSE-2.0 )  // +----------------------------------------------------------------------  // | Author: zhangyajun <448901948@qq.com>  // +----------------------------------------------------------------------  use thinkPaginator;  class Page extends Paginator  {    //首页    protected function home() {      if ($this->currentPage() > 1) {        return "<a href='" . $this->url(1) . "' title='首页'>首页</a>";      } else {        return "<p>首页</p>";      }    }    //上一页    protected function prev() {      if ($this->currentPage() > 1) {        return "<a href='" . $this->url($this->currentPage - 1) . "' title='上一页'>上一页</a>";      } else {        return "<p>上一页</p>";      }    }    //下一页    protected function next() {      if ($this->hasMore) {        return "<a href='" . $this->url($this->currentPage + 1) . "' title='下一页'>下一页</a>";      } else {        return"<p>下一页</p>";      }    }    //尾页    protected function last() {      if ($this->hasMore) {        return "<a href='" . $this->url($this->lastPage) . "' title='尾页'>尾页</a>";      } else {        return "<p>尾页</p>";      }    }    //统计信息    protected function info(){      return "<p class='pageRemark'>共<b>" . $this->lastPage .        "</b>页<b>" . $this->total . "</b>条数据</p>";    }    /**     * 页码按钮     * @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(            '%s<div class="pagination">%s %s %s</div>',            $this->css(),            $this->prev(),            $this->getLinks(),            $this->next()          );        } else {          return sprintf(            '%s<div class="pagination">%s %s %s %s %s %s</div>',            $this->css(),            $this->home(),            $this->prev(),            $this->getLinks(),            $this->next(),            $this->last(),            $this->info()          );        }      }    }    /**     * 生成一个可点击的按钮     *     * @param string $url     * @param int  $page     * @return string     */    protected function getAvailablePageWrapper($url, $page)    {      return '<a href="' . htmlentities($url) . '" rel="external nofollow" title="第"'. $page .'"页" >' . $page . '</a>';    }    /**     * 生成一个禁用的按钮     *     * @param string $text     * @return string     */    protected function getDisabledTextWrapper($text)    {      return '<p class="pageEllipsis">' . $text . '</p>';    }    /**     * 生成一个激活的按钮     *     * @param string $text     * @return string     */    protected function getActivePageWrapper($text)    {      return '<a href="" class=" rel="external nofollow" cur">' . $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);    }    /**     * 分页样式     */    protected function css(){      return ' <style type="text/css">        .pagination p{          margin:0;          cursor:pointer        }        .pagination{          height:40px;          padding:20px 0px;        }        .pagination a{          display:block;          float:left;          margin-right:10px;          padding:2px 12px;          border:1px #cccccc solid;          background:#fff;          text-decoration:none;          color:#808080;          font-size:12px;          line-height:24px;        }        .pagination a:hover{          color:#009688;          background: white;          border:1px #009688 solid;        }        .pagination a.cur{          border:none;          background:#009688;          color:#fff;        }        .pagination p{          float:left;          padding:2px 12px;          font-size:12px;          line-height:24px;          color:#bbb;          border:1px #ccc solid;          background:#fcfcfc;          margin-right:8px;        }        .pagination p.pageRemark{          border-style:none;          background:none;          margin-right:0px;          padding:4px 0px;          color:#666;        }        .pagination p.pageRemark b{          color:red;        }        .pagination p.pageEllipsis{          border-style:none;          background:none;          padding:4px 0px;          color:#808080;        }        .dates li {font-size: 14px;margin:20px 0}        .dates li span{float:right}      </style>';    }  }    

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/phpttorial/478517.html

(0)
上一篇 2020年10月31日
下一篇 2020年10月31日

精彩推荐