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
原文: