discuz 6.1评分隔日不能恢复的BUG


其实不能说是discuz 6.1的BUG,只不过既然后台说了是每24小时最多评分是多少,那24小时要评的分就得给足人家,下面看看产生的评分第二天不能恢复的原因,再找解决办法
查找相关文章:discuz 评分恢复

其实不能说是discuz 6.1的BUG,只不过既然后台说了是每24小时最多评分是多少,那24小时要评的分就得给足人家,下面看看产生的评分第二天不能恢复的原因,再找解决办法

看了一下评分文件是misc.php文件

动作是rate,定位到324行,原来的代码是

[php]
<?php
$query = $db->query("SELECT extcredits, SUM(ABS(score)) AS todayrate FROM {$tablepre}ratelog
        WHERE uid='$discuz_uid' AND dateline>=$timestamp-86400
        GROUP BY extcredits");
?>
[/php]

原来它是统计从过去24小时到现在所评的总分是多少,再跟每24小时能评多少来比较看是否能继续评分的,如果想要隔日恢复的话,那么时间就应该是从今天的0时0分0秒算起

所以把上面的代码变更为如下代码

[php]
<?php
$today_start_time = mktime(0,0,0,date('m'),date('d'),date('Y'));
    $query = $db->query("SELECT extcredits, SUM(ABS(score)) AS todayrate FROM {$tablepre}ratelog
        WHERE uid='$discuz_uid' AND dateline>=$today_start_time
        GROUP BY extcredits");
?>
[/php]

至此解决discuz 6.1评分隔日不能恢复的问题