分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

thinkphp5 分页样式修改

发布时间:2023-09-06 01:40责任编辑:沈小雨关键词:thinkphp
修改文件:/thinkphp/library/think/paginator/driver/Bootstrap.php

原有分页不带省略 ?

<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006~2017 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: zhangyajun <448901948@qq.com>
// +----------------------------------------------------------------------

namespace think\paginator\driver;

use think\Paginator;

class Bootstrap extends Paginator
{

/** * 上一页按钮 * @param string $text * @return string */protected function getPreviousButton($text = "&laquo;"){ ???if ($this->currentPage() <= 1) { ???????return $this->getDisabledTextWrapper($text); ???} ???$url = $this->url( ???????$this->currentPage() - 1 ???); ???return $this->getPageLinkWrapper($url, $text);}/** * 下一页按钮 * @param string $text * @return string */protected function getNextButton($text = ‘&raquo;‘){ ???if (!$this->hasMore) { ???????return $this->getDisabledTextWrapper($text); ???} ???$url = $this->url($this->currentPage() + 1); ???return $this->getPageLinkWrapper($url, $text);}/** * 页码按钮 * @return string */protected function getLinks(){ ???if ($this->simple) ???????return ‘‘; ???$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( ???????????????‘<ul class="pager">%s %s</ul>‘, ???????????????$this->getPreviousButton(), ???????????????$this->getNextButton() ???????????); ???????} else { ???????????return sprintf( ???????????????‘<ul class="pagination">%s %s %s</ul>‘, ???????????????$this->getPreviousButton(), ???????????????$this->getLinks(), ???????????????$this->getNextButton() ???????????); ???????} ???}}/** * 生成一个可点击的按钮 * * @param ?string $url * @param ?int ???$page * @return string */protected function getAvailablePageWrapper($url, $page){ ???return ‘<li><a href="‘ . htmlentities($url) . ‘">‘ . $page . ‘</a></li>‘;}/** * 生成一个禁用的按钮 * * @param ?string $text * @return string */protected function getDisabledTextWrapper($text){ ???return ‘<li class="disabled"><span>‘ . $text . ‘</span></li>‘;}/** * 生成一个激活的按钮 * * @param ?string $text * @return string */protected function getActivePageWrapper($text){ ???return ‘<li class="active"><span>‘ . $text . ‘</span></li>‘;}/** * 生成省略号按钮 * * @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);}

}

thinkphp5 分页样式修改

原文地址:http://blog.51cto.com/13562606/2066559

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved