欢迎光临
我们一直在努力

DEDE与DISCUZ整合积分同步

转自:http://www.leyan.net/jishu/shujuku/list_11_2.html
最近开发一个平台,使用的dede的cms已经discuz论坛.在整合后发现,uccenter里面的积分兑换功能没有调配成功,如何做到论坛和网站的会员积分是同步的呢?在两者的官网上找了很久也没有找到我想要的东西.只好自己想办法.
在不修改两者代码的基础上,我想到了mysql的触发器.使用触发器的功能不就可以解决了吗?但是后来想了想总觉得有点死循环的意思.dede的修改触发discuz的积分,反正得触发器不是又返回来触发dede了吗?这不是个死循环吗?要我mysql的触发器我可以说是第一次使用.死马当活马医.在本机见了一个测试数据库.试试吧.不试试怎么知道呢?
表 1
bbs_members(论坛用户表)
字段
uid(用户id),extcredits1(积分),extcredits2(金钱)

表 2
dede_member
字段
mid(用户id),scores(积分),money(金钱) 经过一顿调整,原本以为需要4个字段写4个触发器的.只写了2个触发器就解决了.不知道为什么.触发器不是针对字段的吗?怎么针对记录了?我不是很明白,如果你知道,可以告诉我.我保持学习的态度.
废话不说了,放出触发器的代码吧.

触发器建立后,发现能够实现同步了.不过此方法建议整合开始,双方积分都为0的时候.呵呵.
本方案只做技术探讨,不构成整合方案,如有什么后果,请不要找我麻烦.
Create TRIGGER tr_bbs_dede AFTER update ON bbs_members FOR EACH ROW BEGIN set @scores='0'; set @money='0'; select scores,money into @scores,@money from dede_member where mid=NEW.uid; if @scores!=NEW.extcredits1 then update dede_member set scores=NEW.extcredits1 where mid=NEW.uid; end if; if @money!=NEW.extcredits2 then update dede_member set money=NEW.extcredits2 where mid=NEW.uid; end if; END; Create TRIGGER te_dede_bbs AFTER Update ON dede_member FOR EACH ROW BEGIN set @extcredits1='0'; set @extcredits2='0'; select extcredits1,extcredits2 into @extcredits1,@extcredits2 from bbs_members where uid=NEW.mid; if @extcredits1!=NEW.scores then update bbs_members set extcredits1=NEW.scores where uid=NEW.mid; end if; if @extcredits2!=NEW.money then update bbs_members set extcredits2=NEW.money where uid=NEW.mid; end if; END;

赞(0) 打赏
未经允许不得转载:新席地网博客 » DEDE与DISCUZ整合积分同步
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  • Q Q(选填)

新席地网-苏州网站制作,360度全景摄影,微信小程序营销推广,抖音运营推广

QQ :13945502电话:13913571631

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

×
订阅图标按钮