主题作者自己写了一个getUnread_notices查询消息通知,可能缓存问题,会导致已读之后,仍然有消息提示。
于是换成消息插件的调用方式,测试发现在其他页面都正常,唯独在首页调用失败。
一番排查发现是签到插件干扰了。具体文件是/plugin/tt_sign/hook/index_site_brief_after.htm
删掉就好了。。。不是。。这个文件33行左右,把签到的用户搞到$user上了。
<?php
if($signed){
foreach($signed as $user){
$signed_user = db_find_one('user',array('uid'=>$user['uid']));
$avatar_link = 'upload/avatar/000/'.$user['uid'].'.png';
if(file_exists($avatar_link)==false){
$avatar_link = 'view/img/avatar.png';
}
?>
<li class="my-2">
<div class="d-flex justify-content-between align-items-center">
<div class="media">
<img class="avatar-3 mt-2 mr-2" src="<?php echo $avatar_link;?>" alt="">
<div class="media-body">
<span class="sign_name">
<?php echo $signed_user['username'];?>
</span>
<span class="sign_time d-block text-gray small mt-1">
<?php echo humandate($user['time']);?>
</span>
</div>
</div>
<div class="badge badge-light"><i class="fa fa-coins"></i> <?php echo $user['golds'] ;?></div>
</div>
</li>
<?php }
}else{?>
<p class="text-center text-muted my-3">今日还没有人签到哦~</p>
<?php }?>
把$user换成$sign_user,注意循环里的$user都要替换。这样就不干$user什么鸟事了。
测试一下,果然就正常了。