功能比较全的小分页,传几个参数上去就行,计算后输出数组,没什么新意,无非增加了个缩短页码,结果都给压到一个数组,方便输出和调用..附一个smarty的输出样例….
代码如下 | 复制代码 |
/** * 分页,公共方法 * @param int $page 当前页 * @param int $size 数据条数 * @param int $count 总记录数 * @return mixed 页码数组 ('当前页',上一页','下一页','首页','末页','页码') ('current','prev','next','first','last','pages'=>array(0=>array('name'=>1,'page'=>'1'))) */ public function pager($page,$size,$count){ //省略页码标示 $name_prev_more = '...'; $name_next_more = '...'; //显示页码数量 $pages_length = 9; //计算页面总数 if($num && $page){ //上一页 //下一页 $pages = array(); //省略页码的长度计算 //页码 //开头省略过长页码 //结尾省略过长页码 $result['pages'] = $pages; 返回数据结构 pager(1,10,11) Array [2] => Array ) [first] => 1 pager(1,1,11); Array [2] => Array [3] => Array [4] => Array [5] => Array [6] => Array ) [first] => 1 |
php 调用及 smarty 输出
php调用(new smarty什么的就不写了)
代码如下 | 复制代码 |
$pager = pager($page,$size,$count); $smarty->assign('pager',$pager); |
smarty 模板
代码如下 | 复制代码 |
<div id="pager"> <a href="?page={$item.page}"></a> {foreach from=$pager.pages item=item} <a href="?page={$item.page}" class="{$item.active}">{$item.name}</a> {/foreach} <a href="?page={$item.page}"></a> </div> |
返回数据结构
代码如下 | 复制代码 |
pager(6,1,11) Array [1] => Array [2] => Array [3] => Array [4] => Array [5] => Array [6] => Array [7] => Array [8] => Array [9] => Array [10] => Array ) [first] => 1 |