克米主题在处理匿名帖子时,有多处未涉及的地方,本文就已知发现的两处提供解决方案
克米版本:v3.6.230510
须知:修改前请先测试你坛是否存在此问题,如无无需修复
一、下滑信息置顶处
下滑时克米会将头像和用户名移动至标题栏,但是他们竟然没对匿名用户进行处理(当然我不知道最近的版本是否修复,一年前是这样的)
处理方式:
克米/common/header.php
找到
<a href="home.php?mod=space&uid={$_G[forum_thread][authorid]}&do=profile" class="kmimg"><em><img src="<!--{avatar($_G[forum_thread][authorid], middle, true)}-->"></em>{$_G[forum_thread][author]}</a>
把他改成
<!--{if !$post['anonymous']}-->
<a href="home.php?mod=space&uid={$_G[forum_thread][authorid]}&do=profile" class="kmimg"><em><img src="<!--{avatar($_G[forum_thread][authorid], middle, true)}-->"></em>{$_G[forum_thread][author]}</a>
<!--{else}-->
<!--{if getstatus($_G['member']['allowadmincp'], 1)}-->
<a href="home.php?mod=space&uid={$_G[forum_thread][authorid]}&do=profile" class="kmimg"><em><img src="<!--{avatar(0, middle, true)}-->"></em>{$comiis_lang['anonymous']}</a>
<!--{else}-->
<a class="kmimg"><em><img src="<!--{avatar(0, middle, true)}-->"></em>{$comiis_lang['anonymous']}</a>
<!--{/if}-->
<!--{/if}-->
当然,这是是个示例,你也可以让他变得更精简,$post['anonymous']
也可以替换为$_G[forum_thread][author]
二、前端JS参数传递
克米在生成帖子页面时向前端传递了部分帖子参数,结果他没做匿名状态下的处理
处理方式
克米/fourm/viewthread.php
找到
<script>var replyreload, tid = '{$_G['tid']}', authorid = '{$_G['forum_thread']['authorid']}', formhash = '{FORMHASH}', uid = '{$_G['uid']}', username = '{$_G['member'][username]}', allowrecommend = '{$_G['group']['allowrecommend']}',isgroup = '{if $_G['forum_thread'][isgroup] == 1}1{else}0{/if}';</script>
把他改成
<!--{if $post['anonymous']}-->
<script>var replyreload, tid = '{$_G['tid']}', formhash = '{FORMHASH}', uid = '{$_G['uid']}', username = '{$_G['member'][username]}', allowrecommend = '{$_G['group']['allowrecommend']}',isgroup = '{if $_G['forum_thread'][isgroup] == 1}1{else}0{/if}';</script>
<!--{else}-->
<script>var replyreload, tid = '{$_G['tid']}', authorid = '{$_G['forum_thread']['authorid']}', formhash = '{FORMHASH}', uid = '{$_G['uid']}', username = '{$_G['member'][username]}', allowrecommend = '{$_G['group']['allowrecommend']}',isgroup = '{if $_G['forum_thread'][isgroup] == 1}1{else}0{/if}';</script>
<!--{/if}-->
当然,这是是个示例,你也可以让他变得更精简
目前只发现这两处,如果有其他地方,可以参考此判断方法,只需要找到代码位置,使用$post['anonymous']
判断一下即可