ecshop分页函数详细分析
2012-09-26 22:42 来源:www.chinab4c.com 作者:ecshop专家
ecshop分页函数详细分析,这个文章我们主要介绍ecshop分页函数。我们在看function get_pager($url, $param, $record_count, $page = 1, $size = 10)函数的时候,我们可以发现。这个函数抛弃了url复杂的处理,灵活的通过args的传递,以及基础url的封装,灵活的实现了ecshop特有的分 页方式。在进行ecshop分页的时候,只要统计出查询记录的条数,以及每页显示的页码数字,以及所在的页码,就能很轻松的实现对ecshop分页。
首先通过记录总数,以及每页显示的个数,计算出总分页数。 $page_count = $record_count > 0 ? intval(ceil($record_count / $size)) : 1,通过args进行参数的封装, $param_url = '?';
foreach ($param AS $key => $value)
{
$param_url .= $key . '=' . $value . '&';
}
如果请求的是如age=3&name=name,那么就通过封装,自然就形成了。
最复杂的是下面,分页页码显示。
$_pagenum = 10; // 显示的页码
$_offset = 2; // 当前页偏移值
$_from = $_to = 0; // 开始页, 结束页
显示页面,表示显示分页下标的个数,$offset表示便宜量,$from ,$to表示从多少下标开始,到多少下标结束。如果开始页码和结束页码的数量大于总页码数量,那么最大的页码数量为总记录条数,起始的页码就是第一页。
if($_pagenum > $page_count)
{
$_from = 1;
$_to = $page_count;
}
开始页码为当前页码减去偏移数量,结束页码为开始页码加页码显示数量,减去1。
$_from = $page - $_offset;
$_to = $_from + $_pagenum - 1;
如果开始偏移量小于1,那么就执行以下程序。
if($_from < 1)
{
$_to = $page + 1 - $_from;
$_from = 1;
if($_to - $_from < $_pagenum)
{
$_to = $_pagenum;
}
}
在循环偏移量里面,生成翻页页码,进行显示。
for ($i=$_from;$i<=$_to;++$i)
{
$pager['page_number'][$i] = $url_format . $i;
}
通过以上函数,ECSHOP实现了很好的分页方式。
来源:http://www.chinab4c.com
最近更新
常用插件
- ecshop降价通知登记插件
ecshop降价通知登记插件,主要是为了方便某些客户,对商品价格要求比...
- ecshop购物车功能改进[插件
ecshop购物车功能改进[插件套餐]主要是我们最近开发工作和开发项目中。...
- ecshop红包修改成满多少减
我们在长期使用ecshop的时候,我们可以发现。ecshop的红包是一个非常强...
- ecshop通用红包编码
很多时候,为了结合促销,必须扩展一下ecshop的红包功能。ecshop的红包...
- ecshop分类树中统计商品数
最近忙于开发其他项目,在不少朋友不断要求和催促的情况下,做出了该小...