【分享】【整合UC系列】-将“消费积分”用discuz的积分替代

2016-07-07 15:02 来源:www.chinab4c.com 作者:ecshop专家

我的网站原先是discuz+UChome的,通过UCenter
现在,整合了Ecshop.
由于之前在discuz和UChome中已经有可以流通的站内货币,如“金币”

所以希望Ecshop的”消费积分“也用“金币”(购物时赠送部分金币,也可以用一定量的金币来抵用现金)。但是希望对用户来说,是完全无缝的,不希望再让他们手动转换。所以希望通过二次开发来实现,步骤为:
1.在后台设置中,将消费积分名称设置成“金币”
2.在积分变更的方法中,将积分的变更同时更新到discuz的表中。
通过阅读代码,发现所有的积分变更都在lib_common.php的log_account_change function中,我们在方法体最后加上:
/* 更新金币到discuz表 */
$sql2 = "UPDATE cdb_members SET extcredits1 = extcredits1 + ('$pay_points')" .
" WHERE uid = '$user_id' LIMIT 1";
$GLOBALS['db']->query($sql2);

/* 更新金币到ecshop表 */
$sql3 = "UPDATE " . $GLOBALS['ecs']->table('users') .
"SET pay_points = (SELECT extcredits1 FROM cdb_members WHERE uid = '$user_id')" .
" WHERE user_id = '$user_id' LIMIT 1";
$GLOBALS['db']->query($sql3);

3、第三步,让用户在每次访问ecshop的时候,把这个用户的金币数从discuz的表中,更新到ECshop的users表中。无非是一个类似上面的update语句就搞定。但是对这段语句的位置,现在还有些疑惑,打算放在init.php 但是具体应该放在哪个位置呢

这样的修改方案,能够保证最少的修改量,同时能达到想要的效果

不知道这个方案,还有什么地方有遗漏的,毕竟小弟只是从这周开始认真学习ecshop的代码。同时第三步,希望大牛指点下,谢谢

回答:
第三条有高人指点下么?

这个强力支持

再次请求指点,第三步。谢谢

放init.php里里面不是调用了好多共同文件吗那些调用下面就可以。

放init.php里里面不是调用了好多共同文件吗那些调用下面就可以。
qiyongdong 发表于 2010-8-28 23:19

版主能指点下具体最合适的位置么?我对ecshop还不是特别熟悉

希望在用户每次进来的时候(不论是手工登录,还是根据cookie登录),把该用户的discuz的扩展积分搬到ecshop的消费积分中。
同时在积分变更的函数中,再做一次同步。基本就保证了两遍积分的完全统一。
版主认为我这个方案有什么遗漏么?谢谢

没有人知道么?自己顶一下

技持, 等了半个月都还没有结果哦, 顶起啊, 就等这个了