墨裔 发表于 2013-10-17 17:37:26

Discuz中的积分操作函数解析



插件开发难免要用到积分操作,
直接修改数据库不是一个好的选择,
使用dz系统内置的函数可以方便以后的查看,
同时在用户界面有浮动提示框。
也可以避免出现其他数据库问题

dz的积分操作函数位于/source/function/function_core.php,updatemembercount()
function updatemembercount($uids, $dataarr = array(), $checkgroup = true, $operation = '', $relatedid = 0, $ruletxt = '')
参数有6个:
1、用户 用户数组
2、操作规则,如扣减第二个积分2分:array ('extcredits2' => -2);
3、是否检查用户组升级,通常未true
4、操作类型,默认空
5、关系ID,例如帖子ID
6、积分规则文本

示例:updatemembercount('10', array('extcredits2' => "-1"), true, '', 0, '');   将uid为10的用户第二个积分-1

另附一个积分下限查询函数:
同样位于/source/function/function_core.php
function checklowerlimit($action, $uid = 0, $coef = 1, $fid = 0, $returnonly = 0)

1、策略动作Action或者需要检测的操作积分值使如extcredits1积分进行减1操作检测array('extcredits1' => -1)
2、用户UID
3、积分放大倍数/负数为减分操作
4、不知道是啥
5、只要返回结果,不用中断程序运行

示例:checklowerlimit(array('extcredits2' => '-8'), $_G['uid'], 1, 0, 1);
此函数返回bool。

http://www.zgxsh.com/source/plugin/sina_xweibo_x3/xwb/images/bgimg/icon_logo.png 该贴已经同步到 墨裔的微博

墨裔 发表于 2016-11-17 15:33:00

checklowerlimit(array('extcredits2' => '-8'), $_G['uid'], 1, 0, 1)
函数如果('extcredits2' => '-8')是正数或0则返回1
如果是负数则返回2
页: [1]
查看完整版本: Discuz中的积分操作函数解析