thinkphp移动端分页修改方案

2019-12-27 17:43:27 浏览数 (3)

tihnkphp框架的分页方法在每一个开发程序中都会遇到,框架中的分页存在两个问题:一、样式没有默认;二、分页非响应式。上期我们说了tihnkphp分页样式,感兴趣的可以前往查看。

今天主要说下tihnkphp框架移动端分页样式如何调整;

一、使用方式

在thinkphp框架核心文件中找到library->think->paginator->driver->Bootstrap.php文件,将其打开在文件69行位置,添加PC和移动端判断方式,演示如下:

代码语言:javascript复制
//true 需要自行判断
if(true){
    //手机端分页
}else{
    //PC端分页
}

二、示例代码:

代码语言:javascript复制
//手机端分页
$side   = 3;
$window = $side * 2;

if ($this->lastPage < $window   6) {
$block['first'] = $this->getUrlRange(1, $this->lastPage);
} else if ($this->currentPage <= $window - 4) {
//首页
$block['first'] = $this->getUrlRange(1, $window - 3);
$block['last']  = $this->getUrlRange($this->lastPage - 1, $this->lastPage);
} else if ($this->currentPage > ($this->lastPage - $window   4)) {
//尾页
$block['first'] = $this->getUrlRange(1, 2);
$block['last']  = $this->getUrlRange($this->lastPage - ($window - 4), $this->lastPage);
} else {
//中页
$block['first']  = $this->getUrlRange(1, 2);
$block['slider'] = $this->getUrlRange($this->currentPage, $this->currentPage);
$block['last']   = $this->getUrlRange($this->lastPage - 1, $this->lastPage);
}

三、整个代码文件

代码语言:javascript复制
/**
     * 页码按钮
     * @return string
     */
    protected function getLinks()
    {
        if ($this->simple) {
            return '';
        }

        $block = [
            'first'  => null,
            'slider' => null,
            'last'   => null,
        ];

        $side   = 3;
        $window = $side * 2;

        if(true){
            //手机端分页
            if ($this->lastPage < $window   6) {
            $block['first'] = $this->getUrlRange(1, $this->lastPage);
            } else if ($this->currentPage <= $window - 4) {
            //首页
            $block['first'] = $this->getUrlRange(1, $window - 3);
            $block['last']  = $this->getUrlRange($this->lastPage - 1, $this->lastPage);
            } else if ($this->currentPage > ($this->lastPage - $window   4)) {
            //尾页
            $block['first'] = $this->getUrlRange(1, 2);
            $block['last']  = $this->getUrlRange($this->lastPage - ($window - 4), $this->lastPage);
            } else {
            //中页
            $block['first']  = $this->getUrlRange(1, 2);
            $block['slider'] = $this->getUrlRange($this->currentPage, $this->currentPage);
            $block['last']   = $this->getUrlRange($this->lastPage - 1, $this->lastPage);
            }
        }else{
            //PC端分页
            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;
    }

0 人点赞