ThinkPHP5自定义分页类教程详解

自定义分页类

效果图

blob.png

第一步:创建文件Page.php,将其放到extendpage,这里也可以自己决定,命名空间对了就行


// +----------------------------------------------------------------------

use thinkPaginator;

class Page extends Paginator
{

    //首页
    protected function home() {
        if ($this->currentPage() > 1) {
            return "url(1) . "' title='首页'>首页";
        } else {
            return "

首页

";         }     }     //上一页     protected function prev() {         if ($this->currentPage() > 1) {             return "url($this->currentPage - 1) . "' title='上一页'>上一页";         } else {             return "

上一页

";         }     }     //下一页     protected function next() {         if ($this->hasMore) {             return "url($this->currentPage + 1) . "' title='下一页'>下一页";         } else {             return"

下一页

";         }     }     //尾页     protected function last() {         if ($this->hasMore) {             return "url($this->lastPage) . "' title='尾页'>尾页";         } else {             return "

尾页

";         }     }     //统计信息     protected function info(){         return "

" . $this->lastPage .             "" . $this->total . "条数据

";     }     /**      * 页码按钮      * @return string      */     protected function getLinks()     {         $block = [             'first'  => null,             'slider' => null,             'last'   => null         ];         $side   = 3;         $window = $side * 2;         if ($this->lastPage geturlRange(1, $this->lastPage);         } elseif ($this->currentPage 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
%s %s %s
',                     $this->css(),                     $this->prev(),                     $this->getLinks(),                     $this->next()                 );             } else {                 return sprintf(                     '%s
%s %s %s %s %s %s
',                     $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 '' . $page . '';     }     /**      * 生成一个禁用的按钮      *      * @param  string $text      * @return string      */     protected function getDisabledTextWrapper($text)     {         return '

' . $text . '

';     }     /**      * 生成一个激活的按钮      *      * @param  string $text      * @return string      */     protected function getActivePageWrapper($text)     {         return '' . $text . '';     }     /**      * 生成省略号按钮      *      * @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 '  ';     } }

第二步:修改配置文件

//分页配置  
   'paginate'               => [  
       'type'      => 'pagePage',//分页类  
       'var_page'  => 'page',  
       'list_rows' => 15,  
   ],

温馨提示: 本文最后更新于2024-12-31 21:10:30,某些文章具有时效性,若有错误或已失效,请在下方 留言或联系 蚂蚁官方
© 版权声明
THE END
喜欢就支持一下吧
点赞6赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容