给ThinkPHP扩展分页样式(小白篇)

浏览:22559 发布日期:2016/05/11 分类:ThinkPHP5专区 关键字: 分页 tp5
首先你需要知道,在ThinkPHP5中分页样式是可扩展的(这不废话吗,不然我进来看你浪啥呢),默认的样式基于Boostrap样式。
好了,现在开始:扩展目录在 /library/think/paginator/driver 下,然后我们看到有一个 Bootstrap.php 文件,这个文件就是我们要进行扩展的“模版”类,当我们查看代码的时候,发现存在css class 的方法就那么几个,所以我们要修改(重写)的方法就是他们了,我再进行开发测试的时候用的是国产的妹子ui(妹子ui就是好用,虽然我也是第一次用),这样我就需要吧妹子ui 的分页样式给弄进去了
下面就是 妹子ui官方给出的分页样式代码<ul class="am-pagination am-fr admin-content-pagination">
    <li class="am-disabled"><a href="#">«</a></li>
    <li class="am-active"><a href="#">1</a></li>
    <li><a href="#">2</a></li>
    <li><a href="#">3</a></li>
    <li><a href="#">4</a></li>
    <li><a href="#">5</a></li>
    <li><a href="#">»</a></li>
</ul>
然后我们就创建了一个 妹子ui的分页驱动类,他继承自Boostrap分页驱动<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006~2016 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: shenfakuan <sfk@live.cn>
// +----------------------------------------------------------------------

namespace think\paginator\driver;

use think\Paginator;

class Amazeui extends Bootstrap
{
    /**
     * 渲染分页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="am-pagination am-fr admin-content-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="am-disabled"><a href="#">' . $text . '</a></li>';
    }

    /**
     * 生成一个激活的按钮
     *
     * @param  string $text
     * @return string
     */
    protected function getActivePageWrapper($text)
    {
        return '<li class="am-active"><a href="#">' . $text . '</a></li>';
    }
}
然后 关键的一部到了,你创建了一个分页样式驱动,但是系统怎么去找到他呢,然后我们看到在框架的全局配置文件中有一项配置(这两天才加的,如果你没有以上或下的这些东西赶紧使用composer更新一下吧):    //分页配置
    'paginate'               => [
        'type'     => 'bootstrap',
        'var_page' => 'page',
    ],
我们把 bootstrap -> amazeui (大小写好像都行,估计是处理过了)放到你项目的config.php文件中    //分页配置
    'paginate'               => [
        'type'     => 'amazeui',
        'var_page' => 'page',
    ],
这样系统就知道你要用amazeui的分页驱动了

看下效果吧
最佳答案
评论( 相关
后面还有条评论,点击查看>>