thinkphp5 layui分页样式[通俗易懂]

thinkphp5 layui分页样式[通俗易懂]tp5之layui分页样式1.分页类路径:\thinkphp\library\think\paginator\driverLayui.php<?phpnamespacethink\paginator\driver;usethink\Paginator;classLayuiextendsPaginator{/***上一页按钮…

大家好,又见面了,我是你们的朋友全栈君。

tp5之layui分页样式

1.分页类

路径:\thinkphp\library\think\paginator\driver

Layui.php

<?php
namespace think\paginator\driver;
use think\Paginator;
class Layui extends Paginator
{

    /**
     * 上一页按钮
     * @param string $text
     * @return string
     */
    protected function getPreviousButton($text = "上一页")
    {

        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 = '下一页')
    {
        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(
                    '%s %s %s',
                    $this->getPreviousButton(),
                    $this->getLinks(),
                    $this->getNextButton()
                );
            }
        }
    }

    /**
     * 生成一个可点击的按钮
     *
     * @param  string $url
     * @param  int    $page
     * @return string
     */
    protected function getAvailablePageWrapper($url, $page)
    {
        return '<a href="' . htmlentities($url) . '">' . $page . '</a>';
    }

    /**
     * 生成一个禁用的按钮
     *
     * @param  string $text
     * @return string
     */
    protected function getDisabledTextWrapper($text)
    {
        return '<a class="layui-laypage-prev" >' . $text . '</a>';
    }

    /**
     * 生成一个激活的按钮
     *
     * @param  string $text
     * @return string
     */
    protected function getActivePageWrapper($text)
    {
        return '<span class="layui-laypage-curr"> <em class="layui-laypage-em"></em><em>' . $text . '</em></span>';
    }

    /**
     * 生成省略号按钮
     *
     * @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);
    }
}

2.配置文件

paginate.php

<?php
/**
 * @auther: xxf
 * Date: 2019/9/2
 * Time: 10:24
 */
//分页配置
return [
    'type' => 'Layui',
    'var_page' => 'page',
];

3.模型查询

 public function getUserShowList($size = 20, $where = null)
    {
        $res = $this
            ->field('id,title,list_order,is_top,create_time,create_time time')
            ->where($where)
            ->order(['is_top' => 'desc', 'list_order' => 'desc', 'id' => 'desc'])
            ->paginate($size);
      
        return $res;
    }

4.模板渲染

<div class="layui-box layui-laypage layui-laypage-molv">{$list|raw}</div>

效果

thinkphp5 layui分页样式[通俗易懂]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/160660.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 光棍节程序员闯关秀writeup[通俗易懂]

    光棍节程序员闯关秀writeup[通俗易懂]答题链接https://1111.segmentfault.com/第一关首先当然是右键查看源码啊点击链接进入下一关第二关还是老样子,右键查看源码这个key是要放在URL链接里敲回车的第三关根据前两关这个难度,第三关估计在请求头或者响应头里,先开burp刷新,拦截返回包拿到flag第四…

  • matlab 加权回归估计_Matlab:地理加权回归基本操作「建议收藏」

    matlab 加权回归估计_Matlab:地理加权回归基本操作「建议收藏」%————————————————————————–%计量经济学服务中心《空间计量经济学及Matlab应用》%————————————————————————–Vname=VariableGeometri…

  • jprofiler监控jvm_怎么检测jps

    jprofiler监控jvm_怎么检测jps很多人在学习java的时候只是对java粗略的学了一遍,很少有人能了解jvm层面的一些东西,比如我们想看目前有多少个java进程,可以在命令行执行jps。下面我们来说说jps的一些详细的用法。jps输出正字运行的相关进程信息jps-v输出传递给jvm参数jps-l输出模块名以及包名,如果是jar则出输jar文件全名jps-m输出传递给jvm参数jps-mlv输出进程号,包名,虚拟…

  • net开源开发web框架_我的6大Web开发开源框架

    net开源开发web框架_我的6大Web开发开源框架net开源开发web框架有许多后端框架是开源的,并且易于使用,但是并非所有框架都提供了出色的功能。后端框架是网站开发的重要组成部分,因为它们就像网站的基本要素。基本上,他们处理网站幕后的一切。后端框架具有广泛的库,API,Web服务器等。他们负责数据库,确保数据库与前端进行正确的通信并生成后端功能。如所承诺的,接下来是我的前6个后端框架的摘要。1.RubyonRa…

  • 指数函数求导_常见求导公式表

    指数函数求导_常见求导公式表a^x=y求y'y'=d(a^x)/dx=lim(x->0):(a^(x+dx)-a^x)/dx(1)根据指数函数可推出:x^(y+z)=x^y*x^z所以(

  • 统计学—之样本方差与总体方差的区别[通俗易懂]

    统计学—之样本方差与总体方差的区别[通俗易懂]前段日子重新整理了一下这个问题的解答,跟大家分享一下,如果有什么错误的话希望大家能够提出来,我会及时改正的,话不多说进入正题:首先,我们来看一下样本方差的计算公式:                           刚开始接触这个公式的话可能会有一个疑问就是:为什么样本方差要除以(n-1)而不是除以n?为了解决

    2022年10月30日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号