ecshop分頁類assign_pager分析和擴充套件

weixin_34015860發表於2012-08-17

 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

原文:

相關文章