TP5修改分页样式

1.修改样式文件

进入项目根目录下的thinkphp文件夹下的library文件夹下的paginator,打开paginator文件夹中的dirver文件夹,看到有一个bootstrap.php文件,将该文件复制一份,重命名为Layui.php(可自定义,首字母大写,这里命名为Layui.php),并将Layui.php中的类名修改为Layui(class Layui extends Paginator)

2.修改分页样式

打开Layui.php文件,找到render方法(大致在109行,注释写着渲染分页),修改return sprintf('你想要的样式',参数,参数(根据你%s的个数携带相同个数的参数,详情请百度php sprintf函数)),一般来说只修改这里是不够的,你还需要修改getAvailablePageWrapper,getDisabledTextWrapper,getActivePageWrapper这三个方法,将他们的返回值改成你所需要的HTML代码.就可以了.最后会给出示例代码.

3.修改配置文件

进入项目跟目录下的application文件夹,在你存放后台文件的文件夹下创建config.php(例:application下的api文件是处理接口,admin文件夹是后台管理系统文件夹,config.php就是创建在admin文件夹下,也可以直接把applicationconfig.php复制过来).创建好之后输入代码:

<?php
return [
    // +----------------------------------------------------------------------
    // | 应用设置
    // +----------------------------------------------------------------------
    
    //分页配置
    'paginate'               => [
        'type'      => 'Layui',//这里改成你修改的样式文件
        'var_page'  => 'page'
        'list_rows' => 10,
    ],
];

4.修改查询代码

将你控制器里的select语句修改为paginate($this->_row(每页条数),false,$this->_param(参数)),view层展示页码的位置将原来的静态html代码替换成{$list(这里是用assgin传递过来的参数)->render()}时候刷新页面即可

5.示例代码

Layui.php 部分代码:

/**
* 渲染分页html
* @return mixed
*/
    public function render()
    {
        if ($this->hasPages()) {
            if ($this->simple) {
                return sprintf(
                    '<div class="layui-card-body">
                                <div class="page">
                                    <div>
                                     %s  %s
                                    </div>
                                </div>                              
                            </div>',
                    $this->getPreviousButton(),
                    $this->getNextButton()
                );
            } else {
                return sprintf(
                    '<div class="layui-card-body">
                                <div class="page">
                                    <div>
                                     %s   %s   %s
                                    </div>
                                </div>                              
                            </div>',
                    $this->getPreviousButton(),
                    $this->getLinks(),
                    $this->getNextButton()
                );
            }
        }
    }

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

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

    /**
     * 生成一个激活的按钮
     *
     * @param  string $text
     * @return string
     */
    protected function getActivePageWrapper($text)
    {
        return '<span class="current num" style="margin:2px">' . $text . '</span>';
    }

控制器代码:

    public function lists()
    {
        $manager = new ManagerModel();
        $lists = $manager->where($this->_map)->paginate($this->_row,false,$this->_param);
        //...无关代码
        $this->assign('lists', $lists);//这里传递参数
        return $this->fetch();//返回视图
    }

视图层代码:

    //...主体内容
    {$lists->render()}//分页

原视图层代码

    //...主体内容
    //页码样式( 替换成{$lists->render()} )
    <div class="layui-card-body ">
        <div class="page">
            <div>
                <a class="prev" href="">&lt;&lt;</a>
                <a class="num" href="">1</a>
                <span class="current">2</span>
                <a class="num" href="">3</a>
                <a class="num" href="">489</a>
                <a class="next" href="">&gt;&gt;</a></div>
            </div>
    </div>
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值