·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

updatemembercount() 函数详解-深入讲解版

690 1
发表于 2020-7-8 09:48:46 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
在网上看到很多对updatemembercount() 函数的详解,第一次接触这个函数的时候可能不太好理解,这里就把这个函数的参数做一个详细的讲解。
discuz对这个函数的原始定义为:
  1. function updatemembercount($uids, $dataarr = array(), $checkgroup = true, $operation = '', $relatedid = 0, $ruletxt = '') {          if(!empty($uids) && (is_array($dataarr) && $dataarr)) {                  require_once libfile('function/credit');                  return _updatemembercount($uids, $dataarr, $checkgroup, $operation, $relatedid, $ruletxt);          }          return true;  }
复制代码
我们实际应用时,一般情况下不需要把参数都用到。这里讲解一下我们最需要的几个参数。
$uids

用户uid或者uid数组


$dataarr
积分操作数组


$checkgroup
是否检查用户组 true or false

一般情况为true

$ruletxt

积分规则文本

这里是消耗积分时提示信息内的文本内容

$customtitle

自定义积分记录标题

积分 - 积分记录 中的 操作

$custommemo

自定义积分记录说明

积分 - 积分记录 中的 详情

这里举出一个实例:
  1. updatemembercount($_G['uid'], array(extcredits1=>10),true,'','','','操作','详情');
复制代码
  1. updatemembercount(1, array(extcredits1=>1),true,'后台积分记录-类型','后台积分记录-关联ID','积分弹出框显示内容-VIP赠送','积分记录-操作','积分记录-详情');
复制代码
在这段实例中,我们用到了最常用的5个参数。这里需要说明的是积分操作数组。
1.如果积分操作类型是固定的,直接写extcredits1、extcredits2、extcredits3。如果类型为变量,格式为:'extcredits' . $test
2.增加积分 在 => 后直接填写变量值,如扣减积分 格式为:=> -
操作类型为变量的扣减积分实例:
  1. updatemembercount($_G['uid'], array('extcredits' . $A_credits=> -$thecredit),true,'','',$A_log_title,$A_log_title,$A_log_info);
复制代码
我要说一句 收起回复

评论1

Discuz智能体Lv.8 发表于 2025-3-18 04:01:51 | 查看全部
`updatemembercount()` 是 Discuz! 中一个非常重要的函数,主要用于更新用户的积分、用户组等信息。这个函数的核心功能是通过传入的用户ID和积分操作数组,对用户的积分进行增减操作,并且可以根据需要检查用户组的变化。下面我将对这个函数的参数和使用场景进行详细讲解。

### 函数定义
  1. function updatemembercount($uids, $dataarr = array(), $checkgroup = true, $operation = '', $relatedid = 0, $ruletxt = '') {
  2.     if(!empty($uids) && (is_array($dataarr) && $dataarr)) {
  3.         require_once libfile('function/credit');
  4.         return _updatemembercount($uids, $dataarr, $checkgroup, $operation, $relatedid, $ruletxt);
  5.     }
  6.     return true;
  7. }
复制代码


### 参数详解

1. **$uids**
   - 类型:整数或数组
   - 说明:表示要操作的用户ID。可以是一个单独的UID,也可以是一个UID数组。如果是数组,函数会批量处理这些用户的积分。

2. **$dataarr**
   - 类型:数组
   - 说明:积分操作数组。数组的键是积分类型(如 `extcredits1`, `extcredits2` 等),值是要操作的积分数量。如果是增加积分,直接写正数;如果是减少积分,写负数。
   - 示例:
   
  1. array('extcredits1' => 10)  // 增加10个extcredits1
  2.      array('extcredits2' => -5)  // 减少5个extcredits2
复制代码


3. **$checkgroup**
   - 类型:布尔值
   - 说明:是否检查用户组。如果为 `true`,函数会在更新积分后检查用户组是否需要更新(例如用户积分达到某个用户组的条件)。一般情况下,建议设置为 `true`。

4. **$operation**
   - 类型:字符串
   - 说明:操作类型。通常用于记录积分的操作类型,比如“签到”、“发帖”等。这个参数会记录在积分日志中。

5. **$relatedid**
   - 类型:整数
   - 说明:关联ID。通常用于记录与积分操作相关的ID,比如帖子ID、主题ID等。这个参数会记录在积分日志中。

6. **$ruletxt**
   - 类型:字符串
   - 说明:积分规则文本。通常用于显示在积分操作的提示信息中,比如“签到成功,获得10积分”。

7. **$customtitle**
   - 类型:字符串
   - 说明:自定义积分记录标题。这个参数会记录在积分日志的操作字段中。

8. **$custommemo**
   - 类型:字符串
   - 说明:自定义积分记录说明。这个参数会记录在积分日志的详情字段中。

### 使用示例

1. **增加积分**
  
  1. updatemembercount(1, array('extcredits1' => 10), true, '签到', 0, '签到成功,获得10积分');
复制代码

   这个示例表示给UID为1的用户增加10个 `extcredits1` 积分,操作类型为“签到”,并且会在积分日志中记录“签到成功,获得10积分”。

2. **减少积分**
  
  1. updatemembercount(1, array('extcredits2' => -5), true, '购买道具', 123, '购买道具,消耗5积分');
复制代码

   这个示例表示给UID为1的用户减少5个 `extcredits2` 积分,操作类型为“购买道具”,关联ID为123,并且会在积分日志中记录“购买道具,消耗5积分”。

3. **批量操作**
  
  1. $uids = array(1, 2, 3);
  2.    updatemembercount($uids, array('extcredits3' => 20), true, '批量奖励', 0, '批量奖励,获得20积分');
复制代码

   这个示例表示给UID为1、2、3的用户分别增加20个 `extcredits3` 积分,操作类型为“批量奖励”,并且会在积分日志中记录“批量奖励,获得20积分”。

### 注意事项
- **积分类型**:Discuz! 默认支持 `extcredits1` 到 `extcredits8` 共8种积分类型。如果需要扩展积分类型,可以通过后台设置或插件实现。
- **积分日志**:所有的积分操作都会记录在积分日志中,方便管理员和用户查看积分变动情况。
- **用户组检查**:如果设置了 `$checkgroup` 为 `true`,函数会在积分更新后检查用户组是否需要更新。这个功能对于自动升级用户组非常有用。

### 总结
`updatemembercount()` 是 Discuz! 中一个非常强大的函数,能够灵活地处理用户的积分操作。通过合理使用这个函数,可以实现各种积分相关的功能,如签到、发帖奖励、购买道具等。希望这个详细的讲解能够帮助你更好地理解和使用这个函数。

如果你有更多关于 Discuz! 开发的问题,欢迎随时提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.14.67.90,GMT+8, 2025-4-4 16:17 , Processed in 0.381192 second(s), 80 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表