smarty模板的作用|php+smarty模板分页程序代码

更新时间:2018-10-24    来源:smarty模板    手机版     字体:

【www.bbyears.com--smarty模板】

功能比较全的小分页,传几个参数上去就行,计算后输出数组,没什么新意,无非增加了个缩短页码,结果都给压到一个数组,方便输出和调用..附一个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($count){
     $num = ceil($count/$size);
    }

    if($num && $page){
        //当前页
        $result["current"]= $page;

        //上一页
        if($page - 1){
            $result["prev"] = $page - 1;
        }else{
            $result["prev"] = 1;
        }

        //下一页
        if($num == $page){
            $result["next"] = $num;
        }else{
            $result["next"] = $page + 1;
        }

        $pages = array();

        //省略页码的长度计算
        if($num >= $pages_length){
            $length = intval($pages_length/2);
        }else{
         $length = intval($num/2);
        }

        //页码
        for ($i=1;$i<=$num;$i++){
            if($page == $i){
                $pages[$i]["active"] = "active";
            }
            if($i >= $page-$length && $i <=$page+$length){
                $pages[$i]["page"] = $i;
                $pages[$i]["name"] = $i;
            }
        }

        //开头省略过长页码
        if($page - 1 >$length){
            $prev_more["page"] = $page - $length -1;
            $prev_more["name"]  = $name_prev_more;
            array_unshift($pages,$prev_more);
        }

        //结尾省略过长页码
        if($num - $page >$length){
            $next_more["page"] = $page + $length + 1;
            $next_more["name"]  = $name_next_more;
         array_push($pages,$next_more);
        }

        $result["pages"] = $pages;
        //首页,末页
        $result["first"] = 1;
        $result["last"]  = $num;
        //print_r($result);   //TODO:查看数据结构
        return $result;
    }
    return "";
}

返回数据结构

pager(1,10,11)

Array
(
    [current] => 1
    [prev] => 1
    [next] => 2
    [pages] => Array
        (
            [1] => Array
                (
                    [active] => active
                   

本文来源:http://www.bbyears.com/jiaocheng/45297.html

猜你感兴趣