ecshop分页类assign_pager分析和扩展

简介: ecshop分页类assign_pager分析和扩展,我们前面的文章中介绍过ecshop ajax分页,他的基础都是简单单一的分页。如果我们要在ecshop分页里面传入自己的参数,你就必须对ecshop的assign_pager分页函数进行系统的认识和分析。

 ecshop分页类assign_pager分析和扩展,我们前面的文章中介绍过ecshop ajax分页,他的基础都是简单单一的分页。如果我们要在ecshop分页里面传入自己的参数,你就必须对ecshop的assign_pager分页函数进行系统的认识和分析。

     首先我们看category.php的ecshop分类页面列表分页。

     1:首先根据传入的参数,取得分页的page。然后取得默认的排序和分页参数。

     2:根据参数和分类ID。取得分类下商品数量。

     $count = get_cagtegory_goods_count($children, $brand, $price_min, $price_max, $ext);
    $max_page = ($count> 0) ? ceil($count / $size) : 1;
    if ($page > $max_page)
    {
        $page = $max_page;
    }

    3:通过调用ecshop的分页分类封装,形成以下代码。

    assign_pager('category',            $cat_id, $count, $size, $sort, $order, $page, '', $brand, $price_min, $price_max, $display, $filter_attr_str); // 分页

     当我们看到assign_pager的时候。我们就想到了一个问题。assign_pager()函数起到了关键的作用。分页类函数主要参数有分页所属的页面类型,排序方式,页码,属性参数,品牌,搜索关键字和价格等。

   function assign_pager($app, $cat, $record_count, $size, $sort, $order, $page = 1,
                        $keywords = '', $brand = 0, $price_min = 0, $price_max = 0, $display_type = 'list', $filter_attr='', $url_format='', $sch_array='')
 

    这里的$app是最重要的。他直接决定了分页所显示的内容的url.

    switch ($app)
    {
        case 'category':
            $uri_args = array('cid' => $cat, 'bid' => $brand, 'price_min'=>$price_min, 'price_max'=>$price_max, 'filter_attr'=>$filter_attr, 'sort' => $sort, 'order' => $order, 'display' => $display_type);
            break;
        case 'article_cat':
            $uri_args = array('acid' => $cat, 'sort' => $sort, 'order' => $order);
            break;
        case 'brand':
            $uri_args = array('cid' => $cat, 'bid' => $brand, 'sort' => $sort, 'order' => $order, 'display' => $display_type);
            break;
        case 'search':
            $uri_args = array('cid' => $cat, 'bid' => $brand, 'sort' => $sort, 'order' => $order);
            break;
        case 'exchange':
            $uri_args = array('cid' => $cat, 'integral_min'=>$price_min, 'integral_max'=>$price_max, 'sort' => $sort, 'order' => $order, 'display' => $display_type);
            break;
    }

    我们可以看出$app是决定分页内容的地址的。如果为brand表示品牌分页,如果是category表示分类分页。后面的参数根据自己的具体需要进行传递。如果我们要给新增加的页面增加分页功能。那么我们完全可以这样操作。

   1:比如新增ecshop页面team.php为他增加分页 。

    assign_pager('team', $tid, $count, $size, '', '', $page, $goon_keywords);

    其次我们必须修改function build_uri($app, $params, $append = '', $page = 0, $keywords = '', $size = 0),增加对应的内容路径建设方式。这样就能动态的为新增加的ecshop页面增加分页。

 

http://www.chinab4c.com/html/shangchengchengxu/ecshopchangjianwenti/2011/1102/912.html

原文:

相关文章
|
4月前
|
前端开发
技术经验分享:AspNetPager分页控件使用、AspNetPager样式
技术经验分享:AspNetPager分页控件使用、AspNetPager样式
97 0
|
容器
laypage静态数据分页组件的调用实战代码
laypage静态数据分页组件的调用实战代码
66 0
|
缓存
ViewPager懒加载的实现,理解setUserVisibleHint,而不只是会用就好
Viewpager默认会缓存临近操作的两个页面,也就是至少会缓存一个页面。
191 0
ViewPager懒加载的实现,理解setUserVisibleHint,而不只是会用就好
SAP Spartacus CmsPage的加载逻辑
SAP Spartacus CmsPage的加载逻辑
110 0
SAP Spartacus CmsPage的加载逻辑
|
Web App开发
分页解决方案 之 QuickPager的使用方法(目录)
      QuickPager asp.net 2.0 分页控件,基本告一段落。现在把使用方法、源码、Demo公布一下,感兴趣的可以下载看看。       一、从提取数据的角度开看,可以分为“自动”和“自定义”两种。
1080 0
|
算法
QuickPager分页控件,最简单的设置代码
代码 ///     /// postback 的最简单的分页设置    ///     public partial class PostSimpleness : BaseWebPage    {        #region 初始化        protected override void OnInit(EventArgs e)        {            base.OnInit(e);            //数据访问函数库的实例,使用基类里定义的。
828 0
|
算法
分页解决方案 之 QuickPager的使用方法(在UserControl里面使用分页控件的方法)
        因为我一直没有在UserControl里面使用过QuickPager分页控件,我都是直接在.aspx里面使用,所以这个bug一直没有发现。后来告诉我他把分页控件放在了UserControl里面无法翻页的情况,检查之后才发现分页的事件没有传递到UserControl里面的分页控件里面,就是说分页控件没有得到分页事件。
920 0
|
JavaScript 搜索推荐 前端开发
【自然框架】QuickPager分页控件,新增一种分页方式——伪URL分页(Postback版)
适用场景   先说一下伪URL分页的适用场景。在网站的网页里实现查询功能,如果查询条件比较少的话,还比较好办,把查询条件放到URL里面传递即可。但是如果查询条件过多,就会照成URL的长度过长。既不好看,编写起来也很麻烦。
1154 0
【自然框架】QuickPager分页控件的单独的源码 V2.0.4.2。
   QuickPager的源码分离出来之后由两个项目组成,一个是QuickPager、另一个是QuickPagerSQL。分页控件的演示也独立了出来。   如图1 。    QuickPager是分页控件的项目,负责UI的绘制,即上一页、下一页、页号导航等的绘制,还有事件的触发,控件绑定等功能。
884 0