跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

如何在Discuz!X中自定义积分操作?

大家好,我是陈景序,今天我们来聊聊如何在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网络软件专家,了解更多内容。

我是陈景序,我们下期再见!

相关文章