• 欢迎浏览“String me = Creater\忠实的资深Linux玩家;”,请文明浏览,理性发言,有侵犯你的权益请邮件我(creater@vip.qq.com).
  • 把任何的失败都当作一次尝试,不要自卑;把所有的成功都想成是一种幸运,不要自傲。
  •    2年前 (2016-04-23)  ecshop |   抢沙发  20 
    文章评分 0 次,平均分 0.0

    在做对ecshop二次开发的过程中,难免避免不了手动对一些数据进行读取显示,其中不得不涉及到的就是分页功能,当然我们可以使用第三方的分页类对其进行分页功能的实现,这样的类很多也很杂.

    快速的调用ecshop自带的分页方法,这样既可以保证分页风格一致而且免去了使用第三方分页类的麻烦,详见以下的实现步骤:

    1.在模板文件上加上分页功能的显示代码,即dwt中引入lib库文件

    在.dwt模板文件放分页页码显示的地方加入如下代码即可:

    <!-- #BeginLibraryItem "/library/pages.lbi" --><!-- #EndLibraryItem -->

    2.php程序读取调用分页函数

    在.php(一般是user.php或category.php之类的文件)程序文件中对应的逻辑判断中加入相关的执行代码

    //分页处理,分页尺寸

    $size = 10;
    
    $page = isset($_REQUEST['page']) ? intval($_REQUEST['page']) : 1;
    
    $record_count = $db->getOne("SELECT COUNT(*) FROM " .$ecs->table('需读取的数据表名'). " WHERE 相关判断条件");
    
    $pager = get_pager('当前php文件', array('act' => $action), $record_count, $page, $size);
    
    $ad_user_list = 数据读取函数($user_id, $size, $pager['start']);
    
    //分页数据传给模板
    
    $smarty->assign('pager',  $pager);

    3.修改原有的数据读取函数,增加$num,$start两个参数的传递和处理,这儿的修改就得根据你自己的数据读取函数自行修改了,函数一般都写在在lib_transaction.php文件中

    可参考下面简单的例子实现

    function 数据读取函数($user_id, $num = 10, $start = 0)
    
    {
    
        $sql = "SELECT * FROM " .$GLOBALS['ecs']->table('需读取的数据表名'). " WHERE 相关判断条件";
    
        $arr = array();
    
        $res = $GLOBALS['db']->SelectLimit($sql, $num, $start);
    
        while ($row = $GLOBALS['db']->fetchRow($res))
    
        {
    
    $arr[] = array('user_id'         => $row['user_id'],
    
      'user_name'       => $row['user_name'],
    
      'valid_order'     => $row['valid_order'],
    
      'end_time'        => $row['end_time']);
    
    }
    
        return $arr;
    
    }
    

    4.OK结束,现在可以测试一下读取的数据是否有了分页功能了,其实ecshop分页就这么简单的

     

    除特别注明外,本站所有文章均为String me = "Creater\忠实的资深Linux玩家";原创,转载请注明出处来自http://unix8.net/home.php/4783.html

    关于

    发表评论

    暂无评论

    切换注册

    登录

    忘记密码 ?

    切换登录

    注册

    扫一扫二维码分享