用dedecms做優(yōu)化還是相當(dāng)靠譜的,個(gè)人不喜歡MVC的設(shè)計(jì),冗余代碼太多了,采用響應(yīng)式布局,不需要跳轉(zhuǎn)到移動(dòng)端,手機(jī)、PC一站搞定。這些要是用框架是比較難實(shí)現(xiàn)的。但是dedecms用來做商城就傷腦筋了,為了完善這些功能,很多牛逼的人也自己二次開發(fā)。
下面筆者分享經(jīng)試驗(yàn)成功后的優(yōu)化技巧全站調(diào)用購物車的數(shù)量,添加到購物車后數(shù)量修改不能同步展示,個(gè)性訂單號(hào)規(guī)則等。
1.全站顯示調(diào)用購物車內(nèi)的商品數(shù)量
dedecms本來就有/plus/count.php,稍微修改一下就行了,在/plus目錄下增加一個(gè)car_count.php,代碼如下:
<?php
/*
* /plus/car_count.php
* 顯示購物車的商品數(shù)量
*/
require_once (dirname(__FILE__) . "/../include/common.inc.php");
define('_PLUS_TPL_', DEDEROOT.'/templets/plus');
require_once(DEDEINC.'/dedetemplate.class.php');
require_once DEDEINC.'/shopcar.class.php';
$cart = new MemberShops();
$car_count = 0;
if($cart->cartCount() >= 1)
{
$car_count = $cart->cartCount();
}
echo ('document.write("' . $car_count . '"); ');
exit;
?>
全站調(diào)用代碼
購物車數(shù)量:<script language="javascript" src="/plus/car_count.php"></script>
2.購物車自動(dòng)更新數(shù)量
這里的實(shí)現(xiàn)方法很簡(jiǎn)單,在購物車頁面調(diào)用商品數(shù)量及商品總價(jià)方法參考dede購物車優(yōu)化之商品全選及數(shù)量增加減按鈕,這些數(shù)據(jù)只是顯示,并不會(huì)直接提交到數(shù)據(jù)庫中,最終修改了購物數(shù)量還是需要更新,只要修改更新后的跳轉(zhuǎn)就行了。找到下面的代碼,按照下面修改
<input onclick="ChangePost()" type="button" value="下一步" class="btn-2" /><!--把原有的“更新數(shù)量”改為“下一步”-->
<!--input type="button" value="下一步" onclick="location='carbuyaction.php'" class="btn-2" /--><!--注釋-->
找到/plus/postocar.php,頁面的最下面,找到
ShowMsg("購物車中商品已全部更新!","car.php");
修改提示文字,跳轉(zhuǎn)地址,和跳轉(zhuǎn)時(shí)間
ShowMsg("提交成功,請(qǐng)進(jìn)行下一步!","carbuyaction.php",false, 100);//跳轉(zhuǎn)時(shí)間為100毫秒,根據(jù)實(shí)際需要調(diào)整
3.修改為個(gè)性訂單號(hào)規(guī)則
默認(rèn)的訂單號(hào)為S-P開頭,找到/include/shopcar.class.php,找到
$this->OrdersId ='S-P'.time().'RN'.mt_rand(100,999);
代碼說明:
'S-P':默認(rèn)商城訂單號(hào)的開頭字母,可隨意修改;
time():格林威治時(shí)間,也就是訂單號(hào)S-P后邊跟的那一串?dāng)?shù)字,不建議修改;
'RN':也可修改;
mt_rand(100,999):100~999隨機(jī)生成一個(gè)3位數(shù),根據(jù)實(shí)際需要修改為4位2位均可。