站三界导航
首页 TP代码TP5修改分页样式

TP5修改分页样式

  • TP代码
  • 来源:站三界导航
  • 55阅读
  • 2022-10-10

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文件夹下,也可以直接把application的config.php复制过来).创建好之后输入代码:
<?php
return [
    // +站三界导航www.zhansanjie.com
    // | 应用设置
    // +----------------------------------------------------------------------
    
    //分页配置
    '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>

本文结束
本文来自投稿,不代表站三界导航立场,如若转载,请注明出处:https://www.zhansanjie.com/article/details/20818.html

版权声明:

1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

2、本站仅提供信息发布平台,不承担相关法律责任。

3、若侵犯您的版权或隐私,请联系本站管理员删除。

4、本文由会员转载自互联网,如果您是文章原创作者,请联系本站注明您的版权信息。

分享
相关文章 更多 >>
随机网站 更多 >>
最新小程序 更多>>
最新公众号更多>>
站三界导航
本站声明:本站严格遵守国家相关法律规定,非正规网站一概不予收录。本站所有资料取之于互联网,任何公司或个人参考使用本资料请自辨真伪、后果自负,站三界导航不承担任何责任。在此特别感谢您对站三界导航的支持与厚爱。