封装大P方法实现分页

浏览:4018 最后更新:2016-03-29 22:04 分类:函数 关键字: 分页,方法
一直没注意扩展也能发帖,现在把发到讨论那边的帖子移过来
http://www.thinkphp.cn/topic/36227.html
//=============
今天研究分页,顺便在不改变核心分页类的前提下封装了P方法。
Application/Common/Common/function.php
在应用函数里直接加入:/*
 * %FIRST% 首页
 * %UP_PAGE% 上一页
 * %LINK_PAGE% 分页列表
 * %DOWN_PAGE% 下一页
 * %END% 尾页
 * %TOTAL_ROW% 总条数
 * %TOTAL_PAGE% 总页数
 * %NOW_PAGE% 当前页
 * $count 总条数
 * $page 第几页
 * $map 搜索参数
 */    
function P($count, $page, $map) {
    $Page = new \Think\Page($count, $page);
    $Page -> setConfig('header', '<div class="rows"><span>共:%TOTAL_ROW%条 %TOTAL_PAGE%页 当前第:%NOW_PAGE%页</span</div>');
    $Page -> setConfig('prev', '上一页');
    $Page -> setConfig('next', '下一页');
    $Page -> setConfig('first', '首页');
    $Page -> setConfig('last', '尾页');
    $Page -> setConfig('theme', '<div class="page">%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END%</div>%HEADER%');
    $Page -> rollPage = 9;
    $Page -> lastSuffix = false;
    foreach ($map as $key => $val) {
        $Page -> parameter[$key] = urlencode($val);
    }
    return $Page -> show();
}
调用实例:    public function index() {
        $p = I('get.p','1','int');
        
        $map['ab_content'] = array('eq','999');
        
        $count = M('aboutus') ->where($map) -> count();
        $data = M('aboutus') ->where($map) -> page($p ,$page = '5') -> select();
        
        $page = P($count, $page, $map);
        $this -> assign('page', $page);    
                
        $this -> assign('list', $data);
        $this -> display();
    }
至于样式可以再前台看源码自由发挥吧。
最后附一张效果图
评论( 相关
后面还有条评论,点击查看>>