克米主题在处理匿名帖子时,有多处未涉及的地方,本文就已知发现的两处提供解决方案

克米版本:v3.6.230510

须知:修改前请先测试你坛是否存在此问题,如无无需修复

一、下滑信息置顶处

下滑时克米会将头像和用户名移动至标题栏,但是他们竟然没对匿名用户进行处理(当然我不知道最近的版本是否修复,一年前是这样的)

1730797621596.png

处理方式:

克米/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]

1730798270323.png

二、前端JS参数传递

克米在生成帖子页面时向前端传递了部分帖子参数,结果他没做匿名状态下的处理

1730798361252.png

处理方式

克米/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']判断一下即可

最后修改:2024 年 11 月 05 日
如果觉得我的文章对你有用,请随意赞赏