当前位置: 首页 > emlog > 正文

豆包这家伙,有时候改代码让我很难受,有时候又让我很佩服。

最近这两个月使用emlog的时候,发现侧栏居然出现了管理员的评论,而这个过滤功能早在去年就通过威兄的帮助已经实现了。于是就想着肯定是系统的功能出现了变动,使得主题的相关代码也得更新逻辑。

上次威兄改好可用的代码是:


// 获取所有管理员邮箱
    $users = $CACHE->readCache('user');
    $admin_emails = [];
    if ($users && is_array($users)) {
        foreach ($users as $user) {
            if (isset($user['role']) && $user['role'] === 'admin') {
                $admin_emails[] = strtolower(trim($user['mail']));
            }
        }
    }

我提交给了豆包,说明了是emlog的主题代码,然后豆包不到一分钟就给我了完美方案,而且说的很有道理。

旧版:通过管理员邮箱过滤评论
新版:评论表里的 mail 可能为空 / 被修改,正确方式是用 UID 判断是否为管理员

并给出了完美代码:


// ===================== 核心修复:获取所有管理员 UID =====================
    $users = $CACHE->readCache('user');
    $admin_uids = [];
    if ($users && is_array($users)) {
        foreach ($users as $user) {
            // 只要是管理员,就记录 UID
            if (isset($user['role']) && $user['role'] === 'admin') {
                $admin_uids[] = (int)$user['uid'];
            }
        }
    }

然后将之前跳过管理员评论的代码


        // 跳过管理员评论
        if (in_array(strtolower(trim($row['mail'])), $admin_emails)) {
            continue;
        }

替换成


        // ===================== 修复:用 UID 过滤管理员评论 =====================
        if (in_array($comment_uid, $admin_uids)) {
            continue;
        }

保存上传,问题立刻解决,666。

emlog侧栏最新评论修复:邮箱换ID:等您坐沙发呢!

发表评论

gravatar

? razz sad evil ! smile oops grin eek shock ??? cool lol mad twisted roll wink idea arrow neutral cry mrgreen

快捷键:Ctrl+Enter