




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
專業(yè)專注用心服務(wù)電話13891864749郵件:xaphp@126.com網(wǎng)址:Ecshop二次開發(fā)教程西安php服務(wù)中心齊老師目錄TOC\o"1-1"\h\z\u前言 3一、商圈和地區(qū)進行關(guān)聯(lián) 4二、其他頁面顯示購買記錄的函數(shù) 5三、多貨幣解決方案 6四、仿淘寶商品詳細頁實現(xiàn)尺碼顏色關(guān)聯(lián)顯示庫存 12五、仿淘寶商品詳細頁加入購物車效果 14六、ecshop加入購物車效果(各個頁面) 22七、商品列表頁面“喜歡“功能實現(xiàn) 29八、商品列表也顯示獲贈消費積分 32九、分析ecshop里的$GLOBALS 37十、解決選擇屬性直接就是屬性價格不需要在原價基礎(chǔ)上加價 38十一、商品詳細頁下載商品介紹相關(guān)圖片 39十二、實現(xiàn)后臺二次開發(fā)后功能模塊仍然可以分配權(quán)限 41十三、ecshop調(diào)用bbs數(shù)據(jù) 42十四、整理了一個獲取用戶等級的函數(shù) 43十五、商品頁顯示具體屬性排序 44十六、解決ecshop新建頁面分頁問題 49十七、剛修改的偽靜態(tài)分類URL 52十八、ecshop批發(fā)銷售 66十九、網(wǎng)銀支付直通插件實現(xiàn)方法 69二十、商品列表頁多圖切換的實現(xiàn) 75二十一、完善論壇發(fā)布的qq登錄插件 77二十二、倒計時代碼 78二十三、關(guān)于ecshop回調(diào)函數(shù)應(yīng)用 83二十四、商品內(nèi)容頁加訂單留言功能分析 84二十五、有關(guān)商品詳細頁是常規(guī)顯示還是顯示宣傳頁的實現(xiàn)方法 85二十六、后臺添加搜索功能講解 87二十七、分享ec搜索出現(xiàn)相關(guān)商品的效果滑動效果(模仿百度) 88二十八、修改注冊發(fā)送郵件(更新) 94二十九、新增加一調(diào)用編輯器函數(shù) 97三十、簡單實現(xiàn)各個頁面都可顯示友情鏈接 97三十一、Ecshop系統(tǒng)框架分析 99三十二、二次開發(fā)技術(shù)共享后臺郵件群發(fā)共享 100三十三、ecshop內(nèi)頁調(diào)用友情鏈接 100三十四、項目要求在后臺商品分類添加圖片的功能。 102三十五、分類按照拼音第一字母排序顯示實現(xiàn) 102三十六、獲取分類的一級分類和二級分類 106三十七、如何調(diào)用解決列表的購買數(shù)量 107三十八、詳情頁調(diào)評論次數(shù) 108三十九、關(guān)于購買數(shù)量訂單數(shù)量 109四十、Ecshopajax應(yīng)用討論 109四十一、調(diào)用當前分類或當前分類的下級分類函數(shù) 115四十二、在商品列表顯示購買記錄 118四十三、ajax更新購物車數(shù)量 118四十四、PHP導(dǎo)出excle數(shù)據(jù) 123四十五、頁面多倒計時顯示最新修改 125四十六、關(guān)于lbi文件控制原理分析 129四十七、頁面瀏覽歷史圖片調(diào)用分析 130前言2008年我們開始接觸ecshop二次開發(fā),為電子商務(wù)中小企業(yè)提供技術(shù)服務(wù)是我們的宗旨,一路走來,我們服務(wù)客戶的同時把我們一些技術(shù)解決辦法進行整理、發(fā)布,并通過齊老師的審核,如有錯誤或不嚴謹?shù)牡胤綒g迎網(wǎng)友們拍磚指正。一、商圈和地區(qū)進行關(guān)聯(lián)目前系統(tǒng)地區(qū)支持四級分類,但是有時候客戶要求五級比如中國-陜西-西安-碑林-php服務(wù)中心商圈實現(xiàn)方法異常簡單我們只需要修改admin下templates下area_list.htm{if$region_typeeq'0'}{$lang.add_country}:{elseif$region_typeeq'1'}{$lang.add_province}:{elseif$region_typeeq'2'}{$lang.add_city}:{elseif$region_typeeq'3'}{$lang.add_cantonal}:{elseif$region_typeeq'4'}添加商圈:{/if}
四十一行
{if$region_type<4}3改成4
通過以上方式就可實現(xiàn)二、其他頁面顯示購買記錄的函數(shù)functionget_bought_notes(){
$sql='SELECTu.user_name,og.goods_number,og.goods_id,og.goods_name,oi.shipping_name,oi.invoice_no,oi.add_time,IF(oi.order_statusIN(2,3,4),0,1)ASorder_status'.
'FROM'.$ecs->table('order_info').'ASoiLEFTJOIN'.$ecs->table('users').'ASuONoi.user_id=u.user_id,'.$ecs->table('order_goods').'ASog'.
'WHEREoi.order_id=og.order_idAND'.time().'-oi.add_time<2592000
ORDERBYoi.add_timeDESCLIMIT5';
$bought_notes=$db->getAll($sql);
foreach($bought_notesas$idx=>$value)
{
$goods_id=$value['goods_id'];
$bought_notes[$idx]['goods_thumb']=$db->getOne("selectgoods_thumbfrom".$ecs->table('goods')."wheregoods_id='$goods_id'");
}
return$bought_notes;}
<!--{foreachfrom=$bought_notesitem=bought}-->
<divclass="leftdown_one">
<divclass="one_pic"><ahref="goods.php?id={$bought.goods_id}">
<imgsrc="{$bought.goods_thumb}"width="49"height="49"/></a></div>
<ulclass="leftdown_words">
<li><spanstyle="color:#b3ce00">{$bought.user_name}</span>拍下了:</li>
<listyle="color:#e70000">{$bought.goods_name}</li>
<li>{$bought.shipping_name}:{$bought.invoice_no}</li>
</ul>
</div>
<!--{/foreach}-->
三、多貨幣解決方案首先在我們的后臺網(wǎng)店設(shè)置里要添加匯率轉(zhuǎn)換的功能,如何添加網(wǎng)店功能自己摸索一下,你要把添加的功能插入表里。如圖:
我們的匯率都是和美元進行轉(zhuǎn)換的。開始前臺實現(xiàn):首先我們在首頁加上多語言的鏈接如圖:我們看下url<UL><LI><Ahref="{$url_head}¤cy=USD"><IMGsrc="images/USD.gif">USDollar</A></LI><LI><Ahref="{$url_head}¤cy=EUR"><IMGsrc="images/EUR.gif">Euro</A></LI><LI><Ahref="{$url_head}¤cy=GBP"><IMGsrc="images/GBP.gif">BritishPound</A></LI><LI><Ahref="{$url_head}¤cy=CNY"><IMGsrc="images/CNY.gif">ChinaRMB</A></LI><LI><Ahref="{$url_head}¤cy=AUD"><IMGsrc="images/AUD.gif">AustrilianDollar</A></LI></UL>這個{$url_head}
我是重新建了一個文件conn.php放到首頁,每個文件調(diào)用。//路徑處理
$url_this="[url=http://]http://".$_SERVER[/url]['HTTP_HOST'].$_SERVER['PHP_SELF']."?id=".$_GET['id'];$smarty->assign("url_head",$url_this);3、我們發(fā)現(xiàn)都是在每個頁面后面?zhèn)髁艘淮蝕et值,那么在那接這些get值呢,我們肯定要找每個頁面的共同文件,不難想到init.php。我在init.php的最后加入
<selectname="hbxz"id="hbxz"
onChange="changhb(this.value)">
<optionvalue="USD">USDollars</option>
<optionvalue="GBP"
>GBP</option>
<optionvalue="AUD">AUG</option>
<optionvalue="EUR">Euro</option>
<optionvalue="CAD"
>CAD</option>
<optionvalue="HKD"
>HKD</option>
</select><script>functionchanghb(kk){location.href='<?phpecho"http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']."?id=".@$_GET['id'];?>¤cy='+kk;}</script[/code]這個代碼大家明白吧,我接到get值后,給了session,如果session不存在話。我們默認就是usd這樣每個頁面都可以獲得當前的session值
。4、我們通過以上操作至少在每個頁面可以搞定客戶選的貨幣是什么,下來我們就考慮如何解決顯示問題,如果每個頁面都修改顯示goods價格那多麻煩啊,我們熟悉ecshop的朋友不難想到我們所有顯示的價格都是在一個函數(shù)里進行里處理,這應(yīng)該感謝官方的技術(shù)人員代碼寫的好。當然是lib_common.php里得price_format()這個函數(shù),
我們想一下,如果在這搞定是不是所有顯示都搞定了我們就從這入手
以下是我修改后的函數(shù)functionprice_format($price,$change_price=true){$currency=$_SESSION['currency'];$rate=explode(',',$GLOBALS['_CFG']['rate']);if($currency=='USD'){$price=$price*$rate[0];}if($currency=='CNY'){$price=$price*$rate[3];}if($currency=='EUR'){$price=$price*$rate[1];}if($currency=='GBP'){$price=$price*$rate[2];}if($currency=='AUD'){$price=$price*$rate[4];}if($change_price&&defined('ECS_ADMIN')===false){switch($GLOBALS['_CFG']['price_format']){case0:$price=number_format($price,2,'.','');break;case1://保留不為0的尾數(shù)$price=preg_replace('/(.*)(\\.)([0-9]*?)0+$/','\1\2\3',number_format($price,2,'.',''));if(substr($price,-1)=='.'){$price=substr($price,0,-1);}break;case2://不四舍五入,保留1位$price=substr(number_format($price,2,'.',''),0,-1);break;case3://直接取整$price=intval($price);break;case4://四舍五入,保留1位$price=number_format($price,1,'.','');break;case5://先四舍五入,不保留小數(shù)$price=round($price);break;}}else{$price=number_format($price,2,'.','');}switch($currency){case'USD':returnsprintf($GLOBALS['_CFG']['currency_format'],$price);break;case'CNY':returnsprintf($GLOBALS['_CFG']['cprice_format'],$price);break;case'EUR':returnsprintf($GLOBALS['_CFG']['aprice_format'],$price);break;case'GBP':returnsprintf($GLOBALS['_CFG']['ybprice_format'],$price);break;case'AUD':returnsprintf($GLOBALS['_CFG']['aoprice_format'],$price);break;}}$rate=explode(',',$GLOBALS['_CFG']['rate']);
這句是從數(shù)據(jù)庫獲得我們當時的參數(shù)然后我們計算,同時返回值的時候我們用了系統(tǒng)設(shè)置的符號解決問題,前臺就這樣搞定。5、有關(guān)交易。后臺的操作我做簡單的介紹,我們只是解決了顯示問題,其實我們實質(zhì)的數(shù)據(jù)還是美元,在我們提交訂單的時候,我們在order_goods表加倆個字段一個是客戶選的貨幣方式,這樣生成訂單后,當我進入我的會員中心我依然可以看到我購買人民幣是多少錢,我們讀取數(shù)據(jù)庫的方式進行換算,另外一個字段是我們換算后的金額。當然我們之前美元的總金額都是在的。在支付的時候我們給貝寶付參數(shù),就是貨幣類型。四、仿淘寶商品詳細頁實現(xiàn)尺碼顏色關(guān)聯(lián)顯示庫存效果如下:goods.dwt修改如何下:
<!--{foreachfrom=$spec.valuesitem=valuekey=key}--><a{if$keyeq0}class="cattsel"{/if}onclick="changeAtt(this,{$value.id},{$goods.goods_id})"href="javascript:;"name="{$value.id}"title="[{if$value.pricegt0}{$lang.plus}{elseif$value.pricelt0}{$lang.minus}{/if}{$value.format_price|abs}]">{$value.label}<inputstyle="display:none"id="spec_value_{$value.id}"type="radio"name="spec_{$spec_key}"value="{$value.id}"{if$keyeq0}checked{/if}/></a><!--{/foreach}-->
在顯示詳細信息合適的地方加<fontstyle="color:#CCCCCC;">(庫存:<fontid="shows_number">{$goods.goods_number}{$goods.measure_unit}</font>)</font>這是動態(tài)加載庫存的地方
選擇打鉤這個樣式論壇有人發(fā)過也不是很難我不在詳細貼出在goods.dwt加js代碼;functionchangeAtt(t,a,goods_id){t.lastChild.checked='checked';for(vari=0;i<t.parentNode.childNodes.length;i++){if(t.parentNode.childNodes[i].className=='cattsel'){t.parentNode.childNodes[i].className='';}}t.className="cattsel";varformBuy=document.forms['ECS_FORMBUY'];spec_arr=getSelectedAttributes(formBuy);Ajax.call('goods.php?act=get_products_info','id='+spec_arr+'&goods_id='+goods_id,shows_number,'GET','JSON');changePrice();}functionshows_number(result){if(duct_number!=undefined){$('shows_number').innerHTML=duct_number+'件';}else{$('shows_number').innerHTML='未設(shè)置'}}打開goods.php添加70行左右吧if(!empty($_REQUEST['act'])&&$_REQUEST['act']=='get_products_info'){include('includes/cls_json.php');$json=newJSON;//$res=array('err_msg'=>'','result'=>'','qty'=>1);$spce_id=$_GET['id'];$goods_id=$_GET['goods_id'];$row=get_products_info($goods_id,explode(",",$spce_id));//$res=array('err_msg'=>$goods_id,'id'=>$spce_id);die($json->encode($row));}五、仿淘寶商品詳細頁加入購物車效果仿淘寶商品詳細頁加入購物車效果,效果大家應(yīng)該都知道,如圖:
實現(xiàn)方法:
goods.dwt頁面
<ahref="javascript:addToCart({$goods.goods_id},0,1)"><imgsrc="images/bnt_cat.gif"/></a>和默認的鏈接有點點區(qū)別大家對比添加
要顯示的層添加到這個葉面的底部<divclass="cartSure"id="cartSureBox"style="display:none;"><divclass="btn"><ahref="javascript:;"onclick="closeTipBox();">關(guān)閉</a></div><divclass="mesgCon"><h3>寶貝已成功添加到購物車!</h3><div>購物車共有<spanid="ECS_GOODS_NUMBER"></span>種商品合計:<spanid="ECS_GOODS_PRICE"></span></div><br><inputtype="image"src="images/btn_pay.gif"/></div></div>我把樣式也貼出來供大家參考.cartSure{position:absolute;left:0;top:545px;width:405px;height:90px;z-index:999;background:url(images/cartSure_bg.gif)00no-repeat;font-size:12px;}.mesgCon{float:left;background:url(images/mesg.png)no-repeat18px9px;color:#666;line-height:21px;padding:000100px;width:320px;}.mesgConh3{float:left;width:320px;color:#333;font-size:14px;margin:-1px06px;height:auto;line-height:20px;background:none;text-align:left;padding:0;font-weight:bold;}.mesgConinput{float:left;margin:011px00}.mesgCondiv{float:left;font-size:13px}.mesgCondivspan{font-size:14px;font-weight:bold;color:#F80}.cartSure.btn{float:left;padding:5px;width:390px}.cartSure.btna{background:url(images/close_bg.gif)no-repeat00;float:right;height:13px;overflow:hidden;text-indent:-5000px;width:38px;}.cartSure.btna:hover{background-position:0-12px}打開js/common.js文件
修改addToCart函數(shù)修改后:functionaddToCart(goodsId,parentId,is_ajax){vargoods=newObject();varspec_arr=newArray();varfittings_arr=newArray();varnumber=1;varformBuy=document.forms['ECS_FORMBUY'];varquick=0;//檢查是否有商品規(guī)格if(formBuy){spec_arr=getSelectedAttributes(formBuy);if(formBuy.elements['number']){number=formBuy.elements['number'].value;}quick=1;}goods.quick=quick;goods.spec=spec_arr;goods.goods_id=goodsId;goods.number=number;goods.parent=(typeof(parentId)=="undefined")?0:parseInt(parentId);if(is_ajax==1){Ajax.call('flow.php?step=add_to_cart','goods='+goods.toJS**tring(),addToCartResp**e_ajax,'POST','JSON');}else{Ajax.call('flow.php?step=add_to_cart','goods='+goods.toJS**tring(),addToCartResp**e,'POST','JSON');}}添加幾個js函數(shù)/***處理添加商品到購物車的反饋信息*/functionaddToCartResp**e_ajax(result){if(result.error>0){//如果需要缺貨登記,跳轉(zhuǎn)if(result.error==2){if(confirm(result.message)){location.href='user.php?act=add_booking&id='+result.goods_id+'&spec='+duct_spec;}//opendiv_booking();}//沒選規(guī)格,彈出屬性選擇框elseif(result.error==6){openSpeDiv(result.message,result.goods_id,result.parent);}else{alert(result.message);}}else{varcartInfo=document.getElementById('ECS_CARTINFO');varcart_url='flow.php?step=cart';if(cartInfo){cartInfo.innerHTML=result.content;}if(result.one_step_buy=='1'){location.href=cart_url;}else{switch(result.confirm_type){case'1':if(confirm(result.message))location.href=cart_url;break;case'2':if(!confirm(result.message))location.href=cart_url;break;case'3':divTipmiddle(result);//refresh_cart();document.getElementById('jdiv').innerHTML=result.cj;break;default:break;}}}}//購物車提示框JSfunctioncloseTipBox(){document.getElementById('cartSureBox').style.display="none";}functiondivTipmiddle(result){openTipBox(result);vara=document.getElementById("cartSureBox");a.style.left=(document.body.clientWidth/2-a.clientWidth/2+245)+"px";}functionopenTipBox(result){document.getElementById('ECS_GOODS_PRICE').innerHTML=result.goods_price;document.getElementById('ECS_GOODS_NUMBER').innerHTML=result.goods_number;document.getElementById('cartSureBox').style.display="block";}functionopendiv_booking(){document.getElementById('buyTip2').style.display="block";}//購物車提示框JSfunctioncloseTipBox(){document.getElementById('cartSureBox').style.display="none";}打開flow.php167行左右添加/*取得商品列表,計算合計*/$cart_goods=get_cart_goods();//$smarty->assign('total',$cart_goods['total']);$result['goods_price']=$cart_goods['total']['goods_price'];$result['goods_number']=$cart_goods['total']['real_goods_count'];根據(jù)以上操作可實現(xiàn)六、ecshop加入購物車效果(各個頁面)1、后臺網(wǎng)店設(shè)置購物車確定提示
選擇為2、打開js/common.js
104行就是case'1'
替換之前的if(confirm(result.message))location.href=cart_url;為opencartDiv(result.shop_price,result.goods_name,result.goods_thumb,result.goods_brief,result.goods_id,result.goods_price,result.goods_number);3、復(fù)制functionopencartDiv(price,name,pic,goods_brief,goods_id,total,number){var_id="speDiv";varm="mask";if(docEle(_id))document.removeChild(docEle(_id));if(docEle(m))document.removeChild(docEle(m));//計算上卷元素值varscrollPos;if(typeofwindow.pageYOffset!='undefined'){scrollPos=window.pageYOffset;}elseif(typeofpatMode!='undefined'&&patMode!='BackCompat'){scrollPos=document.documentElement.scrollTop;}elseif(typeofdocument.body!='undefined'){scrollPos=document.body.scrollTop;}vari=0;varsel_obj=document.getElementsByTagName('select');while(sel_obj[i]){sel_obj[i].style.visibility="hidden";i++;}//新激活圖層varnewDiv=document.createElement("div");newDiv.id=_id;newDiv.style.position="absolute";newDiv.style.zIndex="10000";newDiv.style.width="500px";newDiv.style.height="270px";newDiv.style.top=(parseInt(scrollPos+200))+"px";newDiv.style.left=(parseInt(document.body.offsetWidth)-400)/2+"px";//屏幕居中newDiv.style.background="#fff";newDiv.style.border="5pxsolid#37911C";varhtml='';//生成層內(nèi)內(nèi)容html='<divstyle="font-size:14;background:#8cc67b;width:480px;height:40px;line-height:40px;padding:010px;font-size:14px;"><spanstyle="float:left;font-weight:bold">產(chǎn)品購買</span><ahref=\'javascript:cancel_div()\'style="float:right;padding:026px00;background:url(themes/popocai/images/ico_closebig.gif)rightcenterno-repeat;cursor:pointer;">關(guān)閉</a></div><divclass="cartpopDiv"><divclass="toptitle"><ahref="goods.php?id='+goods_id+'"class="pic"><imgsrc='+pic+'width="100"height="100"/></a><p><fontstyle="font-weight:bold">'+name+'</font>
<fontstyle="color:#ff6701">'+price+'</font><br>'+goods_brief+'</p></div>';html+='<divclass="coninfo">';html+='<tablecellpadding="0"height="30"><tr><tdalign="center">購物車共有<fontstyle="color:#ff6701;"><strong>'+number+'</strong></font>種商品:合計:<fontstyle="color:#ff6701;"><strong>'+total+'</strong></font></td></tr>';html+='</table>';html+='</div>';html+="<divstyle='float:left;width:450px;text-align:center;padding:15px00;'><ahref='index.php'><imgsrc='themes/popocai/images/goon_ico.gif'></a>
<ahref='flow.php'><imgsrc='themes/popocai/images/jsico.gif'></a></div>";html+='</div></div>';newDiv.innerHTML=html;document.body.appendChild(newDiv);//mask圖層varnewMask=document.createElement("div");newMask.id=m;newMask.style.position="absolute";newMask.style.zIndex="9999";newMask.style.width=document.body.scrollWidth+"px";newMask.style.height=document.body.scrollHeight+"px";newMask.style.top="0px";newMask.style.left="0px";newMask.style.background="#FFF";newMask.style.filter="alpha(opacity=30)";newMask.style.opacity="0.40";document.body.appendChild(newMask);}到這個common.js里
大家看了會覺的這個函數(shù)很熟悉這就是這個文件里的我只是拿出來修改了一下,當然我們可以自己重新寫彈出層比如用jquery
4、打開flow.php
181行左右加入$rows=$GLOBALS['db']->getRow("selectgoods_brief,shop_price,goods_name,goods_thumbfrom".$GLOBALS['ecs']->table('goods')."wheregoods_id=".$goods->goods_id);$result['shop_price']=price_format($rows['shop_price']);$result['goods_name']=$rows['goods_name'];$result['goods_thumb']=$rows['goods_thumb'];$result['goods_brief']=$rows['goods_brief'];$result['goods_id']=$goods->goods_id;$sql='SELECTSUM(goods_number)ASnumber,SUM(goods_price*goods_number)ASamount'.'FROM'.$GLOBALS['ecs']->table('cart')."WHEREsession_id='".SESS_ID."'ANDrec_type='".CART_GENERAL_GOODS."'";$rowss=$GLOBALS['db']->GetRow($sql);$result['goods_price']=price_format($rowss['amount']);$result['goods_number']=$rowss['number'];就是加入購物車成功的判斷里面5、我把我們做的樣式和圖片也貼出來不是很漂亮了/*購物車彈出效果*/.cartpopDiv{width:450px;padding:025px;float:left;}.toptitle{width:450px;float:left;padding:16px0;background:url(../images/cartpop_bg.gif)leftbottomrepeat-x;}.toptitlea.pic{float:left;width:100px;height:100px;overflow:hidden;}.toptitlep{float:right;width:350px;font-size:14px;line-height:20px;height:58px;overflow:hidden;}.coninfo{float:left;width:450px;padding:4px06px;background:url(../images/cartpop_bg.gif)leftbottomrepeat-x;font-size:14px;}.coninfotable{float:left;width:100%;border:none;color:#a00;}.coninfotabletd.left{width:82px;text-align:right;font-weight:bold;}.coninfotabletd.leftspan,.toptitlepa{color:#333}.coninfotabletd.gray{color:#999}.coninfotabletdstrong{color:#f00}.coninfotabletdfont{font-size:18px}以上就是我的實現(xiàn)方法七、商品列表頁面“喜歡“功能實現(xiàn)1、通過后臺執(zhí)行sq執(zhí)行ALTERTABLE`ecs_goods`ADD`love`INT(10)NOTNULLDEFAULT'0';在goods表添加一新的字段。2、打開category.php找到category_get_goods這個函數(shù)把要顯示的love也給放進去會程序的網(wǎng)友應(yīng)該明白意思。
/*獲得商品列表*/
$sql='SELECTg.goods_id,g.goods_name,g.goods_name_style,g.market_price,g.love,g.is_new,g.is_best,g.is_hot,g.shop_priceASorg_price,'.
"IFNULL(mp.user_price,g.shop_price*'$_SESSION[discount]')ASshop_price,mote_price,g.goods_type,".
'mote_start_date,mote_end_date,g.goods_brief,g.goods_thumb,g.goods_img'.
'FROM'.$GLOBALS['ecs']->table('goods').'ASg'.
'LEFTJOIN'.$GLOBALS['ecs']->table('member_price').'ASmp'.
"ONmp.goods_id=g.goods_idANDmp.user_rank='$_SESSION[user_rank]'".
"WHERE$where$extORDERBY$sort$order";
$arr[$row['goods_id']]['love']
=$row['love'];
$arr[$row['goods_id']]['name']
=$row['goods_name'];3、打開goods_list.lbi
<ahref="javascript:;"
onClick="change_love({$goods.goods_id})">喜歡</a><fontid="show_loves_{$goods.goods_id}">{$goods.love}</font>一定是在foreach循環(huán)里。在這個lbi底部加<script>functionchange_love(goods_id){varLastsend=document.getCookie('ECS_auction_Lastsend_'+goods_id);//alert(goods_id);if(Lastsend==null){Ajax.call('goods.php?act=chage_usenum','id='+goods_id,chage_lovenum_Resp**e,'POST','JSON');document.setCookie('ECS_auction_Lastsend_'+goods_id,goods_id);}else{window.location.href='goods.php?id='+goods_id;}}functionchage_lovenum_Resp**e(result){document.getElementById("show_loves_"+result.id).innerHTML=result.usenum;}</script>4、打開goods.php
36行左右加入if($_REQUEST['act']=='chage_usenum'){
include('includes/cls_json.php');
$json
=newJSON;
$res
=array('err_msg'=>'','result'=>'','qty'=>1);$id=$_REQUEST['id'];$sql=$GLOBALS['db']->query("update".$GLOBALS['ecs']->table('goods')."setlove=love+1wheregoods_id='$id'");$res['id']=$id;$res['usenum']=$GLOBALS['db']->getOne("selectlovefrom".$GLOBALS['ecs']->table('goods')."wheregoods_id='$id'");die($json->encode($res));}八、商品列表也顯示獲贈消費積分有的客戶會要求把每個商品的獲贈積分顯示在商品列表頁:1、打開category.php找到category_get_goods函數(shù)修改為functioncategory_get_goods($children,$brand,$min,$max,$ext,$size,$page,$sort,$order){$display=$GLOBALS['display'];$where="g.is_on_sale=1ANDg.is_alone_sale=1AND"."g.is_delete=0AND($childrenOR".get_extension_goods($children).')';if($brand>0){$where.="ANDg.brand_id=$brand";}if($min>0){$where.="ANDg.shop_price>=$min";}if($max>0){$where.="ANDg.shop_price<=$max";}/*獲得商品列表*/$sql='SELECTg.goods_id,g.goods_name,g.goods_name_style,g.market_price,g.is_new,g.is_best,g.is_hot,g.shop_priceASorg_price,IF(g.give_integral>-1,g.give_integral,g.shop_price)asintegral,'."IFNULL(mp.user_price,g.shop_price*'$_SESSION[discount]')ASshop_price,mote_price,g.goods_type,".'mote_start_date,mote_end_date,g.goods_brief,g.goods_thumb,g.goods_img'.'FROM'.$GLOBALS['ecs']->table('goods').'ASg'.'LEFTJOIN'.$GLOBALS['ecs']->table('member_price').'ASmp'."ONmp.goods_id=g.goods_idANDmp.user_rank='$_SESSION[user_rank]'"."WHERE$where$extORDERBY$sort$order";$res=$GLOBALS['db']->selectLimit($sql,$size,($1)*$size);$arr=array();while($row=$GLOBALS['db']->fetchRow($res)){$goods_id=$row['goods_id'];$sql2="selectsum(goods_number)ascountfrom".$GLOBALS['ecs']->table('order_goods')."wheregoods_id='".$goods_id."'";$buy_num=$GLOBALS['db']->getOne($sql2);if($row['promote_price']>0){$promote_price=bargain_price($row['promote_price'],$row['promote_start_date'],$row['promote_end_date']);}else{$promote_price=0;}/*處理商品水印圖片*/$watermark_img='';if($promote_price!=0){$watermark_img="watermark_promote_small";}elseif($row['is_new']!=0){$watermark_img="watermark_new_small";}elseif($row['is_best']!=0){$watermark_img="watermark_best_small";}elseif($row['is_hot']!=0){$watermark_img='watermark_hot_small';}if($watermark_img!=''){$arr[$row['goods_id']]['watermark_img']=$watermark_img;}$arr[$row['goods_id']]['goods_id']=$row['goods_id'];if($display=='grid'){$arr[$row['goods_id']]['goods_name']=$GLOBALS['_CFG']['goods_name_length']>0?sub_str($row['goods_name'],$GLOBALS['_CFG']['goods_name_length']):$row['goods_name'];}else{$arr[$row['goods_id']]['goods_name']=$row['goods_name'];}$arr[$row['goods_id']]['count']=$buy_num;$arr[$row['goods_id']]['name']=$row['goods_name'];/*修正積分:轉(zhuǎn)換為可使用多少積分(原來是可以使用多少錢的積分)*/$arr[$row['goods_id']]['integral']=round($row['integral'],0);$arr[$row['goods_id']]['goods_brief']=$row['goods_brief'];$arr[$row['goods_id']]['goods_style_name']=add_style($row['goods_name'],$row['goods_name_style']);$arr[$row['goods_id']]['market_price']=price_format($row['market_price']);$arr[$row['goods_id']]['shop_price']=price_format($row['shop_price']);$arr[$row['goods_id']]['type']=$row['goods_type'];$arr[$row['goods_id']]['promote_price']=($promote_price>0)?price_format($promote_price):'';$arr[$row['goods_id']]['goods_thumb']=get_image_path($row['goods_id'],$row['goods_thumb'],true);$arr[$row['goods_id']]['goods_img']=get_image_path($row['goods_id'],$row['goods_img']);$arr[$row['goods_id']]['url']=build_uri('goods',array('gid'=>$row['goods_id']),$row['goods_name']);}return$arr;}2、模板部分直接加{$egral}積分九、分析ecshop里的$GLOBALS搞ec二次開發(fā)或研究ec的一些網(wǎng)友經(jīng)常在論壇里提到$GLOBALS['db'];$GLOBALS['ecs'];在那定義的等帖子。下來就$GLOBALS我說一點:
想搞明白的朋友執(zhí)行這段代碼<?php$xaphp='西安php服務(wù)中心';echo$GLOBALS['xaphp'];?>瀏覽器當然會打印出
西安php服務(wù)中心
這就是$GLOBALS的作用
“就像大部份的結(jié)構(gòu)化程序,有所謂的全局變量與局部變量,PHP
在這方面也是有相同的處理方式。
在
PHP
的程序執(zhí)行時,系統(tǒng)會在內(nèi)存中保留一塊全局變量的區(qū)域。實際運用時,可以透過
$GLOBALS["變量名稱"]
將需要的變量取出。在用戶自定的函數(shù)或程序中,就可以用
$GLOBALS
數(shù)組取出需要的變量在ec里大家打開init.php會看到$db=newcls_mysql($db_host,$db_user,$db_pass,$db_name);定義了這樣的類
顧名思義$GLOBALS['db']以上觀點是我個人的理解。十、解決選擇屬性直接就是屬性價格不需要在原價基礎(chǔ)上加價這幾年經(jīng)常遇到這個需求,就是我們后臺添加了屬性前臺選擇屬性,客戶要求這個價格就是屬性里的價格,而不需要在原來基礎(chǔ)上加價。
如圖所示:解決方案:我之前在論壇就有對get_final_price這個函數(shù)分析,他非常重要,我們加入購物車商品價格都要通過他來處理,
比如(促銷,團購,優(yōu)惠。。。。),這樣讓我們想到這個函數(shù)。
lib_common.php打開找到這個函數(shù)
只需要if($is_spec_price){if(!empty($spec)){$spec_price=spec_price($spec);$final_price+=$spec_price;}}
改成if($is_spec_price){if(!empty($spec)){$spec_price=spec_price($spec);$final_price=$spec_price;}}即可,我還是建議
二次開發(fā)人員可記住這個函數(shù)有很多用處。十一、商品詳細頁下載商品介紹相關(guān)圖片此功能一般搞批發(fā)的會有用,他可以點擊copy直接下載商品詳細頁的商品描述相關(guān)圖片。因為代碼設(shè)計到具體的字符串切分,所以每個網(wǎng)店形式不一定一樣,我貼出來供大家參考應(yīng)用。1、打開goods.dwt適當位置加<ahref="goods.php?id={$goods_id}&act=export">copy</a>2、打開goods.php加入if(!empty($_REQUEST['act'])&&$_REQUEST['act']=='export'){$id=$_GET['id'];$goods=get_goods_info($goods_id);$goods_desc=$goods['goods_desc'];include_once('whadmin/includes/cls_phpzip.php');$zip=newPHPZip;$array=explode("\n",$goods_desc);foreach($arrayas$value){preg_match("#<pstyle=\"text-align:center;\">(.*)</p>#",$value,$out);preg_match("#<imgsrc=\"/(.*)\"width#",$out[1],$out_img);if($out_img[1]){//echoROOT_PATH.$out_img[1]."<br>";$zip->add_file(file_get_contents(ROOT_PATH.$out_img[1]),$out_img[1]);}}header("Content-Disposition:attachment;filename=goods_img.zip");he
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中央廚房合作合同范本
- Module7 Unit2 教學(xué)設(shè)計2024-2025學(xué)年外研版英語九年級上冊
- 包裝制品訂購合同范本
- 動力柜安裝合同范本
- 3人購車合同范例
- 公寓前臺轉(zhuǎn)租合同范本
- 冷鏈運輸合同范本簡易
- 加工裝飾合同范本
- 出資贈與協(xié)議合同范例范例
- 第1課 兩彈元勛國脊梁 許身國威壯河山-《鄧稼先》教學(xué)設(shè)計七年級語文下冊同步高效課堂(統(tǒng)編版2024)
- 住宅鋼筋和混凝土用量限額設(shè)計參考指標(2021年)
- 高血壓腎病護理查房課件
- 基坑開挖影響周邊環(huán)境與建筑物研究
- 《民事訴訟法》課件
- 錦繡金華完整版本
- 環(huán)保合規(guī)與企業(yè)風險管理
- 子宮內(nèi)膜癌教學(xué)查房
- 預(yù)防深靜脈血栓VTE持續(xù)改進QCC品管圈PDCA案例3例
- 水環(huán)境綜合治理服務(wù)方案(技術(shù)標)
- 【原創(chuàng)】頭腦特工隊開的那些心理學(xué)腦洞
- 美甲藝術(shù)全套教學(xué)課件
評論
0/150
提交評論