ECSHOP全站调用购物车显示商品图片,价格,数量,总价等详细信息

步骤重新梳理了一下:

支持原创,感谢分享!

效果图:

ecshop.jpg

下载 (32.53 KB)

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}>  
  1. <span class="sgood left"><a href="{$goods.url}" ><img src="{$goods.goods\_thumb}" alt="{$goods.goods\_name}"></a></span>

  2. <p class="left sgoodc"><a class="name"
href="{$goods.url}">{$goods.short\_name}</a>  
  1. <span>{$goods.goods_jj}</span>

  2. </p>
  3. <p class="right sgoodt">
  4. <span>{$goods.goods_price}×{$goods.goods_number}</span><a class="del" href="javascript:" onClick="deleteCartGoods({$goods.rec\_id})">[删除]</a></p>

  5. </li>
  6. {/foreach}

  7. <li class="clearfix zllcart">
  8. <span class="ie6left"><em>{$goods_number}</em>
    <span class="pipe">|</span> 价格总计:<em> ¥{$order_amount}
    </em></span><a href="flow.php" class="right">去购物车结算>></a>

  9. </li>
  10. </ul>
  11. </div>
  12. <!-- {else} -->
  13. <ul class="car\_ul onp clearfix">
  14. <p class="clearfix ptt">暂无商品</p>
  15. <ul>
  16. <!-- {/if} -->

复制代码

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

下载次数: 542

2012-8-14 14:52

第二步打开: 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)

下载次数: 418

2012-8-14
14:54

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

  1. {insert_scripts files='transport.js'}

  2. <div class="cart" id="ECS\_CARTINFO">
  3. {insert name='cart_info'}

复制代码

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )