0x01
tp分页类 /think/library/Think/Page.class.php
调用page类
$p = intval(I('get.p')); //获取分页请求
$condition['xx'] =$xx; //设置查询条件
$m = M('xx');
$count = count($m->select()); //计算符合条件的数据总量
$page = new ThinkPage($count,10) //10条数据一页
$data = $m ->where($conditon)->limit(10)->page($p)->select(); //这里采用limit+page 方法 目测ThinkCMF 有效
$show = page ->show(); //输出到模版
$this->assign('page',$show);
$this->display();
前台HTML页面写入{$page}
分页结束
注意:count时 多条数据传递时 选取合适的位置进行数据量计算
0x02
自定义分页样式
Page.class.php
分页样式配置 private $config数组中
$config =array(
'header' =>'共%TOTAL_ROW%页',
'prev' =>'上一页',
'next' =>'下一页',
'last' =>'%TOTAL_PAGE%',
'search' =>'跳转 页',
'theme' =>'%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEAD% %SEARCH%', //自定义的键名要写里面
);
... //处理URL config中数据
//赋值到相应变量中
$page_str = str_replace(
array(%HEADER%,...,%SEARCH%),
array($this->config['header'],$this->nowPage,....,$this->config['search']),
$this->config['theme']
);
return "<div class='pages'>{$page_str}</div>"; //自定义相应的CSS类
%END% =>$this_end, //最后一页
%TOTAL_PAGE% =>$this->totalPages, //总页面数 多少分页
$this->totalPages =ceil($this->totalRows / $this->listRows);
//91行附近,根据代码应该得到的是分页数目 不是总页数,
增加一行 $this->pageCount = $this->totalPages 在str_replace里也要更改,算是BUG吧
%TOTAL_ROW% =>pageCount
0x03
修改样式 在pravite config数组中添加参数或修改HTML样式,相应的str_replace()中也要替换