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;
}