仿阿里巴巴同级产品翻页的实现
2009-12-10 22:28
417 查看
]<?php /** 实现同类产品翻页 **/ class pager { protected $space; protected $left; protected $DB; protected $pageName; public function setSpace($num) { $this->space = $num; $this->left = ceil(($num-1)/2); } public function setDB(&$db) { $this->DB = $db; } public function setPageName($pageName) { $this->pageName = $pageName; } public function getPages($catid, $exptime) { $fields = array("`id`,`title`"); $left = array(">" => array("exptime"=>$exptime), "memberid" => gs(_MEM_PREFIX_ . "memberid"), "catid"=>$catid); $right = array("<" => array("exptime"=>$exptime), "memberid" => gs(_MEM_PREFIX_ . "memberid"), "catid"=>$catid); $leftCount = $this->DB->getCount($left); if($leftCount <= $this->left) { $star = 1; $leftLimit = "LIMIT" . $leftCount; $rightLimit = "LIMIT " . ($this->space-$leftCount); } else { $start = $leftCount - $this->left; $leftLimit = "LIMIT " . $this->left; $rightLimit = $leftLimit; } $list1 = $this->DB->findAll($left, array("exptime"=>"ASC"), $leftLimit, $fields); $list2 = $this->DB->findAll($right, array("exptime"=>"DESC"), $rightLimit, $fields); /** 上一页链接 **/ $c = count($list1); if($c > 1) { $url = $this->pageName."-".$list1[$c]['id'].".html"; $pages = "<a href="/" mce_href="/""{$url}/">上一页</a><ol>"; }elseif($c == 1) { $url = $this->pageName."-".$list1[0]['id'].".html"; $pages = "<a href="/" mce_href="/""{$url}/">上一页</a><ol>"; }else { $pages = ""; } /** 当前页的左边内容 **/ foreach($list1 as $item) { $url = $this->pageName."-".$item['id'].".html"; $pages .= "<li><a href="/" mce_href="/""{$url}/">{$start}</a></li>"; $start++; } $pages .= "<li><b>{$leftCount}</b></li>"; $start++; /** 当前页面右边的内容 **/ foreach($list1 as $item) { $url = $this->pageName."-".$item['id'].".html"; $pages .= "<li><a href="/" mce_href="/""{$url}/">{$start}</a></li>"; $start++; } /** 下一页的链接 **/ $c = count($list2); if($c > 0) { $url = $this->pageName."-".$list2[0]['id'].".html"; $pages .= "<a href="/" mce_href="/""{$url}/">下一页</a><ol>"; }else { $pages .= ""; } return $pages; } }; ?>
$B = Factory::loadCommon("Brothers"); $B->setSpace(9); $B->setPageName($pagename); $B->setDB($this->DB); $pp = $B->getPages($id, $product['memberid'], $product['catid']); $catTotal = $B->getTotal($product['memberid'], $product['catid']); $this->response->set("brothers", $pp); $this->response->set("catTotal", $catTotal);
当前页左边的页码为最新的产品,按更新时间呈升序排列;右边的页码为早期的产品, 按更新时间呈降序排列。如果左边的记录条数小于$space(页码区段)的值,页码$start从1开始向右增值。如果左则的记录条数多于$left(左右各显示页数)的值,$start将从左边记录数减去$left值开始记数。
相关文章推荐
- php实现的仿阿里巴巴实现同类产品翻页
- php实现的仿阿里巴巴实现同类产品翻页
- turn.js:超酷的杂志翻页效果HTML5实现
- viewpager实现翻页效果(fragment)
- magento -- 如何在magento中实现产品的批量上传
- 让普通业余软件开发兴趣爱好者也快速开发出相对专业的软件产品 - 通过实战开发讲解实现步骤
- iOS动效-利用CATransform3D实现翻页动画效果
- 产品安装包程序开发-技术实现介绍
- ajax异步加载使用post方法时一直输出相同结果,不能实现翻页
- Sprites实现翻页按钮,圆角,宽度不固定
- ADB+Python+CMD实现读书软件的自动翻页
- CSS3实现苹果产品图片360度旋转
- highcharts应用:highcharts历史数据曲线,用jquery实现翻页功能~~
- Android实现图书的翻页效果
- 如何用CSS实现翻页效果?
- Android实现翻页功能原理
- 程序员自黑的梗!产品经理:功能实现起来很简单!——程序员:草
- ListView滚动翻页,Radiobutton实现单选
- 阿里巴巴2014产品经理实习生提案一
- 阿里巴巴Dubbo实现的源码分析