dx 3.2 php7,discuz7.0转DX3.2的问题,如何统计积分收益

mysql code:-

------------------------------------BEGIN------------------------------------

------------------积分变化记录表cdb_credits_inc--------------------

------------------credits_pre:上月初积分-------------------------------------

------------------credits_inc:上月新增积分--------------------------------

------------------month_rec:本月月份--------------------------------------------

CREATE TABLE `discuz`.`cdb_credits_inc` (-

`uid` MEDIUMINT( 8 ) NULL ,-

`credits_pre` INT( 10 ) NULL DEFAULT '0',-

`credits_inc` INT( 10 ) NULL DEFAULT '0',-

`month_rec` TINYINT NULL DEFAULT '0',-

PRIMARY KEY ( `uid` ) -

) ENGINE = MYISAM -

DELIMITER //-

------------------触发器 member_ai---------------------------------------

------------------当每增加(注册)一名新用户时触发---

CREATE TRIGGER member_ai-

AFTER INSERT ON cdb_members-

FOR EACH ROW-

BEGIN-

INSERT INTO cdb_credits_inc(uid,credits_pre,credits_inc) -

VALUES(NEW.uid,NEW.credits,NEW.credits);-

END;//-

-------------------触发器 member_au---------------------------------------------

------------------每当修改(增加)一名用户积分时触发---

CREATE TRIGGER member_au-

AFTER UPDATE ON cdb_members-

FOR EACH ROW-

BEGIN-

UPDATE cdb_credits_inc-

SET uid=NEW.uid,-

credits_inc=OLD.credits-cdb_credits_inc.credits_pre,-

credits_pre=NEW.credits ,-

month_rec= MONTH( CURDATE( )) -

WHERE uid= OLD.uid -

AND month_rec<> MONTH( CURDATE( ));-

END;//-

-------------------触发器 member_ad---------------------------------------------

------------------每当删除一名用户时触发----------------------------------

CREATE TRIGGER member_ad-

AFTER DELETE ON cdb_members-

FOR EACH ROW-

BEGIN-

DELETE FROM cdb_credits_inc -

WHERE uid=OLD.uid;-

END;//-

------------------------------------END-------------------------------------

discuz需要修改的文件及说明:-

1、-“.\templates\default\admincp.lang.php” 在$lang的array中插入code:  'credits_inc' => '月增积分',

说明:admincp.lang.php为Discuz的字符解析文件,包含了后台管理系统(admincp)中所用到的所有需要解析的文字。加入该code的作用是为了后面实现后台功能的增加做准备。

2、“.\admin\members.inc.php” 在line:50 while语句之后加入code:

/*----------------从 cdb_credits_inc表中获取会员上月新增积分 $credits_inc----------------*/

$m_uid=$member["uid"];

$sql=$db->query("SELECT credits_inc FROM cdb_credits_inc WHERE uid = $m_uid ");

$credits_arr=$db->fetch_array($sql);

$credits_inc=$credits_arr["credits_inc"];

说明:members.inc.php是Discuz后台管理文件,包含了后台管理中会员管理的所有功能,其中第49line:while($member = $db->fetch_array($query)) 的功能是从数据库中获取所有符合条件的会员($member),所插入code的功能即在获取会员uid之后从数据库表cdb_credits_inc获取会员上月新增积分 $credits_inc。

3、“.\admin\members.inc.php” 在line:64 两个$member[]数组变量之后加入code:

/*----------------显示会员上月新增积分----------------*/

$credits_inc,

说明:line:59的showtablerow是“.\admin\.global.func.php” 中的一个函数,其功能是显示会员列表中的每个会员的资料(即表格中每一行的信息),插入的code作为该函数的一个参数的一部分(月增积分)将被显示在会员资料中。但请注意,line:59执行该函数的结果并没有显示出来,仅把该结果赋值给$members保存,并在line:80通过echo $members; 显示。

3、“.\admin\members.inc.php” 在line:79 showsubtitle()函数的参数array()中加入"credits_inc",修改后的code:

showsubtitle(array('', 'username', 'credits', 'posts', 'credits_inc','admingroup', 'usergroup', ''));

说明:showsubtitle同样也是“.\admin\.global.func.php” 中的一个函数,其功能是显示用户管理会员列表中表头的内容(即“用户名 积分 发帖数 管理组 用户组”),修改后的code作用即在原有表头中插入“月增积分”这样的文字。因为第一步我们已经在“admincp.lang.php”中插入了 'credits_inc' => '月增积分' 的code,而showsubtitle函数显示的表头内容都是通过admincp.lang.php来转义的,因此修改后的code中'credits_inc'能够被转译成 '月增积分' 并显示在用户管理的表头中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值