17px/typecho-theme-shanhai

字体cdn使用提示403,不知道啥情况,顺便给主题新增一个回复可见功能

Opened this issue · 1 comments

OuOumm commented

1.字体cdn使用提示403,不知道啥情况

2.新增回复可见功能,代码如下

在主题文件function.php增加

function parse_content($content, $cid, $mail, $login) {
    // 检查用户是否已登录或已回复
    if ($login) {
        // 用户已登录,直接显示隐藏内容
        $content = preg_replace("/\[hide\](.*?)\[\/hide\]/sm", '$1', $content);
        $content = preg_replace("/\[login\](.*?)\[\/login\]/sm", '$1', $content);
    } else {
        // 获取数据库实例
        $db = Typecho_Db::get();
        // 用户未登录,检查是否已回复
        $sql = $db->select()->from('table.comments')
            ->where('cid = ?', $cid)
            ->where('mail = ?', $mail)
            ->where('status = ?', 'approved')
            ->limit(1);
        $result = $db->fetchRow($sql);

        if (!empty($result)) {
            // 用户已回复,显示隐藏内容
            $content = preg_replace("/\[hide\](.*?)\[\/hide\]/sm", '$1', $content);
        } else {
            // 用户未回复,显示提示信息
            $content = preg_replace("/\[hide\](.*?)\[\/hide\]/sm", '<div>您需要<a onclick="document.getElementById(\'comment-form\').scrollIntoView({ behavior: \'smooth\' });">回复</a>才能显示此处隐藏内容。</div>', $content);
        }

        // 用户未登录,显示登录提示信息
        $content = preg_replace("/\[login\](.*?)\[\/login\]/sm", '<div>您需要<a href="/admin/login.php">登录</a>才能显示此处隐藏内容。</div>', $content);
    }
    return $content;
}

在post.php修改输出文章内容代码

            <article class="markdown-body animate-fade-in-up bg-white dark:bg-zinc-900" itemprop="articleBody" id="markdown-content"><?php echo parse_content($this->content, $this->cid, $this->remember('mail', true), $this->user->hasLogin()); ?></article>
17px commented

1.字体cdn使用提示403,不知道啥情况

2.新增回复可见功能,代码如下

在主题文件function.php增加

function parse_content($content, $cid, $mail, $login) {
    // 检查用户是否已登录或已回复
    if ($login) {
        // 用户已登录,直接显示隐藏内容
        $content = preg_replace("/\[hide\](.*?)\[\/hide\]/sm", '$1', $content);
        $content = preg_replace("/\[login\](.*?)\[\/login\]/sm", '$1', $content);
    } else {
        // 获取数据库实例
        $db = Typecho_Db::get();
        // 用户未登录,检查是否已回复
        $sql = $db->select()->from('table.comments')
            ->where('cid = ?', $cid)
            ->where('mail = ?', $mail)
            ->where('status = ?', 'approved')
            ->limit(1);
        $result = $db->fetchRow($sql);

        if (!empty($result)) {
            // 用户已回复,显示隐藏内容
            $content = preg_replace("/\[hide\](.*?)\[\/hide\]/sm", '$1', $content);
        } else {
            // 用户未回复,显示提示信息
            $content = preg_replace("/\[hide\](.*?)\[\/hide\]/sm", '<div>您需要<a onclick="document.getElementById(\'comment-form\').scrollIntoView({ behavior: \'smooth\' });">回复</a>才能显示此处隐藏内容。</div>', $content);
        }

        // 用户未登录,显示登录提示信息
        $content = preg_replace("/\[login\](.*?)\[\/login\]/sm", '<div>您需要<a href="/admin/login.php">登录</a>才能显示此处隐藏内容。</div>', $content);
    }
    return $content;
}

在post.php修改输出文章内容代码

            <article class="markdown-body animate-fade-in-up bg-white dark:bg-zinc-900" itemprop="articleBody" id="markdown-content"><?php echo parse_content($this->content, $this->cid, $this->remember('mail', true), $this->user->hasLogin()); ?></article>

感谢