zoukankan      html  css  js  c++  java
  • 重写ecshop分页函数get_pager

    重写ecshop分页函数get_pager

    在分页的时候要按照自己的需求分页,所有在ecshop原有的分页函数基础上进行了修改:

    function my_get_pager($url,$param,$record_count,$page = 1,$size = 10){

        $size =intval($size);//每页显示几条记录 
        if($size<1){ //如果每页显示的记录小于1的话 
            $size = 10;//将每页显示记录条数设置为10 
        } 
         
        $page = intval($page);///当前页码 
        if ($page < 1) ///如果当前页码小于1的话 
        { 
            $page = 1;///将当前页码默认设置为1 
        } 
        $record_count = intval($record_count);///记录总数量 
         
        $page_count = $record_count > 0 ? intval(ceil($record_count / $size)) : 1; ///总页数
        if ($page > $page_count) ///如果当前页码大于总页数 
        { 
            $page = $page_count;///则将总页数赋值给当前页码 
        }     
        


        $page_prev  = ($page > 1) ? $page – 1 : 1; ///前一页 
        $page_next  = ($page < $page_count) ? $page + 1 : $page_count; ///后一页

         /* 将参数合成url字串 */ 
        $param_url = '?';  ///参数组成的url字符串 如:"?act=list" 
        foreach ($param AS $key => $value) ///键值对数组参数 
        { 
            $param_url .= $key . '=' . $value . '&'; ///"?号后面的参数" 
        } 
         
        $pager['url']          = $url; ///第一个参数,是一个文件名 如:get_comment.php 
        $pager['start']        = ($page -1) * $size; ///查询时的起始位置 
        $pager['page']         = $page; ///当前页 
        $pager['size']         = $size; ///每页显示的记录条数 
        $pager['record_count'] = $record_count;  ///记录总数 
        $pager['page_count']   = $page_count; ///总页数     
         
            $_pagenum = 10;     // 显示的页码 
            $_offset = 2;       // 当前页偏移值 
            $_from = $_to = 0;  // 开始页, 结束页     
         
        if($_pagenum > $page_count) ///如果显示的页码 大于 总页数,如:显示10页 总页数为8 则显示1-8 
        { 
            $_from = 1; ///从1开始 
            $_to = $page_count; ///到 总页数 为止 
        } 
        else ///如果 显示的页码 小于 总页码,如:显示10页 总页数为15 
        {///(1)假如当前页为2,则$_from为0,$_to为9   (2)假如当前页为6,则$_from为4,$_to为13   
            $_from = $page – $_offset;    ;///(1)$_from为0 (2)$_from为4 当前页-当前页偏移量,如: 1-10、2-11、3-12、4-13、5-14、6-15、不会出现7-16、8-17,因为总页数是15  
            $_to = $_from + $_pagenum – 1; ///(1)$_to为9 (2)$_to为13 
            if($_from < 1) 
            { 
                $_to = $page + 1 – $_from; ///(1)则$_to为3 
                $_from = 1; ///(1)$_from重新复制为1 
                if($_to – $_from < $_pagenum) //(1)3-1 小于 要显示的页码数 
                { 
                    $_to = $_pagenum; ///(1)则$_to重新复制为10 
                } 
            } 
            elseif($_to > $page_count) //(2)如果13 大于 10的话           如果14 大于 10的话 
            { 
                $_from = $page_count – $_pagenum + 1; ///(2)$_from为起始页数:15-10+1=6 
                $_to = $page_count; //(2)$_to为总页数:15 
            } 
        } 
        $url_format = $url . $param_url . 'page='; 
        $pager['page_first'] = ($page – $_offset > 1 && $_pagenum < $page_count) ? $url_format . 1 : ''; 
        $pager['page_prev']  = ($page > 1) ? $url_format . $page_prev : ''; 
        $pager['page_next']  = ($page < $page_count) ? $url_format . $page_next : ''; 
        $pager['page_last']  = ($_to < $page_count) ? $url_format . $page_count : ''; 
        $pager['page_number'] = array(); 
        for ($i=$_from;$i<=$_to;++$i) 
        { 
            $pager['page_number'][$i] = $url_format . $i; 
        } 
        return $pager; 
     };

    返回的$pager 数组里面包含了第一页/末页 、上一页/下一页 已经分页显示的码数及地址,赋值到前端页面即可实习自定义分页!

    当你一步一个脚印的走过
  • 相关阅读:
    【转发】揭秘Facebook 的系统架构
    【转发】淘宝网架构分享总结
    【转发】淘宝网采用什么技术架构来实现网站高负载的
    【转发】浅析淘宝网首页信息架构的变迁
    【转发】Html5 File Upload with Progress
    (9/18)重学Standford_iOS7开发_动画、自动布局_课程笔记
    (8/18)重学Standford_iOS7开发_协议、block、动画_课程笔记
    (7/18)重学Standford_iOS7开发_视图、绘制、手势识别_课程笔记
    (6/18)重学Standford_iOS7开发_控制器多态性、导航控制器、选项卡栏控制器_课程笔记
    (5/18)重学Standford_iOS7开发_视图控制器生命周期_课程笔记
  • 原文地址:https://www.cnblogs.com/Alviss/p/4571291.html
Copyright © 2011-2022 走看看