大家好,我是陈景序,今天我们来聊聊如何在Discuz!X中自定义积分操作。相信很多站长在运营社区时,都会遇到需要自定义积分策略的情况。今天就来跟大家分享一下这方面的经验。
自定义积分操作的基本步骤
首先,我们需要添加一条SQL语句,这条语句会在插件安装时内置进去。下面是一个示例:
INSERT INTO `pre_common_credit_rule` (`rulename`, `action`, `cycletype`, `cycletime`, `rewardnum`, `norepeat`, `extcredits1`, `extcredits2`, `extcredits3`, `extcredits4`, `extcredits5`, `extcredits6`, `extcredits7`, `extcredits8`, `fids`) VALUES ('宠物购买', 'petbuy', 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, '0');添加后,站长可以在积分策略中看到这条记录,并进行调整。
添加积分操作函数
接下来,我们需要添加一个积分操作函数,如下所示:
/**
* 添加积分
* @param Integer $uids: 用户uid或者uid数组
* @param String $dataarr: member count相关操作数组,例: array('extcredits1' => 1)
* @param Boolean $checkgroup: 是否检查用户组 true or false
* @param String $operation: 积分记录操作类型(不记录积分日志可忽略)
* @param Integer $relatedid: 积分记录相关 ID(不记录积分日志可忽略)
* @param String $ruletxt: 动画效果中的积分规则文本(UTF-8格式)
*/
function updatemembercount($uids, $dataarr = array(), $checkgroup = true, $operation = '', $relatedid = 0, $ruletxt = '')
在插件中,我们可以使用以下代码来执行积分策略:
updatecreditbyaction('petbuy', $_G['uid']);单独增减积分可以使用 updatemembercount() 函数。
积分操作类型
- ACC - 参与活动扣除积分
- AFD - 购买积分即积分充值
- AGC - 获得红包
- BAC - 购买附件支出积分
- BGC - 埋下红包
- BMC - 道具购买消耗积分
- BTC - 购买主题支出积分
- CDC - 卡密充值
- ...(更多类型请参考原文)
总结与拓展
以上就是如何在Discuz!X中自定义积分操作的基本方法。希望这篇文章能帮助到大家。如果你对Web开发或PHP技术有更多疑问,欢迎访问 websoft网络软件专家,了解更多内容。
我是陈景序,我们下期再见!
