首页 > 代码库 > 定制 ThinkPHP 分页类
定制 ThinkPHP 分页类
第一步,引入:
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=http://www.mamicode.com/‘".str_replace(‘__PAGE__‘,$preRow,$url)."‘ >上".$this->rollPage."页</a>";2 $prePage = "<a href=http://www.mamicode.com/‘".str_replace(‘__PAGE__‘,$preRow,$url)."‘ ><<</a>";3 4 //$nextPage = "<a href=http://www.mamicode.com/‘".str_replace(‘__PAGE__‘,$nextRow,$url)."‘ >下".$this->rollPage."页</a>";5 $nextPage = "<a href=http://www.mamicode.com/‘".str_replace(‘__PAGE__‘,$nextRow,$url)."‘ >>></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 pagination11 */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;}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。