再看勋章回收任务文件,
require/plan/medal.php。里面大部分内容都注释了,只剩下:
- <?php
- !function_exists('readover') && exit('Forbidden');
- $medalService = L::loadClass('medalservice','medal');
- $medalService->recoverOverdueMedals();
- ?>
里面提到了recoverOverdueMedals函数,检索。
lib/medal/medalservice.class.php文件里有很多关于勋章的函数,与上面对应的是:
- /**
- * 批量回收过期的手动勋章
- */
- function recoverOverdueMedals() {
- $awardMedalDb = $this->_getMedalAwardDb();
- $result = $awardMedalDb->getAllOverdues();
- foreach ($result as $key=>$value) {
- $this->recoverMedal($value['award_id'],'勋章过期,系统自动收回');
- }
- }
难道说,勋章回收计划任务是专门回收手动颁发的勋章的?那自然跟自动颁发类的勋章,比如原创达人,是没有关系的。
再看后台,颁发勋章的时候不能设置有效期,只在勋章管理的手动颁发的勋章里可以设置有效期。也就是说,这个
勋章自动回收计划任务是针对具有一定有效期的在后台由管理员颁发给用户的手动勋章。目前,论坛里的手动勋章都是永久的,暂时没有设置具有一定有效期的勋章。所以,任务描述可以在后台修改下了,“勋章自动回收”说得不够明白啊。