久久久久av_欧美日韩一区二区在线_国产精品三区四区_日韩中字在线

返回列表 發帖
查看: 6597|回復: 0

Discuz!X 中積分操作函數以及自定義積分

83

主題

-6

回帖

329

積分

爐火純青

貢獻
2 點
金幣
241 個
樓主
發表于 2019-6-1 19:26:30 | 只看樓主 |倒序瀏覽 |閱讀模式

添加一條SQL,此 SQL 記錄可以在您插件安裝的時候內置在里面
  1. INSERT INTO `pre_common_credit_rule` (`rulename`, `action`, `cycletype`, `cycletime`, `rewardnum`, `norepeat`, `extcredits1`, `extcredits2`, `extcredits3`, `extcredits4`, `extcredits5`, `extcredits6`, `extcredits7`, `extcredits8`, `fids`) VALUES
  2. (‘寵物購買’, ‘petbuy’, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, ‘0′);
復制代碼

添加后站長便可以在積分策略中看到這條記錄
此時可讓站長自行調整此策略
在代碼中進行積分操作時,您只需在插件中添加以下代碼,即可執行此積分策略
  1.          updatecreditbyaction(‘petbuy’, $_G['uid']);
復制代碼

單獨增減積分可用 updatemembercount() 函數
  1. /**
  2. * 添加積分
  3. * @param Integer $uids: 用戶uid或者uid數組
  4. * @param String $dataarr: member count相關操作數組,例: array(‘extcredits1′ => 1)
  5. * @param Boolean $checkgroup: 是否檢查用戶組 true or false
  6. * @param String $operation: 積分記錄操作類型(不記錄積分日志可忽略)
  7. * @param Integer $relatedid: 積分記錄相關 ID(不記錄積分日志可忽略)
  8. * @param String $ruletxt: 動畫效果中的積分規則文本(UTF-8格式)
  9. */
  10. function updatemembercount($uids, $dataarr = array(), $checkgroup = true, $operation = ”, $relatedid = 0, $ruletxt = ”)
復制代碼

積分操作類型:
操作名字關聯ID說明
ACCforum_activity.tid參與活動扣除積分
AFDcommon_member.uid購買積分即積分充值
AGCcommon_magic.mid獲得紅包
BACforum_attachment.aid購買附件支出積分
BGCcommon_magic.mid埋下紅包
BMCcommon_magic.mid道具購買消耗積分
BTCforum_thread.tid購買主題支出積分
CDC1卡密充值
CECcommon_member.uid積分兌換
ECUcommon_member.uid通過ucenter兌換積分
MRCcommon_magic.mid道具隨機獲取積分
PRCforum_post.pid帖子被評分所得積分
RACforum_thread.tid最佳答案獲取懸賞積分
RCAforum_thread.tid回帖中獎
RCBforum_thread.tid返還回帖獎勵積分
RCTforum_thread.tid回帖獎勵積分
RCVcommon_member.uid積分轉賬接收
RGCcommon_magic.mid回收紅包
RKCcommon_member.uid競價排名
RPCcommon_report.id舉報功能中的獎懲
RSCforum_thread.tid評分帖子扣除自己的積分
RTCforum_thread.tid發表懸賞主題扣除積分
SACforum_attachment.aid出售附件獲得積分
STCforum_thread.tid出售主題獲得積分
TFRcommon_member.uid積分轉賬轉出
TRCcommon_task.taskid任務獎勵積分
UGPcommon_usergroup.groupid購買擴展用戶組支出積分


  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. function _updatemembercount($uids, $dataarr = array(), $checkgroup = true, $operation = '', $relatedid = 0, $ruletxt = '') {
  2. if(empty($uids)) return;
  3. if(!is_array($dataarr) || empty($dataarr)) return;
  4. if($operation && $relatedid) {
  5. $writelog = true;
  6. $log = array(
  7. 'uid' => $uids,
  8. 'operation' => $operation,
  9. 'relatedid' => $relatedid,
  10. 'dateline' => time(),
  11. );
  12. } else {
  13. $writelog = false;
  14. }
  15. $data = array();
  16. foreach($dataarr as $key => $val) {
  17. if(empty($val)) continue;
  18. $val = intval($val);
  19. $id = intval($key);
  20. $id = !$id && substr($key, 0, -1) == 'extcredits' ? intval(substr($key, -1, 1)) : $id;
  21. if(0 < $id && $id < 9) { $data['extcredits'.$id] = $val; if($writelog) { $log['extcredits'.$id] = $val; } } else { $data[$key] = $val; } } if($writelog) { DB::insert('common_credit_log', $log); } if($data) { include_once libfile('class/credit'); $credit = & credit::instance(); $credit->updatemembercount($data, $uids, $checkgroup, $ruletxt);
  22. }
  23. }
復制代碼

其中第四個參數和第五個參數在寫積分記錄的時候有用,如果兩者皆不為空,則系統會在積分記錄中記錄。
第四個參數是記錄相關操作的變量,第五個參數看名稱應該是記錄產生這個積分操作的相關的id值(例如像uid,fid,tid這類的),第六個參數用于當$data數組(即記錄積分增減情況的數組)不為空時,重新調用函數并把值傳遞給第四個變量。
                                                        
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

  • 關注公眾號
  • 有償服務微信
  • 有償服務QQ

手機版|小黑屋|Discuz! 官方交流社區 ( 皖ICP備16010102號 |皖公網安備34010302002376號 )|網站地圖|star

GMT+8, 2025-7-3 05:10 , Processed in 0.081777 second(s), 10 queries , Redis On.

Powered by Discuz! W1.0 Licensed

Cpoyright © 2001-2025 Discuz! Team.

關燈 在本版發帖
有償服務QQ
有償服務微信
返回頂部
快速回復 返回頂部 返回列表