欧美极品在线观看不卡|国产精品Va免费视频|国产国产人无码在线免费|亚洲精品无码九九九九九|亚洲国产综合精品久久久久|成人国产在线观看高清不卡|制服诱惑一区二区三区六区|国产一区二区精品高清在线观看

新聞中心

Ecshop如何優(yōu)化重寫ecshop分頁get_pager函數(shù)

作者 / 無憂主機(jī) 時間 2015-10-24 02:06:39

在使用ecshopphp虛擬主機(jī)建站的過程中,總是希望分頁能按照自己的意愿進(jìn)行,下面小編給大家介紹如何優(yōu)化網(wǎng)站的分頁,在ecshop原有的get_pager分頁函數(shù)基礎(chǔ)上進(jìn)行了修改:

function my_get_pager($url,$param,$record_count,$page = 1,$size = 10){
?? ?$size =intval($size);//每頁顯示幾條記錄
?? ?if($size<1){ //如果每頁顯示的記錄小于1的話
?? ??? ?$size = 10;//將每頁顯示記錄條數(shù)設(shè)置為10
?? ?}
?? ?
?? ?$page = intval($page);///當(dāng)前頁碼
?? ?if ($page < 1) ///如果當(dāng)前頁碼小于1的話
?? ?{
?? ??? ?$page = 1;///將當(dāng)前頁碼默認(rèn)設(shè)置為1
?? ?}
?? ?$record_count = intval($record_count);///記錄總數(shù)量
?? ?
?? ?$page_count = $record_count > 0 ? intval(ceil($record_count / $size)) : 1; ///總頁數(shù)
?? ?if ($page > $page_count) ///如果當(dāng)前頁碼大于總頁數(shù)
?? ?{
?? ??? ?$page = $page_count;///則將總頁數(shù)賦值給當(dāng)前頁碼
?? ?}?? ?
?? ?
?? ? $page_prev ?= ($page > 1) ? $page – 1 : 1; ///前一頁
?? ?$page_next ?= ($page < $page_count) ? $page + 1 : $page_count; ///后一頁
?? ? /* 將參數(shù)合成url字串 */
?? ?$param_url = '?'; ?///參數(shù)組成的url字符串 如:"?act=list"
?? ?foreach ($param AS $key => $value) ///鍵值對數(shù)組參數(shù)
?? ?{
?? ??? ?$param_url .= $key . '=' . $value . '&'; ///"?號后面的參數(shù)"
?? ?}
?? ?
?? ?$pager['url'] ? ? ? ? ?= $url; ///第一個參數(shù),是一個文件名 如:get_comment.php
?? ?$pager['start'] ? ? ? ?= ($page -1) * $size; ///查詢時的起始位置
?? ?$pager['page'] ? ? ? ? = $page; ///當(dāng)前頁
?? ?$pager['size'] ? ? ? ? = $size; ///每頁顯示的記錄條數(shù)
?? ?$pager['record_count'] = $record_count; ?///記錄總數(shù)
?? ?$pager['page_count'] ? = $page_count; ///總頁數(shù)?? ?
?? ?
? ? ? ? $_pagenum = 10; ? ? // 顯示的頁碼
? ? ? ? $_offset = 2; ? ? ? // 當(dāng)前頁偏移值
? ? ? ? $_from = $_to = 0; ?// 開始頁, 結(jié)束頁?? ?
?? ?
?? ?if($_pagenum > $page_count) ///如果顯示的頁碼 大于 總頁數(shù),如:顯示10頁 總頁數(shù)為8 則顯示1-8
?? ?{
?? ??? ?$_from = 1; ///從1開始
?? ??? ?$_to = $page_count; ///到 總頁數(shù) 為止
?? ?}
?? ?else ///如果 顯示的頁碼 小于 總頁碼,如:顯示10頁 總頁數(shù)為15
?? ?{///(1)假如當(dāng)前頁為2,則$_from為0,$_to為9 ? (2)假如當(dāng)前頁為6,則$_from為4,$_to為13 ?
?? ??? ?$_from = $page – $_offset; ? ?;///(1)$_from為0 (2)$_from為4 當(dāng)前頁-當(dāng)前頁偏移量,如: 1-10、2-11、3-12、4-13、5-14、6-15、不會出現(xiàn)7-16、8-17,因?yàn)榭傢摂?shù)是15?//www.zuimoban.com
?? ??? ?$_to = $_from + $_pagenum – 1; ///(1)$_to為9 (2)$_to為13
?? ??? ?if($_from < 1)
?? ??? ?{
?? ??? ??? ?$_to = $page + 1 – $_from; ///(1)則$_to為3
?? ??? ??? ?$_from = 1; ///(1)$_from重新復(fù)制為1
?? ??? ??? ?if($_to – $_from < $_pagenum) //(1)3-1 小于 要顯示的頁碼數(shù)
?? ??? ??? ?{
?? ??? ??? ??? ?$_to = $_pagenum; ///(1)則$_to重新復(fù)制為10
?? ??? ??? ?}
?? ??? ?}
?? ??? ?elseif($_to > $page_count) //(2)如果13 大于 10的話 ? ? ? ? ? 如果14 大于 10的話
?? ??? ?{
?? ??? ??? ?$_from = $page_count – $_pagenum + 1; ///(2)$_from為起始頁數(shù):15-10+1=6
?? ??? ??? ?$_to = $page_count; //(2)$_to為總頁數(shù):15
?? ??? ?}
?? ?}
?? ?$url_format = $url . $param_url . 'page=';
?? ?$pager['page_first'] = ($page – $_offset > 1 && $_pagenum < $page_count) ? $url_format . 1 : '';
?? ?$pager['page_prev'] ?= ($page > 1) ? $url_format . $page_prev : '';
?? ?$pager['page_next'] ?= ($page < $page_count) ? $url_format . $page_next : '';
?? ?$pager['page_last'] ?= ($_to < $page_count) ? $url_format . $page_count : '';
?? ?$pager['page_number'] = array();
?? ?for ($i=$_from;$i<=$_to;++$i)
?? ?{
?? ??? ?$pager['page_number'][$i] = $url_format . $i;
?? ?}
?? ?return $pager;
?};
返回的$pager 數(shù)組里面包含了第一頁/末頁 、上一頁/下一頁 已經(jīng)分頁顯示的碼數(shù)及地址,賦值到前端頁面即可實(shí)習(xí)自定義分頁! 無憂主機(jī)相關(guān)文章推薦閱讀: ECSHOP如何顯示已付款的訂單信息 ECSHOP教程:設(shè)置只有登錄用戶才可查看商品詳情 ECSHOP的RECIEVE.PHP郵件自動確認(rèn)收貨BUG如何修正  

本文地址:http://www.gle-technology.com/ecshop/20470.html

1
1
1
1
1
1
1

客戶服務(wù)熱線

0791-8623-3537

在線客服