Board logo

标题: [共享] ECSHOP全站调用购物车显示商品图片,价格,数量,总价等详细信息 [打印本页]

作者: adcode    时间: 2012-8-14 14:59     标题: ECSHOP全站调用购物车显示商品图片,价格,数量,总价等详细信息

本帖最后由 adcode 于 2012-8-14 15:01 编辑

参考: http://bbs.ecshop.com/viewthread.php?tid=154246&highlight=%B9%BA%CE%EF%B3%B5

将步骤重新梳理了一下:

支持原创,感谢分享!

效果图:

ecshop.jpg
2012-8-14 14:51


第一步: 在/thmes/你的模板/library/
新建一个库文件:  cart_info.lbi
代码:
  1. <!-- {if $goods} -->
  2. <div class="cat_ul" onMouseOver="this.className='cat_ul on'" onMouseOut="this.className='cat_ul'">
  3. <div class="clearfix divt">
  4. <p class="clearfix ptt">
  5. <span class="cart_sp"><em class="left">{$goods_number} 件</em><em class="right"> ¥{$order_amount} 元</em></span><a href="flow.php" class="js">去结算</a>
  6. </p></div>
  7. <ul class="cart_box clearfix">
  8. {foreach from=$goods item=goods name=goods key=key}
  9. <li {if $key%2 neq 0}class="clearfix nobk"{else} class="clearfix"{/if}>
  10. <span class="sgood left"><a href="{$goods.url}" ><img src="{$goods.goods_thumb}" alt="{$goods.goods_name}"></a></span>
  11. <p class="left sgoodc"><a class="name" href="{$goods.url}">{$goods.short_name}</a>
  12. <span>{$goods.goods_jj}</span>
  13. </p>
  14. <p class="right sgoodt">
  15. <span>{$goods.goods_price}×{$goods.goods_number}</span><a class="del" href="javascript:" onClick="deleteCartGoods({$goods.rec_id})">[删除]</a></p>
  16. </li>
  17. {/foreach}
  18. <li class="clearfix zllcart">
  19. <span class="ie6left">共 <em>{$goods_number}</em> 件 <span class="pipe">|</span> 价格总计:<em> ¥{$order_amount} 元</em></span><a href="flow.php" class="right">去购物车结算>></a>
  20. </li>
  21. </ul>
  22. </div>
  23. <!-- {else} -->
  24. <ul class="car_ul onp clearfix">
  25. <p class="clearfix ptt">暂无商品</p>
  26. <ul>
  27. <!-- {/if} -->
复制代码


文件下载: cart_info.rar (715 Bytes)

