后台设置:
论坛模式-界面设置-阅读页
评分时间限制[小时] 0 帖子发表后超过此时间限制其他用户将不能对此帖评分,系统组不受限制,0 为不限制
设置后,进行评分测试,提示信息为:评分超时,你不能对此帖进行评分!
通过提示信息,检索文件,得到:
'pingtime_over' => '评分超时,你不能对此帖进行评分!',
继续搜索“pingtime_over”,lib/forum/ping.class.php 文件内代码:
function pingCheck($checkType = '') {
global $db_pingtime,$timestamp,$gp_gptype,$winduid,$windid,$manager,$_G;
$pids = array_keys($this->postData);
foreach ($pids as $k => $v) {
!is_numeric($v) && $pids[$k] = 0;
}
foreach ($this->postData as $pid => $post) {
if ($db_pingtime && $timestamp - $post['postdate'] > $db_pingtime*3600 && $gp_gptype != 'system') {
return 'pingtime_over';
}
if ($winduid == $post['authorid'] && $checkType == 1 && !CkInArray($windid,$manager)) {
return 'masigle_manager';
}
}
if ($checkType == '1' && $_G['markable'] < 2 && $this->isPing($this->tid, $pids)) {
return 'no_markagain';
}
if ($checkType == '2' && $this->isNotPing($this->tid, $pids)) {
return 'have_not_showping';
}
return true;
}
看样子,是定义了一个评分检测的函数,继续查一查那几个提示信息:
'masigle_manager' => '抱歉,不能给自己评分',
'no_markagain' => '你已经评过分了,你所属的用户组没有重复评分的权限.',
'have_not_showping' => '错误操作,你没有给该帖评分!',
如此看来,这个“系统组不受限制”应该在前面的几行代码之中,细看之下,应该就是:
if ($db_pingtime && $timestamp - $post['postdate'] > $db_pingtime*3600 && $gp_gptype != 'system') {
里的: && $gp_gptype != 'system'
这行代码能理解是什么意思!如果设置了评分时间限制,并且现在的时间减去发帖时间大于后台设置的评分时间限制*3600(因为单位是小时,所以需要乘以3600,转化成秒),并且不是系统组,那么就会提示:评分超时,你不能对此帖进行评分!