是叶子,还是旅行的风
- 人气
- 0
- 注册时间
- 2024-7-19
- 最后登录
- 2024-11-6
|
Discuz技巧
适用版本: |
DX3.4 DX3.5 |
技巧类型: |
二开辅助 |
如果在编程时,可以直观修改用户积分,在一些插件开发中(尤其是需要站长用户自定义积分交互较多时)会非常方便。
我们可以让站长这样编写表达式:
或者一次性调整多个积分:那么我们下面就来实践一下,如何快速实现上面的表达式解析。
1、构建函数
- /*修改单个积分*/
- function changecredit($uid,$creditname,$op,$num,$reason=''){
- global $_G;
- for($i=1;$i<=8;$i++){
- if($_G['setting']['extcredits'][$i]['title']==$creditname){
- updatemembercount($uid, array('extcredits'.$i => intval($op.$num)));
- }
- }
- return 1;
- }
- /*修改多个积分表达式*/
- function changecredits($uid,$words,$reason=''){
- $sets = explode(",",$words);
- foreach($sets as $k=>$v){
- $pluscheck = explode("+",$v);
- $minuscheck = explode("-",$v);
- if(count($pluscheck)>1){
- changecredit($uid,$pluscheck[0],'+',$pluscheck[1],$reason);
- }elseif(count($minuscheck)>1){
- changecredit($uid,$minuscheck[0],'-',$minuscheck[1],$reason);
- }else{
- continue(1);
- }
- }
- return 1;
- }
复制代码
2、调用函数
直接统一使用刚才构建好的 changecredits() 函数即可,例子:
- changecredits($_G['uid'],"金钱-10,威望+50","购买威望礼包");
复制代码
|
|