腾讯云网站解决方案帮您轻松应对建站成本高/网络不稳等常见问题

discuz 修改积分策略( 在周期中添加"每周" )

1
回复
1422
查看
[复制链接]

764

主题

778

帖子

3万

积分

董事

Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72

积分
32970
发表于 19-3-12 17:58:22 | 显示全部楼层 |阅读模式      紫钻仅向指定用户开放  
在开发过程中我们可能会遇到 dz的积分策略里面添加一个新的周期(例如:添加一个以为节点的时间单位),今天就给大家讲解一下如何在dz的积分策略里面添加一个的时间周期
( E6 P! n& q( d9 G, \. ^" ^# Y# M在  source/admincp/admincp_credits.php 文件中, ctrl+f 搜索  $lang['setting_credits_policy_cycletype_1'] 处,  在后面添加一行:' A3 a0 f7 ~: q# B
  1. <font size="3">array(5, $lang['setting_credits_policy_cycletype_5'], array('cycletimetd' => 'none', 'rewardnumtd' => '')),
    ( i2 D4 L% u; R# M5 D& J
  2. </font>
复制代码
我把"每周" 的表单值设置为5 , 在语言包 lang_admincp.php 中添加一行
. \$ ^5 p5 C0 H6 U$ |* x
  1. <font size="3">'setting_credits_policy_cycletype_5' => '每周',</font>
复制代码
然后去, source/class/class_credit.php  ctrl+f搜索 if($rule['cycletype'] == 1)  在下面添加$ G6 |% A" I" _2 i2 I+ z
  1. <font size="3">if($rule['cycletype'] == 5) {//奖励周期1次
    : G2 ^& R& }9 b2 Z- j- Q4 W
  2.     $this_week = this_monday($_G['timestamp']);//本周一, 时间戳形式
    8 `- N0 k! u+ M8 \4 E
  3.     if($rulelog['dateline'] < $this_week && $rule['rewardnum']) {5 ]2 u/ Z, ^4 s0 P2 _4 }) q
  4.         $rulelog['cyclenum'] =  0;+ K6 F, s9 o' ?2 R
  5.         $newcycle = true;
    " ~* n) N6 M, j0 C
  6.     }& I7 ^2 S7 y* ?) g- [1 W2 B
  7. }   </font>
复制代码
this_monday函数如下, 自己去function中定义去$ b; {6 ~" J  e4 u& Y; x% o
  1. <font size="3">//这个星期的星期一
    " e+ N6 \* \1 R" p3 O
  2. // @$timestamp ,某个星期的某一个时间戳,默认为当前时间
    . _& M; b. B- C/ H$ L
  3. // @is_return_timestamp ,是否返回时间戳,否则返回时间格式
    $ d/ b! f% j# L7 f9 p
  4. function this_monday($timestamp = 0, $is_return_timestamp = true) {
      [( c' @1 d+ q! S9 h$ Y' s
  5.     static $cache;
    . E0 r- O- J: K: A0 ?$ q7 `3 h
  6.     $id = $timestamp . $is_return_timestamp;2 L( Q' k( x3 ^4 R1 a, S7 n+ g
  7.     if (!isset($cache[$id])) {
    % A# v  Z: `; d4 e. h/ _% ^
  8.         if (!$timestamp), x3 m5 H1 j6 D. p1 B( I, J+ ?
  9.             $timestamp = time();' n  m/ z4 [1 i: K6 D" k; ~
  10.         $monday_date = date('Y-m-d', $timestamp - 86400 * date('w', $timestamp) + (date('w', $timestamp) > 0 ? 86400 : -/* 6*86400 */518400));
    2 n  E: ~" @4 R, n  K
  11.         if ($is_return_timestamp) {, P/ D. B/ ?4 ?$ Z: e. V4 S# O. p
  12.             $cache[$id] = strtotime($monday_date);+ f- R& w+ t, [  i7 Z+ M
  13.         } else {
    ( q5 N0 _9 [) ?. w2 A  z
  14.             $cache[$id] = $monday_date;. d( [3 I. ]. e
  15.         }
    , j0 E8 o4 |. |, D+ t
  16.     }7 a/ L* P! O( [# g: x6 ]
  17.     return $cache[$id];
    & Z, r: ]6 O6 Y1 q/ E9 t
  18. }</font>
复制代码
到此教程结束!7 L& R' R" r2 V+ m% g

0

主题

6

帖子

20

积分

1°伸手党

Rank: 2

积分
20
发表于 19-12-23 07:03:19 | 显示全部楼层         
写的真的很不错
回复

使用道具 举报

网站简介

球球发,是一家 Discuz! 商业插件、风格模板、网站源码、 Discuz!运营维护技术等于一体的交流分享网站,全站95%的资源都是免费下载,对于资源我们是每天更新,每个亲测资源最新最全---球球发(如果我们有侵犯了您权益的资源请联系我们删除