第二步打开: includes/lib_insert.php
大约102行
  1. function insert_cart_info() {
复制代码


一直到:

  1. /**
  2. * 调用指定的广告位的广告
复制代码


之间的代码全部替换为:

  1. /**
  2. * 调用购物车信息
  3. *
  4. * @access  public
  5. * @return  string
  6. */
  7. function insert_cart_info()
  8. {
  9.     $sql = 'SELECT c.*,g.goods_name,g.goods_thumb,g.goods_id,c.goods_number,c.goods_price' .
  10.            ' FROM ' . $GLOBALS['ecs']->table('cart') ." AS c ".
  11.                                          " LEFT JOIN ".$GLOBALS['ecs']->table('goods')." AS g ON g.goods_id=c.goods_id ".
  12.            " WHERE session_id = '" . SESS_ID . "' AND rec_type = '" . CART_GENERAL_GOODS . "'";
  13.     $row = $GLOBALS['db']->GetAll($sql);
  14.                 $arr = array();
  15.                 foreach($row AS $k=>$v)
  16.                 {
  17.                                 $arr[$k]['goods_thumb']  =get_image_path($v['goods_id'], $v['goods_thumb'], true);
  18.         $arr[$k]['short_name']   = $GLOBALS['_CFG']['goods_name_length'] > 0 ?
  19.                                                sub_str($v['goods_name'], $GLOBALS['_CFG']['goods_name_length']) : $v['goods_name'];
  20.                                 $arr[$k]['url']          = build_uri('goods', array('gid' => $v['goods_id']), $v['goods_name']);
  21.                                 $arr[$k]['goods_number'] = $v['goods_number'];
  22.                                 $arr[$k]['goods_name']   = $v['goods_name'];
  23.                                 $arr[$k]['goods_price']  = price_format($v['goods_price']);
  24.                                 $arr[$k]['rec_id']       = $v['rec_id'];
  25.                  }
  26.     $sql = 'SELECT SUM(goods_number) AS number, SUM(goods_price * goods_number) AS amount' .
  27.            ' FROM ' . $GLOBALS['ecs']->table('cart') .
  28.            " WHERE session_id = '" . SESS_ID . "' AND rec_type = '" . CART_GENERAL_GOODS . "'";
  29.     $row = $GLOBALS['db']->GetRow($sql);
  30.     if ($row)
  31.     {
  32.         $number = intval($row['number']);
  33.         $amount = floatval($row['amount']);
  34.     }
  35.     else
  36.     {
  37.         $number = 0;
  38.         $amount = 0;
  39.     }
  40.     $GLOBALS['smarty']->assign('str',sprintf($GLOBALS['_LANG']['cart_info'], $number, price_format($amount, false)));
  41.         $GLOBALS['smarty']->assign('goods',$arr);
  42.         $GLOBALS['smarty']->assign('goods_number',$number);
  43.         $GLOBALS['smarty']->assign('order_amount',$amount);
  44.     $output = $GLOBALS['smarty']->fetch('library/cart_info.lbi');
  45.     return $output;
  46. }
复制代码


第三步: 打开js/common.js
最后面添加:
  1. // 自定义购物车删除
  2. function deleteCartGoods(rec_id)
  3. {
  4. Ajax.call('delete_cart_goods.php', 'id='+rec_id, deleteCartGoodsResp**e, 'POST', 'JSON');
  5. }
  6. /**
  7. * 接收删除后返回的信息
  8. */
  9. function deleteCartGoodsResp**e(res)
  10. {
  11.   if (res.error)
  12.   {
  13.     alert(res.err_msg);
  14.   }
  15.   else
  16.   {
  17.       document.getElementById('ECS_CARTINFO').innerHTML = res.content;
  18.   }
  19. }
复制代码

其中的星号**替换为o+n+s 中间的+号去掉,这三个字母是被屏蔽的.
第四步: 打开 thmes/你的模板/style.css
最后添加:
  1. /*购物车*/
  2.    .cart{ position:absolute; z-index:9px; right:0px; _right:-5px; top:4px; width:190px; padding-right:5px; height:26px; line-height:26px;
  3.    }
  4.    .cart a.js{ text-indent:-999px; overflow:hidden; display:inline-block; height:26px; float:right; width:38px;}
  5.    .cart_sp { display:block; float:left; height:26px; line-height:26px; width:150px;}
  6.    .cart_sp .right {_width:70px; padding-right:10px;  text-align:right;}
  7.    .cart_sp .left {_width:70px;text-indent:30px;}
  8.    .cart_box { display:none;}
  9.    .on .cart_box { display:block; background:#fff; border:1px solid #ddd; width:300px; margin:5px 0 0 -106px; _margin:5px -8px 0 0;}
  10.    .ie6left {_float:left;}
  11.    .ptt {background:url(images/suning.png) no-repeat 0 -80px;}
  12.    .onp .ptt {text-indent:30px; }
  13.    .on .ptt,.onp .ptt {_float:right; _width:195px; background-position:0px -80px;}
  14.    .divt {_width:300px;}
  15.    .cart_box li { height:auto; text-indent:0px; padding:8px; color:#777; border-bottom:1px dashed #dedede; _height:48px;}
  16.    .cart_box li.nobk { background:#fafafa;}
  17.    .cart_box li p.sgoodc { width:163px; overflow:hidden;}
  18.    .cart_box li p.sgoodc span,.cart_box li p.sgoodt span,.cart_box li p a.del{ display:block; height:18px; line-height:18px; overflow:hidden;}
  19.    .cart_box li p.sgoodt { width:65px; float:right; text-align:right; overflow:hidden; color:#ff6600;}
  20.    .cart_box li p a.name { color:#333; text-decoration:none; height:22px; overflow:hidden;}
  21.    .cart_box li p a:hover.name,.zllcart a:hover.right { text-decoration:underline;}
  22.    .cart_box li p a.del { color:#777; text-decoration:none; margin-top:5px; }
  23.    .cart_box li p a:hover.del { color:#333; text-decoration:line-through;}
  24.    .cart_box li.zllcart { padding:0 8px; border-bottom:0;_height:24px;}
  25.    .zllcart em,.zllcart a.right { color:#ff6600;text-decoration:none;}
复制代码

第五步,在根目录 新建一个delete_cart_goods.php文件,
  1. <?php
  2. define('IN_ECS', true);
  3. require(dirname(__FILE__) . '/includes/init.php');
  4. include_once('includes/cls_json.php');
  5. $result = array('error' => 0, 'message' => '', 'content' => '', 'goods_id' => '');
  6. $json  = new JSON;
  7. if($_POST['id'])
  8. {
  9. $sql = 'DELETE FROM '.$GLOBALS['ecs']->table('cart')." WHERE rec_id=".$_POST['id'];
  10. $GLOBALS['db']->query($sql);
  11. }
  12. $sql = 'SELECT c.*,g.goods_name,g.goods_thumb,g.goods_id,c.goods_number,c.goods_price' .
  13.                          ' FROM ' . $GLOBALS['ecs']->table('cart') ." AS c ".
  14.                          " LEFT JOIN ".$GLOBALS['ecs']->table('goods')." AS g ON g.goods_id=c.goods_id ".
  15.                          " WHERE session_id = '" . SESS_ID . "' AND rec_type = '" . CART_GENERAL_GOODS . "'";
  16. $row = $GLOBALS['db']->GetAll($sql);
  17. $arr = array();
  18. foreach($row AS $k=>$v)
  19. {
  20.                 $arr[$k]['goods_thumb']  =get_image_path($v['goods_id'], $v['goods_thumb'], true);
  21.                 $arr[$k]['short_name']   = $GLOBALS['_CFG']['goods_name_length'] > 0 ?
  22.                                                                                                                                                                          sub_str($v['goods_name'], $GLOBALS['_CFG']['goods_name_length']) : $v['goods_name'];
  23.                 $arr[$k]['url']          = build_uri('goods', array('gid' => $v['goods_id']), $v['goods_name']);
  24.                 $arr[$k]['goods_number'] = $v['goods_number'];
  25.                 $arr[$k]['goods_name']   = $v['goods_name'];
  26.                 $arr[$k]['goods_price']  = price_format($v['goods_price']);
  27.                 $arr[$k]['rec_id']       = $v['rec_id'];
  28. }
  29. $sql = 'SELECT SUM(goods_number) AS number, SUM(goods_price * goods_number) AS amount' .
  30.                          ' FROM ' . $GLOBALS['ecs']->table('cart') .
  31.                          " WHERE session_id = '" . SESS_ID . "' AND rec_type = '" . CART_GENERAL_GOODS . "'";
  32. $row = $GLOBALS['db']->GetRow($sql);
  33. if ($row)
  34. {
  35.                 $number = intval($row['number']);
  36.                 $amount = floatval($row['amount']);
  37. }
  38. else
  39. {
  40.                 $number = 0;
  41.                 $amount = 0;
  42. }
  43. $GLOBALS['smarty']->assign('str',sprintf($GLOBALS['_LANG']['cart_info'], $number, price_format($amount, false)));
  44. $GLOBALS['smarty']->assign('goods',$arr);
  45. $GLOBALS['smarty']->assign('goods_number',$number);
  46. $GLOBALS['smarty']->assign('order_amount',$amount);
  47. $result['content'] = $GLOBALS['smarty']->fetch('library/cart_info.lbi');
  48. die($json->encode($result));
  49. ?>
复制代码


文件下载: delete_cart_goods.rar (940 Bytes)

使用下面的代码即可全站调用购物车:


  1. {insert_scripts files='transport.js'}
  2. <div class="cart" id="ECS_CARTINFO">
  3. {insert name='cart_info'}
复制代码

更新缓存即可!

附件: cart_info.rar (2012-8-14 14:52, 715 Bytes) / 下载次数 3638
http://bbs.ecshop.com/attachment.php?aid=53508&k=b57163dfbd4066b1b75ad63f18579472&t=1638513577&sid=5825YY

图片附件: ecshop.jpg (2012-8-14 14:51, 32.53 KB) / 下载次数 1168
http://bbs.ecshop.com/attachment.php?aid=53507&k=c846512cb6bfed188dcabb433f0ad0a9&t=1638513577&sid=5825YY



附件: delete_cart_goods.rar (2012-8-14 14:54, 940 Bytes) / 下载次数 3305
http://bbs.ecshop.com/attachment.php?aid=53509&k=03a9a17aa800067cd1019b9ddc672ca9&t=1638513577&sid=5825YY
作者: 岸上的鱼儿    时间: 2012-8-14 16:18

很不错的经验贴,谢谢分享
作者: binxl    时间: 2012-8-14 16:27

好 很不错
作者: hyh030    时间: 2012-8-14 17:09

提示: 作者被禁止或删除 内容自动屏蔽
作者: 模板开发    时间: 2012-8-14 18:22

提示: 作者被禁止或删除 内容自动屏蔽
作者: abcnic1    时间: 2012-8-15 08:33

支持了呢
作者: zg9171    时间: 2012-9-7 19:35

谢谢了 用上来
作者: hi_jerome    时间: 2012-9-10 20:33

谢谢啊,楼主大爱~
作者: hi_jerome    时间: 2012-9-10 20:34

楼主大爱,谢谢啦
作者: hi_jerome    时间: 2012-9-10 20:35

楼主niubility
作者: hi_jerome    时间: 2012-9-10 20:37

楼主英明,大爱无疆
作者: hi_jerome    时间: 2012-9-10 20:38

楼主斯嗷一戴斯 suaoyidesi
作者: wonahan    时间: 2012-9-11 14:22

路过看起来很不错
作者: yamasmart    时间: 2012-10-1 13:07

谢谢楼主 这个CSS为什么写的这么复杂
作者: 895741411    时间: 2012-10-18 10:04

支持共享
作者: qwiiiqw    时间: 2012-10-18 10:57

顶啊啊啊
作者: 35110912    时间: 2012-10-18 17:19

呵呵,一直在努力啊,学习
作者: dpsc    时间: 2012-10-25 10:12

ECSHOP全站调用购物车显示商品图片,价格,数量,总价等详细信息
作者: cswar2009    时间: 2012-11-5 15:13

不错 收藏了
作者: zhaojiyu    时间: 2012-11-6 14:25

全站调用购物车显示商品图片,价格,数量,总价等详细信息
作者: lvyg    时间: 2012-11-7 10:34

不错,感谢分享
作者: 忧伤的二蛋    时间: 2012-11-29 10:53

楼主牛逼
作者: kenye    时间: 2012-11-30 11:31

很不错,要收藏一下
作者: wonlange    时间: 2012-11-30 15:21

这个东西好!
作者: htmlreg    时间: 2012-12-8 20:59

果然很强大!!!!
作者: sunhxyz    时间: 2012-12-10 14:56

礼品册是怎么实现的
作者: wangzhi618    时间: 2012-12-12 10:42

本帖最后由 wangzhi618 于 2012-12-12 10:44 编辑

未命名-11.jpg
2012-12-12 10:44
未命名-1.jpg
2012-12-12 10:41

当购物车中有商品的时候 就错位 什么原因????

图片附件: 未命名-1.jpg (2012-12-12 10:41, 4.24 KB) / 下载次数 432
http://bbs.ecshop.com/attachment.php?aid=105876&k=28817b1c43036eda863992f41f95dde4&t=1638513577&sid=5825YY



图片附件: 未命名-11.jpg (2012-12-12 10:44, 2.95 KB) / 下载次数 448
http://bbs.ecshop.com/attachment.php?aid=105877&k=eec9ed6a2254c3444ad41f7cfaeacf28&t=1638513577&sid=5825YY


作者: lglamway    时间: 2012-12-12 13:57

回复下。  顶顶,
作者: lglamway    时间: 2012-12-12 13:59

CSS为什么写的这么复杂
作者: 没地方    时间: 2012-12-12 17:37

好 很不错
作者: lglamway    时间: 2012-12-12 18:02

支持共享支持共享支持共享
作者: lglamway    时间: 2012-12-12 18:15

支持共享
作者: 虚轻轻的飘过    时间: 2012-12-29 21:32

确实不错。。。。
作者: ddspp    时间: 2012-12-30 16:49

正好需要
作者: sungold    时间: 2012-12-30 17:04

谢谢分享。非常好
作者: chinahefei    时间: 2013-1-8 09:44

看一看~~~~~~~~~~~~~~!
作者: rangming    时间: 2013-1-10 18:47

支持一下!!!1米80以下小朋友路过
作者: 深圳创意馆    时间: 2013-1-14 23:13

有没有演示啊。
作者: grasswen    时间: 2013-1-17 16:59

支持一下。分享万岁
作者: 狼爵    时间: 2013-1-19 00:15

收了。。。。
作者: feixue088    时间: 2013-1-19 11:51

好像不错。。。
作者: howku    时间: 2013-1-19 16:45

感谢楼主共享,已经实现。演示地址:http://www.elveswu.com/
作者: php029    时间: 2013-1-19 18:10

好帖子啊,必须要收藏了
作者: rocway616    时间: 2013-2-20 21:04

相当好啊
作者: rocway616    时间: 2013-2-20 21:27

可是就是搞不出来
作者: lianeng    时间: 2013-2-21 12:17

支持共享
作者: xtddcel    时间: 2013-2-21 14:10

不错, 学习了
作者: SC2011    时间: 2013-2-22 11:32

京东的  类似   插件 京东摸板 下载: http://www.wasjc.com/
作者: netleiwei    时间: 2013-3-1 16:55

我的怎么不行啊  最后那个代码 放到哪里呢
作者: wyn326    时间: 2013-3-4 16:38

很好、支持楼主
作者: ewoyo    时间: 2013-4-3 21:27

这个好,肯定能用的上
作者: asheen    时间: 2013-4-4 00:04

步錯的想法,先收藏起來
作者: 悠然六月天    时间: 2013-4-6 17:48

学习研究ing......
作者: wwai    时间: 2013-4-6 19:18

这代码太复杂了。
作者: qqyou    时间: 2013-5-17 10:00

支持楼主,我试用一下
作者: bcxcz555    时间: 2013-5-17 11:42

经验啊... 向楼主学习












炸金花  扎金花游戏大厅下载 诈金花  www.dfslh.net
作者: 我是大侠哦    时间: 2017-10-20 16:23

九块邮官网  新百伦正品折扣店


作者: gordonla    时间: 2018-1-12 21:28

太阳能路灯www.roaddeng.com
www.viisia.com合页




欢迎光临 ECShop电商系统交流论坛 (http://bbs.ecshop.com/) Powered by Discuz! 7.2