• TP5之自定义分页样式


    1. 分页样式为
    2. 在extend目录下创建page目录,在page目录下创建Page.php文件,将以下代码放入文件中。
    3.   1 <?php
        2 namespace page;
        3 
        4 use thinkPaginator;
        5 
        6 class Page extends Paginator
        7 {
        8 
        9     //首页
       10     protected function home() {
       11         if ($this->currentPage() > 1) {
       12             return "<a href='" . $this->url(1) . "' title='首页'>首页</a>";
       13         } else {
       14             return "<p>首页</p>";
       15         }
       16     }
       17 
       18     //上一页
       19     protected function prev() {
       20         if ($this->currentPage() > 1) {
       21             return "<a href='" . $this->url($this->currentPage - 1) . "' title='上一页'>上一页</a>";
       22         } else {
       23             return "<p>上一页</p>";
       24         }
       25     }
       26 
       27     //下一页
       28     protected function next() {
       29         if ($this->hasMore) {
       30             return "<a href='" . $this->url($this->currentPage + 1) . "' title='下一页'>下一页</a>";
       31         } else {
       32             return"<p>下一页</p>";
       33         }
       34     }
       35 
       36     //尾页
       37     protected function last() {
       38         if ($this->hasMore) {
       39             return "<a href='" . $this->url($this->lastPage) . "' title='尾页'>尾页</a>";
       40         } else {
       41             return "<p>尾页</p>";
       42         }
       43     }
       44 
       45     //统计信息
       46     protected function info(){
       47         return "<p class='pageRemark'>共<b>" . $this->lastPage .
       48             "</b>页<b>" . $this->total . "</b>条数据</p>";
       49     }
       50 
       51     /**
       52      * 页码按钮
       53      * @return string
       54      */
       55     protected function getLinks()
       56     {
       57 
       58         $block = [
       59             'first'  => null,
       60             'slider' => null,
       61             'last'   => null
       62         ];
       63 
       64         $side   = 3;
       65         $window = $side * 2;
       66 
       67         if ($this->lastPage < $window + 6) {
       68             $block['first'] = $this->getUrlRange(1, $this->lastPage);
       69         } elseif ($this->currentPage <= $window) {
       70             $block['first'] = $this->getUrlRange(1, $window + 2);
       71             $block['last']  = $this->getUrlRange($this->lastPage - 1, $this->lastPage);
       72         } elseif ($this->currentPage > ($this->lastPage - $window)) {
       73             $block['first'] = $this->getUrlRange(1, 2);
       74             $block['last']  = $this->getUrlRange($this->lastPage - ($window + 2), $this->lastPage);
       75         } else {
       76             $block['first']  = $this->getUrlRange(1, 2);
       77             $block['slider'] = $this->getUrlRange($this->currentPage - $side, $this->currentPage + $side);
       78             $block['last']   = $this->getUrlRange($this->lastPage - 1, $this->lastPage);
       79         }
       80 
       81         $html = '';
       82 
       83         if (is_array($block['first'])) {
       84             $html .= $this->getUrlLinks($block['first']);
       85         }
       86 
       87         if (is_array($block['slider'])) {
       88             $html .= $this->getDots();
       89             $html .= $this->getUrlLinks($block['slider']);
       90         }
       91 
       92         if (is_array($block['last'])) {
       93             $html .= $this->getDots();
       94             $html .= $this->getUrlLinks($block['last']);
       95         }
       96 
       97         return $html;
       98     }
       99 
      100     /**
      101      * 渲染分页html
      102      * @return mixed
      103      */
      104     public function render()
      105     {
      106         if ($this->hasPages()) {
      107             if ($this->simple) {
      108                 return sprintf(
      109                     '%s<div class="pagination">%s %s %s</div>',
      110                     $this->css(),
      111                     $this->prev(),
      112                     $this->getLinks(),
      113                     $this->next()
      114                 );
      115             } else {
      116                 return sprintf(
      117                     '%s<div class="pagination">%s %s %s %s %s %s</div>',
      118                     $this->css(),
      119                     $this->home(),
      120                     $this->prev(),
      121                     $this->getLinks(),
      122                     $this->next(),
      123                     $this->last(),
      124                     $this->info()
      125                 );
      126             }
      127         }
      128     }
      129 
      130     /**
      131      * 生成一个可点击的按钮
      132      *
      133      * @param  string $url
      134      * @param  int    $page
      135      * @return string
      136      */
      137     protected function getAvailablePageWrapper($url, $page)
      138     {
      139         return '<a href="' . htmlentities($url) . '" title="第"'. $page .'"页" >' . $page . '</a>';
      140     }
      141 
      142     /**
      143      * 生成一个禁用的按钮
      144      *
      145      * @param  string $text
      146      * @return string
      147      */
      148     protected function getDisabledTextWrapper($text)
      149     {
      150         return '<p class="pageEllipsis">' . $text . '</p>';
      151     }
      152 
      153     /**
      154      * 生成一个激活的按钮
      155      *
      156      * @param  string $text
      157      * @return string
      158      */
      159     protected function getActivePageWrapper($text)
      160     {
      161         return '<a href="" class="cur">' . $text . '</a>';
      162     }
      163 
      164     /**
      165      * 生成省略号按钮
      166      *
      167      * @return string
      168      */
      169     protected function getDots()
      170     {
      171         return $this->getDisabledTextWrapper('...');
      172     }
      173 
      174     /**
      175      * 批量生成页码按钮.
      176      *
      177      * @param  array $urls
      178      * @return string
      179      */
      180     protected function getUrlLinks(array $urls)
      181     {
      182         $html = '';
      183 
      184         foreach ($urls as $page => $url) {
      185             $html .= $this->getPageLinkWrapper($url, $page);
      186         }
      187 
      188         return $html;
      189     }
      190 
      191     /**
      192      * 生成普通页码按钮
      193      *
      194      * @param  string $url
      195      * @param  int    $page
      196      * @return string
      197      */
      198     protected function getPageLinkWrapper($url, $page)
      199     {
      200         if ($page == $this->currentPage()) {
      201             return $this->getActivePageWrapper($page);
      202         }
      203 
      204         return $this->getAvailablePageWrapper($url, $page);
      205     }
      206 
      207     /**
      208      * 分页样式
      209      */
      210     protected function css(){
      211         return '  <style type="text/css">
      212             .pagination p{
      213                 margin:0;
      214                 cursor:pointer
      215             }
      216             .pagination{
      217                 height:40px;
      218                 padding:20px 0px;
      219             }
      220             .pagination a{
      221                 display:block;
      222                 float:left;
      223                 margin-right:10px;
      224                 padding:2px 12px;
      225                 height:24px;
      226                 border:1px #cccccc solid;
      227                 background:#fff;
      228                 text-decoration:none;
      229                 color:#808080;
      230                 font-size:12px;
      231                 line-height:24px;
      232             }
      233             .pagination a:hover{
      234                 color:#077ee3;
      235                 background: white;
      236                 border:1px #077ee3 solid;
      237             }
      238             .pagination a.cur{
      239                 border:none;
      240                 background:#077ee3;
      241                 color:#fff;
      242             }
      243             .pagination p{
      244                 float:left;
      245                 padding:2px 12px;
      246                 font-size:12px;
      247                 height:24px;
      248                 line-height:24px;
      249                 color:#bbb;
      250                 border:1px #ccc solid;
      251                 background:#fcfcfc;
      252                 margin-right:8px;
      253 
      254             }
      255             .pagination p.pageRemark{
      256                 border-style:none;
      257                 background:none;
      258                 margin-right:0px;
      259                 padding:4px 0px;
      260                 color:#666;
      261             }
      262             .pagination p.pageRemark b{
      263                 color:red;
      264             }
      265             .pagination p.pageEllipsis{
      266                 border-style:none;
      267                 background:none;
      268                 padding:4px 0px;
      269                 color:#808080;
      270             }
      271             .dates li {font-size: 14px;margin:20px 0}
      272             .dates li span{float:right}
      273         </style>';
      274     }
      275 }

      修改  applicationconfig.php  中的配置文件即可

    1 //分页配置  
    2     'paginate'               => [  
    3         'type'      => 'pagePage',//分页类  
    4         'var_page'  => 'page',  
    5         'list_rows' => 15,  
    6     ],

    over!over!over!

    let the world have no hard-to-write code ^-^
  • 相关阅读:
    事务与数据库连接池DBCP和C3P0与工具类DBUtils
    JavaWeb基础JSP页面EL 和JSTL表达式
    Cookie和Session
    HttpServletRequest 和HttpServletResponse
    Http协议和Servlet
    Xml 和Tomcat
    Struts2第二天:Struts2的数据的封装、结果页面配置
    BootStrap基础知识总结
    Linux和Windows下Mysql数据库安装详解
    CSS 边框
  • 原文地址:https://www.cnblogs.com/ovim/p/10580265.html
Copyright © 2020-2023  润新知