卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章64334本站已运行4115

ecshop二次开发商品批量加入收藏

ecshop 就是自带收藏商品功能的,只可惜就可以一次珍藏一个,相对于很大一点的购物站点,有可能一次就须要珍藏多个商品,同时实现这样的操作方式也并不是很难的,只须要在 ecshop 自带珍藏功能的基础上小小的修改一下即可,下面夏日博客就去教大家如何修改一下吧。

首先循环出与珍藏商品的ID,用一个符号进行分后隔开,比如‘12|5|8|’,到时候传至 PHP 处理的时候就可以采用 explode() 函数按“|”符号来展开分割分开,然后再进行循环这些ID,就可以实现了,代码如下:

重新加入收藏夹

经过循环后就可以获得类似 加入收藏夹 的代码了。

接着打开 common.js,找出 collect(goodsId) 函数,这个就是珍藏的函数了,我们可以仿效这个函数再再次添加一个函数,实例代码如下:

/* *
* 批量添加商品到收藏夹
*/
function collect_all(AllId){
Ajax.call('user.php?act=collect_all', 'id=' + AllId, collectResponse, 'GET', 'JSON');
}

最后打开 user.php 文件,在这个文件里面添加如下代码:

/* 批量添加珍藏商品(ajax) */
elseif ($action == 'collect_all'){
include_once(ROOT_PATH .'includes/cls_json.php');
$json = new JSON();
$result = array('error' => 0, 'message' => '');
$goods_id = $_GET['id'];
$goods_id = explode("|",$goods_id);
$goods_id = array_filter($goods_id); //过滤掉数组中空的值
if (!isset($_SESSION['user_id']) || $_SESSION['user_id'] == 0){
$result['error'] = 1;
$result['message'] = $_LANG['login_please'];
die($json->encode($result));
}
else{
foreach($goods_id as $goods_id){
/* 检查是否已经存有于用户的收藏夹 */
$sql = "SELECT COUNT(*) FROM " .$GLOBALS['ecs']->table('collect_goods') .
" WHERE user_id='$_SESSION[user_id]' AND goods_id = '$goods_id'";
if ($GLOBALS['db']->GetOne($sql) > 0){}
else{
$time = gmtime();
$sql = "INSERT INTO " .$GLOBALS['ecs']->table('collect_goods'). " (user_id, goods_id, add_time) " .
" VALUES ('$_SESSION[user_id]', '$goods_id', '$time')";
if ($GLOBALS['db']->query($sql) === false){
$result['error'] = 1;
$result['message'] = $GLOBALS['db']->errorMsg();
die($json->encode($result));
}
}
}
$result['error'] = 0;
$result['message'] = $GLOBALS['_LANG']['collect_success'];
die($json->encode($result));
}
}

   

卓越飞翔博客
上一篇: ecshop二次开发取消友情链接重名限制的方法
下一篇: Discuz教程如何准确的清理数据库

相关推荐

留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