码迷,mamicode.com
首页 > Web开发 > 详细

定制 ThinkPHP 分页类

时间:2014-06-15 14:49:45      阅读:297      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   code   ext   color   

第一步,引入:

 

 1 import(‘ORG/Util/Page‘);    
 2 $total = M(‘xxx‘)->count();    //获取总记录数
 3 $page = new Page($total, 3);    //实例化:(总数,每页显示的记录数)
 4     
 5 $limit = $page->firstRow.‘,‘.$page->listRows;    //用于SQL 的 limit 语句的限制字符串:‘limit 0,12‘
 6 $result = M(‘xxx‘)->limit($limit)->select();
 7 
 8 $this->assign(‘XXX‘, $result);
 9 $this->page = $page->show();    //分页显示输出
10 //输出的分页显示样式为: 34      条记录            6/12 页               上一页    下一页      第一页       上5页      1 2 3 4 5      下5页       尾页
11 此时‘theme‘ = ‘%totalRow%   %header%   %nowPage%/%totalPage% 页   %upPage% %downPage%   %first%    %prePage%   %linkPage%   %nextPage%   %end%‘ 
12 
13 为了做CSS样式,可以修改 Page.class.php 类,给 $linkPage 的 <a...> 加一个class:< a class=‘num‘...>

 

第二步,定制:


定制主要是围绕 theme 来做的。可以根据需要,任意调整初始 theme 中的变量位置,或者删除里面不要的。

在不修改基础上, 使用 setConfig 方法来修改默认的一些设置:$page->setConfig(‘header‘, ‘个会员‘);
setConfig方法支持的属性包括:
header:头部描述信息,默认值 “条记录”
prev:上一页描述信息,默认值是“上一页”
next:下一页描述信息,默认值是“下一页”
first:第一页描述信息,默认值是“第一页”
last:最后一页描述信息,默认值是“最后一页”
theme :分页主题描述信息,包括了上面所有元素的组合 ,设置该属性可以改变分页的各个单元的显示位置

比如可以改为:

1 $page->setConfig(‘first‘, ‘首页‘);
2 $page->setConfig(‘last‘, ‘尾页‘);
3 $page->setConfig(‘theme‘, ‘%first%  %upPage%  %prePage%  %linkPage%   %nextPage%   %downPage%  %end%‘);
4 
5 $this->page = $page->show();


此外,要是还达不到需要的样子,只好直接修改源码了!

使用    [上N页] ... [下N页]    的样子并不好看,我通常会将其改为   << ..... >>:

1 //$prePage    =   "<a href=‘".str_replace(‘__PAGE__‘,$preRow,$url)."‘ >上".$this->rollPage."页</a>";
2 $prePage    =   "<a href=‘".str_replace(‘__PAGE__‘,$preRow,$url)."‘ >&lt;&lt;</a>";
3 
4 //$nextPage   =   "<a href=‘".str_replace(‘__PAGE__‘,$nextRow,$url)."‘ >下".$this->rollPage."页</a>";
5 $nextPage   =   "<a href=‘".str_replace(‘__PAGE__‘,$nextRow,$url)."‘ >&gt;&gt;</a>";

 

 第三,样式:

模板中:

<css file=‘__PUBLIC__/Css/page.css‘ />
...
<div id=‘page‘> {page} </div>
....

CSS:

 1 /*样式-
 2 #page { text-align:center; padding:20px 0 20px 0; clear:both; }
 3 #page a.num { border:1px solid #666; padding:2px 5px; margin:0 2px; }
 4 #page a.num:hover,#page span.current { color:#fff; border:1px solid #000; background:#000; text-decoration:none; }
 5 #page span.disabled { border:1px solid #ccc; padding:2px 5px; margin:0 2px; color:#ccc; }
 6 #page span.current { padding:2px 5px; margin:0 2px; }
 7 */
 8 
 9 /*
10   css flickr style pagination
11 */
12 #page {padding:3px;margin:3px;text-align:center;}
13 #page a{border:#dedfde 1px solid;padding:2px 6px;background-position:50% bottom;color:#0061de;margin:0 3px 0 0;text-decoration:none;}
14 #page a:hover{border:#000 1px solid;background-image:none;color:#fff;background-color:#0061de;}
15 #page a:active{border:#000 1px solid;background-image:none;color:#fff;background-color:#0061de}
16 #page span.current{padding:2px 6px;font-weight:bold;color:#ff0084;margin:0 3px 0 0;}
17 #page span.disabled{padding:2px 6px;color:#adaaad;margin:0 3px 0 0;} 

 

 

定制 ThinkPHP 分页类,布布扣,bubuko.com

定制 ThinkPHP 分页类

标签:style   class   blog   code   ext   color   

原文地址:http://www.cnblogs.com/lxpursue/p/3789120.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!