开心彩棉糖
分类置顶

甜橙UI的简介和更新记录

甜橙UI的简介和更新记录

甜橙UI

  • 模板名称:甜橙UI
  • 版本:3.1.4
  • 作者:开心彩棉糖
  • 适用:EMLOG Pro

简介

甜橙UI 是一款暖色手账风格 EMLOG Pro 模板:

  • 米黄纸底 + 焦糖橘点缀的暖色手账配色
  • 登录、注册、找回密码弹窗采用毛玻璃效果
  • 全设备响应式:小屏手机、标准手机、大屏手机、平板、桌面、超宽屏自动适配
  • 桌面端顶部导航横向展开:大屏时不再折叠为汉堡菜单,导航链接直接显示在顶栏右侧
  • 桌面端首页双列卡片网格:大屏浏览文章列表更高效
  • 首页文章卡片封面叠加效果(可选):封面图作为整卡背景、文字信息叠加显示,卡片更窄更紧凑、一屏展示更多卡片,带悬停放大与渐变遮罩特效;文章未设置封面时自动取模板内置 16:9 封面图;后台「首页设置」可在「封面叠加 / 原有样式」间切换,并可设置首页每页显示的文章卡片数量(默认 10 篇、其余自动分页)
  • 搜索入口设置:后台「模板设置 - 首页设置」可开启/关闭搜索入口,并可选择位置——「顶部导航栏里」(默认,原样式不变)或「顶部导航栏下方」(在导航栏与轮播图之间显示独立搜索条)
  • 电脑端侧边栏(可选):≥1024px 屏幕在内容区右侧显示博主信息、站点统计、最新文章、分类、标签云,手机端始终不显示
  • 历史评论消息完整展示不截断,子评论缩进随屏幕宽度自适应
  • 保留 EMLOG 完整功能:文章列表、详情、评论、搜索、页面、加密文章、轮播图等
  • 在线更新检测:模板后台自动检查新版本,支持一键下载更新包
  • 底部外链跳转确认:点击页脚 ICP/公安/友情链接等外部链接时弹出确认框,含风险提醒与免责说明
  • 手账导航页模板适配:页面模板与主模板共用顶部导航、底部信息、登录弹窗与深浅色主题,全站视觉一致
  • 文章版权与免责声明:每篇文章底部显示版权信息与免责声明(后台「文章页设置」独立开关与内容编辑)
  • 文章分享:文章底部「分享」按钮弹出分享窗,窗内生成一张含本文章链接二维码与文章简介的分享图,可一键保存;文章链接与内容不变时图片保持不变,内容变更自动重新生成;分享图顶部显示网站名,底部网址为中文域名时以中文显示
  • 评论 IP 归属地与运营商:前台评论区昵称旁显示评论 IP 的归属地与网络运营商(归属地以「国家·省份·城市」中文显示,常见运营商翻译为中文,本地网络显示「本地网络」)
  • 评论设备信息:每条评论内容底部显示评论者的操作系统名称及版本(如 Windows 10 / macOS 13 / Android 13)、浏览器及版本、机器品牌及型号(如 Apple iPhone / 小米 2312DRA50C,从系统 UA 读取,不读取浏览器设置)
  • SEO 设置:后台「模板设置 - SEO设置」可独立设置站点浏览器标题、站点关键字、站点浏览器描述,以及文章/自建页面/微语三种页面的浏览器标题拼接方案;模板设置优先级高于 EMLOG 自带——设置了即覆盖 EMLOG 对应值,留空则完整沿用 EMLOG 原生行为

后台设置截图






安装

  1. 后台「外观 - 模板 - 安装模板」上传 tiancheng_ui.zip
  2. 安装完成后点击「使用」
  3. 建议开启「模板设置」插件(tpl_options),在「首页设置」中配置轮播图

使用说明

  • 首页轮播图:后台「模板设置 - 首页设置」,每行一条,格式:图片地址 | 标题 | 跳转地址
  • 顶部图片 LOGO:后台「模板设置 - 首页设置」,支持三种方式——点击上传图片文件、从媒体库选择、直接粘贴图片地址;设置后导航栏显示该图片并替换网站名称,留空则继续显示网站名称
  • 电脑端侧边栏:后台「模板设置 - 首页设置」开启「电脑端侧边栏」,屏幕宽度 ≥1024px 时内容区右侧显示侧边栏(博主信息、站点统计、最新文章、分类、标签云);手机端始终不显示
  • 文章页设置:后台「模板设置 - 文章页设置」集中管理以下选项:
    • 文章版权与免责声明(开关 + 版权信息内容 + 免责声明内容,均留空则不显示区块)
    • 文章分享(开关;开启后文章底部显示「分享」按钮,点击弹出分享窗,窗内生成含文章链接二维码与简介的分享图,可保存;图片顶部显示网站名,底部网址为中文域名时以中文显示;链接与内容未变时图片保持不变,变更自动重新生成)
    • 评论显示IP归属地(开关;前台评论区昵称旁显示评论 IP 归属地与运营商,归属地以「国家·省份·城市」中文显示,常见运营商翻译为中文,本地网络显示「本地网络」)
    • 评论显示设备信息(开关;评论内容底部显示操作系统名称及版本、浏览器及版本、机器品牌及型号,从系统 UA 读取,不读取浏览器设置)
  • SEO 设置:后台「模板设置 - SEO设置」:
    • 站点浏览器标题:浏览器标签页显示的站点标题,全站 <title> 与各标题方案中的「站点名」均优先使用此项;留空则沿用 EMLOG 后台设置的站点名称
    • 站点关键字 / 站点浏览器描述:分别覆盖全站 <meta name="keywords"> / <meta name="description">;留空则沿用 EMLOG 后台设置
    • 文章 / 自建页面 / 微语浏览器标题方案:选择对应页面的浏览器标题拼接方式——默认(沿用 EMLOG)、标题-站点名、站点名-标题、仅标题、标题|站点名;模板方案优先级高于 EMLOG 自带
  • 页脚底部信息:后台「模板设置 - 底部设置」配置版权信息、ICP备案、公安网备案、友情链接、网站运行时间(各项可独立开关,内容留空则前台不显示;电脑端 ICP 与公安备案合并一行显示,手机端独立两行)
  • 在线更新:后台「模板设置 - 更新检测」
    • 填写「更新服务器地址」(默认 https://xn--3ds015a01adz5d.xn--h0t0irjt23akiz.cn)
    • 填写「API 密钥」(更新服务器后台分类管理中的分类密钥),联系我进行添加
    • 「站点域名」留空则自动使用当前访问域名,联系我进行添加
    • 保存后每次进入模板设置页自动检测更新(结果缓存 10 分钟),也可点击「立即检测」手动检查
    • 发现新版本后按页面提示下载更新包,再到「安装模板」处上传升级

版本历史

v3.1.4

--新增:游客投稿功能,无需登录即可投稿。
--新增:游客投稿使用UBB标签编辑内容,有快捷键不用及代码。
--使用说明--
1、进入EMLOG后台--外观--页面--新建页面。输入页面标题,在页面模板处选择游客投稿页,其余默认即可,发布页面。
2、进入EMLOG后台--外观--导航--添加页面导航。

经过以上两步即可把游客投稿显示在顶部导航栏。

v2.8.8

  • 优化:所有卡片阴影描边统一增强——文章卡片、侧边栏模块卡片、评论卡片、相邻文章卡片、导航页卡片、首页封面叠加卡片等全部统一升级为「双层阴影 + 主题描边」(阴影颜色由模板主色派生,自动跟随内置主题配色、自定义主色与深色模式;电脑端与手机端同时生效),卡片层次更清晰、手账质感更统一;首页封面叠加卡片采用外环描边(不占布局),悬停时阴影加深、卡片上浮
  • 新增:为了保护模板不被恶意篡改新增版权互相印证机制——模板全部文件头部内置统一版权注释与每文件唯一签名(FILE-SIG),核心文件两两见证、全量文件指纹清单校验,任何文件、任何方式、任何代码改动(含删除或篡改版权注释)都会触发前台底部强制显示版权信息与版权网站跳转链接;代码未改动时前台不显示任何版权信息。检测代码隐藏部署、无特征命名,不加密 PHP 代码;版权内容:© 2026 甜橙UI · 开心彩棉糖 · 版权所有 + https://开心彩棉糖.cn(点击新窗口打开)

v2.8.7

  • 修复:手机端首页文章卡片内文字显示不全——封面叠加模式(16:9 矮卡片)下,文章简介原缺少 display:-webkit-box / -webkit-box-orient 组合,-webkit-line-clamp 不生效,简介超长时溢出并被卡片裁切、文字显示不全;已补全截断组合,并按手机端矮卡容量重新分配:标题最多 2 行、简介 1 行、话题标签与「阅读全文」按钮完整显示,全部文字不再被裁
  • 优化:手机端首页文章卡片间距——卡片之间统一拉开至 16px(原封面叠加模式 margin-bottom:0 导致手机端单列卡片紧贴无间距),视觉更舒展
  • 优化:手机端首页最后一个卡片与页面底部分割线距离——最后一张卡片底部额外增加 28px 留白(与分页 / 页脚分割线之间不再贴紧)
  • 优化:首页文章卡片黑色渐变减淡——封面底部黑色遮罩整体减淡(顶部 0.06→0.04、中部 0.2→0.12、底部 0.82→0.55,悬停态同步减淡),在保证白色文字可读的前提下画面更通透、封面图更清晰
  • 安全加固:本轮改动全部为纯 CSS 样式调整与版本号更新,无新增输入输出面 / 数据库操作 / 外部请求;延续既有全部加固(nosniff/SAMEORIGIN 头、全站输出转义、导航数据原子写入、升级入口鉴权、zip 魔数校验、路径穿越过滤、文件数上限、LOGO 协议过滤、侧边栏 SQL 白名单、IP 接口字面量校验),本轮无需重复加固
  • 新增:首页每排卡片数量设置(电脑版两组独立)——后台「首页设置」新增两组互不干扰的列数设置(手机版固定单列显示,不提供设置):
    • 首页每排卡片数量(电脑版·关闭侧边栏):电脑端未开启侧边栏时每排卡片数,范围 1-4,默认 2;列数越多卡片越窄,模板自动压缩字号与间距(3 列:标题 15px、简介 1 行;4 列:标题 14px、隐藏简介与标签)
    • 首页每排卡片数量(电脑版·开启侧边栏):电脑端开启侧边栏时每排卡片数,范围 1-4,默认 1;同理自动紧凑(2 列:标题 15px、简介 1 行;3/4 列:标题 14px、隐藏简介与标签)
    • 两组设置分别保存、互不影响;未设置或非法值时回落各默认值,与原有显示完全一致(增量兼容,不破坏原有数据)
  • 新增:大屏模式(内容区满屏显示)——后台「首页设置 → 大屏模式(内容区满屏显示)」开关,开启后电脑端内容区不再受 960px 宽度限制、随屏幕宽度自适应满屏显示(≥1400px 时卡片间距放大至 24px、轮播图高度上限 560px 保持 16:9 裁切),关闭时保持原有居中限宽布局;仅影响电脑端(≥1024px),手机端不受影响
  • 安全加固:新增 3 个后台设置项均为文本/单选并沿用既有标签体系;列数与大屏开关读取后经整型钳制(电脑 1-4)与布尔校验(wide 仅接受 1/y),非法值回落默认;渲染走既有全站输出转义;延续既有全部加固,本轮无需重复加固
  • 测试:PHP 语法检查通过;本地实测多场景全部通过——①默认态(侧边栏开 + 1 列 + 非大屏)单列 576px、内容区 960px 与改动前完全一致;②开启侧边栏 + 2 列 + 大屏:双列 419px、内容区满屏;③关闭侧边栏 + 3 列 + 大屏:三列 380px、满屏 1239px(截图比对通过);④手机 480px 视口:单列卡片、微语与轮播通栏同宽;后台设置页 3 项新选项(2 列数 + 1 大屏开关)全部正常渲染;测试数据已恢复默认值
  • 调整:移除「首页每排卡片数量(手机版)」设置及相关功能——后台不再提供手机版列数设置,手机 / 平板端(<1024px)首页文章卡片固定单列显示(与原有默认显示一致,无需任何操作);后台设置页仅保留电脑版两组列数设置
  • 修复:开启侧边栏且电脑端列数 ≥2 时搜索框被缩短——跨列规则(grid-column:1/-1)原只覆盖轮播/微语/分页/空态四类通栏模块,漏掉了导航栏下方搜索框(.tui-search-hero)与首页顶部条(.tui-home-top),列数 ≥2 时两者被并进单列变窄;已将两处通栏模块补入无侧边栏与开启侧边栏两组跨列规则;实测开启侧边栏 + 2 列时搜索框恢复 576px 全宽(与轮播图同宽,截图比对通过)
  • 优化:微语显示宽度与轮播图始终一致——当页面宽度达不到显示侧边栏(手机 / 平板端 <1024px,或电脑端关闭侧边栏)时,首页微语模块(.tui-twitter)与轮播图(.tui-slider)同属通栏模块(grid-column:1/-1),两者显示宽度始终一致,通栏整宽展示
  • 测试/加固:全量源码 BUG 筛查——①PHP 语法检查 19/19 个文件 0 失败;②JS 语法检查 common.js / qrcode.min.js 通过;③危险函数扫描仅命中 jQuery 压缩库与选项反序列化(静默失败符,无害);④SQL 注入面审计:侧边栏 SQL 表/字段/排序全白名单、微语分页 LIMIT 强转、SEO 优化模块 WHERE 经 SHOW COLUMNS 白名单拼装、导航数据走 JSON 文件无 SQL,均无用户输入进入 SQL;⑤XSS 输出面审计:header/footer/side/module/page_nav/404/page/pw/log_list/twitter_page 全部输出经 htmlspecialchars / esc() / json_encode(JSON_HEX_TAG) 转义;⑥鉴权审计:page_nav 增删改与升级入口均限管理员并校验同源 Referer、zip 魔数、路径穿越与文件数上限;⑦语言键审计:模板调用 206 个语言键 zh_CN / en_US 双语言零缺失;⑧前台实测首页/文章页/微语页/搜索页/404/后台设置页全部零 console 错误;未发现需修复的遗留 BUG

v2.8.6

  • 新增:侧边栏日历模块节日 / 节气倒计时——日历卡片在原有时间流逝进度(今日 / 本周 / 本月 / 今年已过时长与百分比)下方新增「节日节气倒计时」区块:

    • 节日 = 公历节日(元旦 / 情人节 / 妇女节 / 植树节 / 愚人节 / 劳动节 / 青年节 / 儿童节 / 建党节 / 建军节 / 教师节 / 国庆节 / 圣诞节)+ 农历传统节日(春节 / 元宵节 / 端午节 / 七夕节 / 中秋节 / 重阳节 / 除夕),农历节日由模板内置农历算法(1900-2100 经典数据表)精确换算,闰月正确;
    • 节气 = 二十四节气(小寒 / 大寒 / 立春 … 冬至,公历固定日期表);
    • 在今日起 400 天窗口内取最近事件,节日 / 节气各显示一条;今日命中显示「今日是 XX」,否则显示「距离 XX 还有 N 天」,倒计时天数逐日自动更新;
    • 每个倒计时项带专属 emoji 图标(春节 🏮 / 端午 🛶 / 中秋 🥮 / 重阳 🍂 / 除夕 🧧 / 节气 🌿 等),今日命中高亮渐变,手账风格与模板配色一致
  • 新增:侧边栏日历农历显示——日历卡片顶部显示「今日农历」,含天干地支年(如丙午年)、中文农历月日(如九月初二)与生肖(如马年),农历日期逐日自动更新

  • 调整:日历卡片名称改为「人生倒计时」——时间流逝进度 + 节日节气倒计时 + 农历三块内容统一归入「人生倒计时」卡片,主题更贴合手账生活模板定位

  • 优化:时间流逝进度显示效果统一——「今日 / 本周 / 本月 / 今年」四项时间流逝进度由原「文字 + 进度条」改为与节日节气倒计时一致的卡片样式(emoji 圆底图标 + 文本 + 百分比),四行统一(⏰ 今日 / 📅 本周 / 📆 本月 / 🗓️ 今年),整卡视觉风格完全一致、更美观

  • 调整:去除日历卡片右上角图标——「人生倒计时」标题右侧原蛋糕装饰图标移除,标题更简洁干净

  • 调整:去除节日节气倒计时分割线与标题——倒计时区块的虚线分隔线与「节日节气倒计时」文字移除,节日 / 节气两项倒计时直接衔接在时间进度下方,卡片更简洁紧凑

  • 安全加固:新增加载函数与日历区块输出均已通过 PHP 语法检查,农历算法经关键日期独立验算(春节 / 中秋 / 今日农历 / 重阳倒计时)正确无误

  • 新增:首页文章卡片封面叠加效果(默认开启)——后台「首页设置 → 首页文章卡片显示效果」选择「封面叠加」时,封面图作为整张卡片背景,文章标题、置顶/原创/分类标签、简介、话题标签、阅读全文、作者时间、浏览评论全部叠加在封面图上显示(底部渐变遮罩保证文字可读),卡片更窄更紧凑、一屏可展示更多卡片;悬停时封面图缓慢放大(scale 1.07)、遮罩加深、卡片轻微上浮并加深阴影,手账风更生动;选择「原有样式」完全恢复封面在上、文字在下的原纵向卡片布局

  • 新增:内置 16:9 封面图池——模板内置 8 张不同风格的 16:9 封面图(cover 目录);文章未设置封面且开启「封面叠加」效果时,自动按轮转从内置图池取一张作为卡片背景,同页不重复,无封面文章也能呈现完整叠加卡片

  • 新增:首页显示文章卡片数量设置——后台「首页设置 → 首页显示文章卡片数量」(默认 10,范围 1-50)控制首页每页显示的文章卡片数,其余文章自动分页显示(底部翻页按钮);模板通过模板初始化钩子(plugins.php)把该数值同步到 EMLOG 内核首页查询条数(index_lognum),后台设置保存后前台立即生效,不破坏 EMLOG 原有数据

  • 优化:卡片保持原布局宽度与修长比例——「封面叠加」模式下卡片左右宽度与原有样式完全一致:未开启侧边栏时保持双列网格、开启侧边栏时保持单列原宽,卡片高度按各自宽度恢复原来封面+文字的总高观感(双列约 370px、单列约 440px、手机端约 330px),不是缩窄变方的矮卡片;手机端始终单列

  • 优化:侧边栏滚动机制——电脑端开启侧边栏后,首页/文章页主内容滚动时侧边栏实时跟随(sticky 吸附导航栏下方),侧边栏内容超过一屏时在侧边栏内部滚动(细滚动条、按主题配色),侧边栏滚到顶部/底部后停止滚动,主内容/文章内容继续滚动;首页与文章页、侧边栏显示在左/右侧均适用

  • 安全加固:封面图地址输出沿用原 htmlspecialchars 转义;内置封面文件名来自固定目录 glob 结果(basename 白名单化,无用户输入进入 URL);首页数量设置经整型强制转换与 1-50 范围钳制(非法值回退默认 10),同步写入走 EMLOG 官方 Option/Cache 接口;新增 plugins.php 钩子无任何外部请求;延续既有全部加固(nosniff/SAMEORIGIN 头、全站输出转义、导航数据原子写入、升级入口鉴权、zip 魔数校验、路径穿越过滤、文件数上限、LOGO 协议过滤、侧边栏 SQL 白名单、IP 接口字面量校验),本轮无需重复加固

  • 测试:PHP 语法检查全部通过;本地实测「封面叠加」桌面双列渲染(文字叠加+遮罩+内置封面)、切换「原有样式」恢复原布局、首页数量设为 2 篇时分页正常出现(1 2 3 »)、后台首页设置两项新选项正常渲染,全部截图比对通过;测试数据已恢复原状

    v2.8.5

  • 新增:电脑端侧边栏智能滚动机制——首页 / 文章页内容滚动时侧边栏实时跟随:

    • 页面顶部:侧边栏恢复正常流,顶部可见、随内容正常滚动;
    • 滚动过导航线后,短侧边栏(一屏内放得下)切换为吸顶跟随(sticky top),滚动到侧边栏底部自然停止,主内容继续滚动;
    • 长侧边栏(超过一屏)切换为吸底跟随(sticky bottom),底部始终贴住视口底部实时跟随,侧边栏滚动到底(顶部到达父容器顶部边界)后停止跟随,首页 / 文章页内容继续滚动;
    • 手机端(<1024px 侧边栏不显示)不受影响;侧边栏内容动态变化(头像、微语等)自动校正位置
  • 优化:SEO 内容生成机制更智能——站点浏览器标题等生成更通顺、更利于搜索引擎收录:

    • 标题生成优先级:精炼的站点简介首句(≤24 字且不挤占标题空间)> 主题词自然短语组合 > 兜底文案;
    • 主题词组合改为中文自然短语:2 个词用「A与B」,3 个及以上用「A、B、C等」顿号连接;3 词以上不加「的」避免「等 的」拗口(如「专注手账、旅行、美食等内容分享平台」);
    • 站点简介过长时不再硬拼进标题被截断成「…」,自动改用精炼的主题词短语;描述中简介与定位句主题重复时自动省略,避免「专注…分享站,这是一个专注…平台」类啰嗦;
    • 主题词子串去重(如「旅行」被「旅行游记」覆盖时保留更长词条),站点关键字更精炼不冗余;
    • 原有安全行为保持:敏感词替代保通顺、标题 ≤60 字 / 描述 ≤150 字句子级截断、关键字逗号边界截断

v2.8.4

  • 新增:全站中文网址(IDN/Punycode)转译显示——页面内所有可见文本中的中文域名(如 xn--h0t0irjt23akiz.cn)一律转译为中文显示(如 开心彩棉糖.cn),覆盖文章正文、评论内容、导航页小纸条名称与描述、跳转确认弹窗(站点名 / 链接 / 风险提示)、侧边栏、底部友情链接等任意位置;动态弹窗/动态内容(登录窗、图片预览等)通过自动监听实时转译;仅改显示文本,链接地址(href)保持原始 punycode 不变,跳转不受影响
  • 修复:底部/外链跳转确认弹窗未转译——底部「即将离开本站」弹窗的站点名、链接地址、风险提示文案未做中文网址转译;根因是公共脚本为 defer 加载、页面底部内联脚本先于其执行,转译函数在脚本定义时尚未就绪而退化为原样输出;已改为点击弹窗时动态获取转译函数(与导航页弹窗同一机制),实测弹窗内链接与提示均显示中文域名
  • 增强:动态转译监听器升级——MutationObserver 不再依赖 jQuery ready,改为脚本加载完成时立即挂载;覆盖三类动态写入:新增元素节点(整棵子树)、往已存在元素写 textContent(弹窗 open() 最常见写法)、文本节点原地修改(characterData);登录/注册/找回密码弹窗、动态提示等任意新增或改写文本出现即自动转译,实测无 xn-- 残留
  • 调整:文章分享图底部网址的中文域名显示逻辑复用全站转译(行为一致);导航页(page_nav)动态生成的小纸条名称、描述与跳转确认弹窗文案同步支持中文网址转译
  • 新增:模板 SEO 设置——后台「模板设置」新增独立「SEO设置」标签页,含 6 个设置项:站点浏览器标题(全站 <title> 与各标题方案中的「站点名」优先使用)、站点关键字、站点浏览器描述(覆盖全站 <meta name="keywords"> / <meta name="description">)、文章浏览器标题方案、自建页面浏览器标题方案、微语浏览器标题方案(五种方案:默认沿用 EMLOG / 标题-站点名 / 站点名-标题 / 仅标题 / 标题|站点名);模板设置优先级高于 EMLOG 自带——模板设置了即覆盖 EMLOG 对应值,未设置则完整沿用 EMLOG 原生行为,不影响原有 SEO
  • 安全加固:新增后台 6 个设置项(3 个文本 + 3 个方案单选)——方案值经 header.php 白名单校验(仅允许 default/t1/t2/t3/t4,非法值按 default 处理);站点标题/关键字/描述输出沿用原 htmlspecialchars 转义(ENT_QUOTES);微语页标志仅写入全局内存变量、无外部请求/数据库操作;延续既有全部加固(nosniff/SAMEORIGIN 头、全站输出转义、导航数据原子写入、升级入口鉴权、zip 魔数校验、路径穿越过滤、文件数上限、LOGO 协议过滤、侧边栏 SQL 白名单、IP 接口字面量校验),本轮无需重复加固
  • 文档:模板说明(readme)与后台设置说明同步更新,版本号维持 2.8.4
  • 修复:后台「SEO设置」标签只显示首个设置项——SEO 三个设置项的说明文案中写入了裸 <title> / <meta name="keywords"> / <meta name="description"> HTML 标签,渲染进选项说明后被浏览器当作真实标签解析,导致后续全部选项被吞入 <title> 文本节点而消失(页面标题同时被污染为超长 HTML 文本);已将所有裸标签改为实体转义(&lt;title&gt; / &lt;meta name=&quot;keywords&quot;&gt; / &lt;meta name=&quot;description&quot;&gt;),中英文语言文件均已修复,实测后台 SEO 6 项与更新 API 3 项全部正常渲染
  • 新增:SEO 一键优化(手动)——后台「SEO设置」标签新增「一键优化 SEO」按钮,点击后根据站点当前内容(站点名 / 站点简介 / 分类 / 标签 / 最新文章)自动生成并替换保存「站点浏览器标题 / 站点关键字 / 站点浏览器描述」,完成后自动返回 SEO 设置页
  • 新增:SEO 自动优化(静默)——后台「SEO设置」新增「自动优化SEO」开关;开启后,前台访问时自动检测站点内容变化(文章 / 分类 / 标签 / 微语的数量与最新变化),内容发生变化时自动重新生成并替换保存上述 SEO 三项,全程静默无提示;关闭后自动优化不生效。手动一键优化与自动优化共用同一内容生成与保存逻辑
  • 优化:一键优化完成后返回原设置入口——从「模板设置插件页」进入时返回插件页,从「外观→模板→设置」进入时返回该页,并在两种入口下自动切换到「SEO设置」标签(无 TplShow 时自动滚动到 SEO 设置区)
  • 优化:「一键优化SEO」与「自动优化SEO」移动到「SEO设置」顶部,置顶展示便于操作
  • 优化:浏览器标题方案文案与拼接改版——文章 / 自建页面 / 微语标题方案中原「站点名」统一改为对应模板 SEO 设置项:t1「标题 - 站点浏览器标题」、t2「标题 - 站点关键字」、t3「仅标题」、t4「标题 - 站点浏览器描述」,拼接内容与文案一致
  • 优化:SEO 一键 / 自动优化生成内容改为「优化美化」——不再机械截取站点名 / 分类 / 标签 / 文章标题直接拼接,而是根据站点内容提炼主题定位:标题为「站点名 - 主题词组合内容分享」,关键字为主词 + 主题词 + 长尾组合(教程 / 攻略 / 分享 / 记录 / 生活,自动过滤「生活生活」类冗余),描述生成完整自然句(站点定位 + 简介 + 板块 + 最新内容 + 欢迎语),更易被搜索引擎收录
  • 优化:SEO 生成内容敏感词自动替换——标题 / 描述 / 关键字生成时自动将「博客 / 部落格 / Blog」等敏感字样替换为「主页」(前导「的 / 之 / 和 / 与」原样保留),既避免敏感词、又保持语句通顺
  • 新增:SEO 三项分项开关——「优化站点浏览器标题 / 优化站点关键字 / 优化站点浏览器描述」各自独立开关(默认开启);关闭的项,一键优化与自动优化均不会重新生成与替换,保持原有内容不变;全部关闭时一键优化与自动优化不对 SEO 做任何改动
  • 新增:SEO 生成内容字数限制——标题 ≤60 字、描述 ≤150 字、关键字 ≤150 字符;超长时智能截断:描述优先在中文句子标点边界截断保证语句通顺,标题 / 描述句内截断处追加省略号「…」,关键字按逗号边界保留完整词条,防止溢出又不失美观

v2.8.3

  • 调整:主题设置标签——「主题配色」及自定义配色设置统一移入新增的「主题设置」标签页;「自定义配色」精简为只需选择一个自定义主色,页面背景、卡片、文字、强调色、分隔线、深色模式配色全部按内置配色机制(color-mix)自动生成,无需逐个调色,显示效果与内置主题完全一致
  • 新增:内置配色扩充(6 款)——「主题配色」现提供 6 款配色(布局不变仅换配色):经典暖色(默认,原米黄手账风格)、抹茶绿、薄荷蓝、樱花粉、柠檬黄、薰衣草紫;每款均含配套深色变体,深浅色切换在任意配色下正常生效;浏览器标签栏主题色(theme-color)随所选配色同步切换
  • 新增:自定义配色(颜色选择器)——「主题配色」新增「自定义配色」选项,选择一个主色即可自动生成整套配色(页面背景、卡片、文字、强调色、分隔线、深色模式),默认值为抹茶绿系;所有色值经 #hex 白名单校验,非法值自动回退默认
  • 新增:鼠标样式(箭头变形系列 10 款 · V2)——「主题设置」新增「鼠标样式」选择:跟随系统(默认,浏览器原生指针)及 10 款箭头变形手绘光标(PNG 图片,位于模板 cursor 目录,本地相对引用,无外部依赖,128px 超采样绘制保证小尺寸边缘圆润):焦糖圆头箭头(圆润尖端+高光)、奶油厚边箭头(厚奶油描边)、抹茶叶形箭头(叶形翼尖+叶脉)、樱花花瓣箭头(三瓣花尖)、糖果拼色箭头(奶白+糖果粉拼块)、星星尖箭头(金星尖+星尘尾)、铅笔指针(整支铅笔造型)、荧光箭头(强多层光晕)、绿叶箭头(叶片轮廓+叶脉)、爱心箭头(中央爱心+爱心尾巴);每款均为独立形状、互不雷同,并统一增加荧光描边与光晕(同色系三层光晕 + 亮描边),更易发现光标位置;页面所有元素同步使用所选光标,输入框、文本域、下拉框内仍显示文本光标,不影响输入体验
  • 修复:鼠标样式前台不生效——修复光标焦点坐标语法(CSS 光标焦点坐标必须空格分隔,逗号分隔属非法语法会被浏览器丢弃整条声明)与样式覆盖问题(光标规则改为全局强制 html,body,body * + !important);修复后光标规则经浏览器解析器验证命中页面全部元素;V2 图形尖端坐标同步校准(32px 热点 3 3)
  • 安全加固:纯前台样式与后台配置项调整——光标文件名来自固定映射数组(无用户输入进入 URL);主题色值经 #hex 白名单校验(非法值回退默认);无新增外部请求/数据库操作;延续既有全部加固(nosniff/SAMEORIGIN 头、全站输出转义、导航数据原子写入、升级入口鉴权、zip 魔数校验、路径穿越过滤、文件数上限、LOGO 协议过滤、侧边栏 SQL 白名单、IP 接口字面量校验),本轮无需重复加固
  • 文档:模板说明(readme)同步更新,版本号升至 2.8.3

v2.8.2

  • 新增:搜索入口设置——后台「模板设置 - 首页设置」新增「搜索入口」开关与「搜索位置」选项:
    • 搜索入口(开关,默认开启):关闭后顶部导航栏与首页均不显示任何搜索入口
    • 搜索位置(默认「顶部导航栏里」):选择「顶部导航栏里」保持原有顶部导航栏右侧搜索按钮/搜索框不变(原样式与交互完全保留);选择「顶部导航栏下方」时顶部导航栏内不显示搜索,改为在导航栏与轮播图之间显示独立的搜索条(暖色手账风:卡片底、胶囊输入框、焦糖橘渐变搜索按钮,随深浅色主题自动适配),搜索条在首页与所有文章列表页顶部显示
    • 原有顶部导航栏内搜索锚点不受影响:默认位置下行为与 v2.8.1 完全一致(含电脑端侧边栏启用搜索组件时 PC 端隐藏、手机端始终显示的原逻辑)
    • 手机端搜索入口开关独立生效:手机端关闭搜索入口后,顶部导航栏与导航栏下方均不再显示任何搜索入口,与电脑端互不干扰
  • 新增:顶部导航栏内搜索框内嵌「搜索」按钮——电脑端顶部导航栏内搜索框展开后,输入框内右侧显示焦糖橘胶囊「搜索」按钮,输入关键字后点击按钮即可提交搜索(回车提交同样有效);导航项较多搜索框折叠为放大镜图标时,展开后按钮随搜索框一同显示
  • 修复:电脑端点击用户名/昵称无法弹出「个人中心 / 退出」菜单——原菜单定位容器被导航横向滚动裁剪导致弹出失效,改为以顶栏为定位锚点、菜单脱离滚动容器渲染;鼠标悬停或点击用户名即展开,再次点击即收起(收起时临时屏蔽 hover,避免鼠标仍停留在昵称上导致菜单重新展开,鼠标移出用户区后自动恢复悬停展开),点击菜单外区域自动关闭
  • 修复:电脑端导航项过多时导航栏溢出——导航改为横向滚动,电脑端鼠标悬停导航区滚动滚轮即可查看隐藏导航项,手机端滑动导航区即可滑动查看;网站名始终保持一行完整显示不换行
  • 修复:导航栏下方搜索条与侧边栏对齐——电脑端顶部导航栏下方搜索输入框上部与右侧边栏上部齐平、下部与下方内容间距与上部一致;电脑端、手机端同步去除搜索条外框,仅保留输入框与搜索按钮
  • 全面检测:静态检查(17 个 PHP 文件 php -l、3 个 JS 文件 node --check)全部通过;本地环境实测用户前台(首页微语最新在前、文章列表、详情页面包屑/版权与免责声明/分享弹窗/评论区 IP 归属地与设备信息、404 页、微语全列表页、外链跳转确认弹窗、主题深浅切换、页脚版权/备案/友情链接/实时运行时间)与管理员后台(统计与前台一致、模板设置六标签渲染、设置保存与前台联动、评论管理归属地/浏览器信息)全部功能正常;分享图生成/缓存复用/保存下载、评论提交与回显均验证通过;本轮实测产生的测试数据已清理,数据库恢复原状
  • 安全加固:纯前端表现层与后台配置项调整——新增 2 个设置项(开关 + 位置单选),位置值经 header.php 白名单校验(仅允许 nav/hero,非法值回退 nav);搜索条表单 action 为站内地址、keyword 参数由 EMLOG 搜索逻辑处理,无新增输入输出点/数据库操作/外部请求;延续既有全部加固(nosniff/SAMEORIGIN 头、全站输出转义、导航数据原子写入、升级入口鉴权、zip 魔数校验、路径穿越过滤、文件数上限、LOGO 协议过滤、侧边栏 SQL 白名单、IP 接口字面量校验),本轮无需重复加固
  • 文档:模板说明(readme)同步更新,版本号维持 2.8.2

v2.8.1

  • 优化:分享图生成两端通用且缓存复用——手机端与电脑端使用同一套 Canvas 绘制逻辑与固定画布(580×760),生成出的分享图片完全一致;分享图以「文章链接 + 标题 + 简介 + 发布日期」为键缓存,文章内容与链接未发生改变时只生成一次,之后点击「分享」直接调用缓存图片,不再重复生成;内容变更后自动重新生成并替换
  • 优化:二维码生成优先 canvas 输出——分享图中的二维码改为优先使用 qrcodejs 的 canvas 输出(同步生成,手机端/电脑端无需等待异步回调即可立即出图),img 输出仅作兜底,兜底等待由 6 秒缩短为 3 秒;二维码生成尺寸由 168px 提升至 220px,绘制后更清晰
  • 新增:二维码中心 LOGO——分享图片内的二维码中心显示模板「顶部图片 LOGO」(未设置时自动降级为竖排显示网站名),白底圆角小框贴合手账风格;中心 LOGO 尺寸控制在不影响扫码识别的范围内(二维码容错等级 M)
  • 安全加固:二维码输出仅来自页面本地 Canvas 绘制(qrcodejs 同步生成、无外部请求);中心 LOGO 仅引用站内配置的顶部图片(同源加载,协议已在后台设置处过滤);缓存读写保持 try/catch 包裹,localStorage 不可用时静默降级为每次生成,不影响功能;延续既有全部加固(nosniff/SAMEORIGIN 头、全站输出转义、导航数据原子写入、升级入口鉴权、zip 魔数校验、路径穿越过滤、文件数上限、LOGO 协议过滤、侧边栏 SQL 白名单、IP 接口字面量校验),本轮无需重复加固

v2.8.0

  • 优化:分享图顶部显示网站名——分享图片顶部首行改为显示站点名称(取自模板「网站名」设置,而非当前页面标题),文章标题下移一行展示,层级更清晰
  • 优化:分享图底部网址中文显示——分享图底部的站点链接在中文域名(IDN/Punycode)时自动转译为中文域名显示(如 xn--… → 中文域名),便于阅读;二维码内容仍为原始链接,不影响扫码跳转
  • 优化:评论运营商信息中文显示——评论 IP 归属地的运营商名称(ISP)通过内置映射表翻译为中文(阿里云/中国电信/中国联通/中国移动/腾讯云/百度/谷歌/华为云等常见运营商),未命中的保留原名;归属地格式统一为「国家·省份·城市」
  • 新增:评论设备信息增强——评论内容底部由「操作系统·浏览器·机器品牌」升级为「操作系统名称及版本(如 Windows 10、macOS 13、Android 13、iOS 17)· 浏览器及版本(如 Chrome 120)· 机器品牌及型号(如 Apple iPhone、Apple Mac、小米 2312DRA50C、三星 SM-…)」;全部由模板服务端从评论 UA 直接解析,不读取浏览器设置
  • 优化:评论区 UI——每条评论独立成行、以圆角卡片框圈起,一个用户的评论(含其收到的全部回复)显示在同一个圈内;回复评论(子评论)不单独圈框,以缩进+左侧竖线跟随在父评论圈内展示;电脑端圆角 12px、手机端 10px,评论更清晰易读
  • 安全加固:新增服务端 UA 解析函数(tui_get_os / tui_get_browser / tui_get_device)仅做字符串匹配与正则提取,不引入外部输入面;ip_info.php 运营商映射表为纯只读数组匹配;输出仍全部 htmlspecialchars 转义;延续既有全部加固(nosniff/SAMEORIGIN 头、全站输出转义、导航数据原子写入、升级入口鉴权、zip 魔数校验、路径穿越过滤、文件数上限、LOGO 协议过滤、侧边栏 SQL 白名单、IP 接口字面量校验),本轮无需重复加固

v2.7.0

  • 新增:文章版权与免责声明——每篇文章正文底部显示版权信息与免责声明区块;后台「文章页设置」提供显示开关、版权信息内容、免责声明内容(每行一条)三项配置,内容均留空则整个区块不显示
  • 新增:文章分享——文章底部「分享」按钮,点击弹出分享窗,窗内 Canvas 实时生成一张分享图片(站点名、文章标题、文章简介、文章链接二维码、站点链接与生成日期,手账暖色风),图下「保存分享图片」按钮一键下载 PNG;图片以「文章链接+标题+简介+日期」哈希缓存,链接与内容未变时一直复用原图,内容变更自动重新生成
  • 新增:评论显示 IP 归属地——前台评论区昵称旁显示评论 IP 的归属地与网络运营商(如「江苏 南京 · 中国电信」),回环/私网地址显示「本地网络」;归属地由模板内置接口异步查询(ip-api.com 中文接口),结果本地缓存,查询失败显示「未知」不影响评论
  • 新增:评论显示设备信息——每条评论内容底部显示评论者的操作系统、浏览器与机器品牌(从评论 UA 读取解析,不读取浏览器设置;OS/浏览器由 EMLOG 核心 UA 解析,机器品牌由前端 UA 关键词推断)
  • 新增:后台「模板设置」新增「文章页设置」标签页,上述声明/分享/评论信息六个设置项集中管理,不再散落于首页设置
  • 修复:后台评论管理列表的 IP 归属地/运营商注入——EMLOG 后台评论列表由核心 admin 文件渲染且无模板注入点,模板包按规范不得修改核心文件,故归属地仅在前台评论区展示(后台列表仍显示评论 IP 原文)
  • 安全加固:新增 ip_info.php 归属地接口为无状态独立脚本——仅接受合法 IPv4/IPv6 字面量(filter_var 校验,拒绝域名与任意字符串)、回环/私网/保留地址直接返回「本地网络」不发外部请求、curl 8s 超时、输出 nosniff+no-store JSON;声明/分享输出全部 htmlspecialchars 转义;分享图仅本地 Canvas 绘制,保存走 Blob 下载;评论 IP 与设备信息均经 htmlspecialchars 转义后输出;延续既有全部加固(nosniff/SAMEORIGIN 头、全站输出转义、导航数据原子写入、升级入口鉴权、zip 魔数校验、路径穿越过滤、文件数上限、LOGO 协议过滤、侧边栏 SQL 白名单),本轮无需重复加固

v2.6.1

  • 修复:页脚外部链接跳转确认弹窗在电脑端不居中、手机端偏上的问题——打开弹窗时统一以 display:flex 覆盖内联 none 恢复弹性居中;定位从 inset 简写改为 top/left/right/bottom 四边兼容写法,全端稳定居中
  • 修复:手账导航页跳转确认弹窗弹出时先偏移、再弹回居中的「弹跳」问题——原位移动画(tui-pop)在动画期间覆盖了面板 translate(-50%,-50%) 的居中定位,先偏下偏右再跳回中心;已为导航页面板改用专用纯透明度淡入动画(tui-fade),弹出即直接居中,不再弹跳
  • 修复:进入手账导航页后登录态丢失、需重新登录的问题——导航数据增删改的 fetch 请求显式携带本站登录 Cookie(credentials:'same-origin'),确保个别浏览器/插件默认策略下服务端仍能正确识别登录管理员;GET 与原生表单(302 回跳)通道登录态实测稳定保持
  • 新增:外部链接跳转确认弹窗由页脚扩展至全站——正文内链、侧边栏链接、顶部导航、页脚等所有 target="_blank" 外部链接,点击时统一弹出确认框(含目标站点、地址、风险提醒与免责说明),确认后才新窗口打开;手账导航页卡片仍由导航页自带的确认弹窗处理,互不冲突
  • 优化:弹窗中的站点名称改为取链接的直接文本(不再混入侧边栏链接下方的描述文字),展示更准确
  • 安全加固:本轮改动均为前端交互与防御性修复,无新增服务端输入面;延续既有全部加固(nosniff/SAMEORIGIN 头、全站输出转义、导航数据原子写入、CSRF 同源校验、升级入口鉴权、zip 魔数校验、路径穿越过滤、文件数上限、LOGO 协议过滤、侧边栏 SQL 白名单),本轮无需重复加固

v2.6.0

  • 新增:页脚外部链接跳转确认弹窗——点击页脚友情链接、ICP备案、公安备案等外部链接时弹出确认框,展示目标站点与地址,并附风险提醒与免责说明(提醒勿在陌生网站输入账号密码、谨慎保护个人信息与财产安全,继续访问即表示知悉并自愿承担风险),确认后才新窗口打开
  • 适配:手账导航页面模板(page_nav.php)全面适配主模板——由独立的整页模板改为内容块模板,自动挂接主模板顶部导航、搜索、底部信息、登录弹窗与明暗主题;样式与配色全部并入 css/style.css(.tui-navpage-* 前缀),跟随主模板 CSS 变量与 data-theme 深浅色自动适配;导航页同样支持电脑端侧边栏联动;移除对第三方图片/字体的依赖(hero 头像改为站名首字渐变圆),页面加载更快更安全
  • 优化:手账导航页点击外部小纸条的确认弹窗同步升级——标题改为「即将离开本站」,正文包含风险提醒与免责说明,文案与页脚弹窗统一(支持中英双语)
  • 调整:页脚公安网备案不再显示「公安网备案:」文字与冒号,只显示备案号(如:苏公网安备 32010202010456 号)
  • 安全加固:本轮新增页脚外链确认弹窗为纯前端交互,无新增服务端输入面;导航页移除第三方 CDN 图片与字体引用,降低外部依赖风险;延续既有全部加固(nosniff/SAMEORIGIN 头、全站输出转义、导航数据原子写入、CSRF 同源校验、升级入口鉴权、zip 魔数校验、路径穿越过滤、文件数上限、LOGO 协议过滤、侧边栏 SQL 白名单),本轮无需重复加固

v2.5.0

  • 新增:底部设置独立分组(后台「模板设置 - 底部设置」),集中管理版权信息、ICP备案、公安网备案、友情链接、网站运行时间
  • 新增:版权信息(开关 + 内容),显示在备案信息上方,内容留空则不显示
  • 调整:ICP备案改为模板后台独立设置(新增「ICP备案号」输入项),不再读取 EMLOG 后台的 ICP 备案号
  • 优化:电脑端 ICP 备案与公安网备案合并为一行显示,中间以「|」分隔;仅当两项备案均开启且填写了备案号时才显示分隔符;手机端保持独立两行不变
  • 优化:网站运行时间增加秒级实时计时(每秒刷新,显示 天/时/分/秒)

v2.4.0

  • 新增:页脚底部信息模块(后台「首页设置」均可独立开关,内容留空则前台不显示)
    • ICP备案:显示 EMLOG 后台填写的 ICP 备案号,点击跳转工信部官网
    • 公安网备案:填写备案号与链接(留空默认公安部官网),点击跳转公安部备案查询官网
    • 友情链接:多行「名称|链接」配置,页脚一行展示,可点击跳转
    • 网站运行时间:设置建站起始日期,页脚实时显示已运行天数/小时/分钟

v2.3.2

  • 优化:文章详情页面包屑升级为三级导航「首页 › 分类 › 文章标题」——分类层级自动读取该文章所属分类名并可点击跳转,颜色略深以区分层级,无分类时自动回退两级
  • 优化:移除文章标题上方独立的分类胶囊按钮(信息已并入面包屑三级),页面更干净;置顶标签保留

v2.3.1

  • 优化:文章详情页面包屑升级为圆角胶囊手账风——浅米渐变底、暖色细边与柔和投影,左侧配首页小房子图标,分隔符由斜杠改为 chevron「›」,当前文章标题加粗深色、超长省略;手机端自动限制标题宽度不撑破胶囊,整体更精致

v2.3.0

  • 新增:文章列表与详情页日期改为智能相对时间——「刚刚 / x分钟前 / x小时前 / 昨天 HH:mm / x天前 / x个月前」,超过 90 天自动回退为完整日期,鼠标悬停仍可查看完整时间
  • 新增:文章详情页顶部阅读进度条(焦糖色细条,随页面滚动实时前进)
  • 新增:文章详情页面包屑导航(首页 / 文章标题),提升页面层级感
  • 新增:正文图片灯箱——点击文章内图片全屏预览,点击空白处或按 ESC 关闭
  • 新增:文章卡片底部「阅读全文 →」入口,箭头随悬停微动,强化可点性
  • 优化:文章摘要最多显示 3 行(CSS line-clamp),不再因超长摘要撑破卡片
  • 优化:文章代码块升级为深色圆角主题(行内 code 暖底红字),表格、引用块样式统一手账风
  • 优化:jQuery 与 common.js 加 defer,不再阻塞首屏渲染,页面打开更快
  • 修复:模板头部 fallback 版本号 $v 仍停留在 2.2.6 的回退问题,统一为 2.3.0
  • 安全加固:本轮新增的灯箱/进度条均为前端只读交互,无新增服务端输入面;相对时间函数对非法入参兜底返回空串;延续既有全部加固(全站输出转义、LOGO 协议过滤、侧边栏 SQL 白名单、升级入口鉴权、zip 魔数校验、路径穿越过滤),本轮无需重复加固

v2.2.7

  • 调整:顶部「搜索按钮」与首页「微语条」改为仅电脑端(≥1024px)受侧边栏组件联动隐藏——电脑端侧边栏开启且启用「搜索/微语」组件时隐藏顶部对应入口(由侧边栏承担);手机端无论电脑端侧边栏开启还是关闭,顶部搜索按钮与微语条始终显示,不再受联动影响
  • 实现:隐藏逻辑由 PHP 条件渲染改为 .tui-hide-pc 类 + CSS 媒体查询(≥1024px 才应用 display:none),手机端样式无任何隐藏规则,保证小屏始终可见
  • 修复:侧边栏「存档」模块链接在未开启伪静态(isurlrewrite=off)时 404——原实现硬编码 record/年月/ 路径,伪静态关闭时该路由不存在;现改为调用 EMLOG 官方 Url::record() 自适应生成链接(伪静态开→record/年月/,关→?record=年月),存档点击始终可访问
  • 安全加固:本轮仅调整渲染层 class 与样式规则,无新增输入/输出面;延续既有全部加固(nosniff/SAMEORIGIN 头、全站输出转义、导航数据原子写入、升级入口鉴权、zip 魔数校验、路径穿越过滤、文件数上限、LOGO 协议过滤、侧边栏 SQL 白名单),本轮无需重复加固

v2.2.6

  • 新增:侧边栏「日历」模块改为时间流逝进度样式(参照手账风时间进度组件)——展示今日/本周/本月/今年已经过去的时长、百分比与十段式进度条(分段色块实时填充),右上角配彩色冰淇淋装饰图标,深浅色模式自动适配
  • 修复:侧边栏「微语」模块排序彻底修正——不再依赖数据源顺序,改为直接按发布时间(date 时间戳)倒序查询(id 仅作并列稳定排序),侧边栏与微语全列表页同步修复,确保最新发布的微语永远排在最上面
  • 优化:日历模块不再依赖当月文章日期查询(去掉一次数据库遍历),纯服务器时间计算,加载更快
  • 安全加固:日历/微语输出继续沿用全站 htmlspecialchars 转义;微语查询走侧边栏 SQL 字段白名单机制(table/fields/order 白名单校验,杜绝注入与未知列报错);延续既有全部加固(nosniff/SAMEORIGIN 头、导航数据原子写入、升级入口鉴权、zip 魔数校验、路径穿越过滤、文件数上限、LOGO 协议过滤、侧边栏 SQL 白名单),本轮无需重复加固

v2.2.5

  • 修复:侧边栏「后台已开启但前端不渲染」的根本问题——v2.2.4 自造的组件键名与 EMLOG Pro 官方 widgets1 键名(blogger/calendar/tag/twitter/sort/archive/newcomm/newlog/hotlog/link/search/customwg)不一致,导致所有组件落入无效分支被静默跳过;本轮将侧边栏渲染整体改为官方 widget_ 回调范式(与 EMLOG 官方 default 模板一致),新增全部官方组件回调并对新旧键名自动归一,后台开启的组件前端必定渲染
  • 新增:侧边栏 12 类模块全部可用——个人资料(博主卡:头像/昵称/签名/文章·评论·标签统计)、日历、微语、标签、分类、存档、最新评论、最新文章、热门文章、链接、搜索、自定义文本组件,模块与顺序完全由后台「侧边栏/组件」配置决定
  • 修复:博主卡统计改读 EMLOG 核心 sta 缓存(文章数/评论数)并兼容新旧模型,标签数由标签缓存实时计算,统计与后台数据一致
  • 修复:微语模块输出不再二次转义(EMLOG Pro 已将微语内容渲染为 HTML,避免双引号/标签错乱)
  • 修复:标签模块链接补全站点前缀(Url::tag),点击可正常跳转
  • 修复:移除侧边栏微语项的死链(EMLOG Pro 无独立微语页),避免 404
  • 优化:顶部微语条/搜索按钮与侧边栏组件联动——侧边栏开启「微语」时顶部微语自动隐藏、开启「搜索」时顶部搜索按钮隐藏,对应组件未开启则照常显示
  • 优化:首页文章布局联动——未开启侧边栏时保持双列卡片网格,开启侧边栏后文章改为单列展示
  • 安全加固:侧边栏新增 SQL 全部经字段白名单+表前缀校验拼接(主键仅 id/gid、审核列仅 checked),杜绝注入与未知列报错;延续既有全部加固(nosniff/SAMEORIGIN 头、导航数据原子写入、全站输出转义、升级入口鉴权、zip 魔数校验、路径穿越过滤、文件数上限、LOGO 协议过滤),本轮无需重复加固

v2.2.4

  • 修复:侧边栏「微语、标签、分类、最新评论、最新文章、热门文章、链接」等模块在后台已开启但前端不渲染的问题——侧边栏配置读取改为多路兼容(options_cache 全局 / Option 类 / 缓存对象三路兜底)并支持序列化、JSON、数组三种格式解析;任一方式读取失败时兜底渲染全部内置组件,确保后台已开启的组件前端一定显示
  • 修复:标签、分类模块不再依赖 EMLOG 各版本签名不一致的模型方法,改为白名单 SQL 直查 tag/sort 表(字段全部白名单拼接,兼容新旧版表结构),杜绝未知列与注入风险
  • 优化:顶部导航的「微语条」与「搜索按钮」改为按组件联动隐藏——仅当后台侧边栏配置中开启了「微语/搜索」组件时自动隐藏顶部对应入口(避免重复展示),未开启时照常显示
  • 优化:首页文章布局联动——未开启侧边栏时保持双列卡片网格,开启侧边栏时主内容区文章改为单列展示,侧边栏占用右侧空间
  • 安全加固:侧边栏新增 SQL(tag/sort 表直查)沿用字段白名单拼接机制;延续既有全部加固(nosniff/SAMEORIGIN 头、导航数据原子写入、全站输出转义、升级入口鉴权、zip 魔数校验、路径穿越过滤、文件数上限、LOGO 协议过滤),本轮无需重复加固

v2.2.3

  • 重构:侧边栏不再写死模块,改为完全读取 EMLOG 后台「侧边栏/组件」设置(option.widgets1 配置)动态渲染——模块与顺序全部由后台决定,包含:个人资料(博主卡)、日历、微语、标签、分类、存档、最新评论、最新文章、热门文章、链接、搜索、自定义文本组件,共 12 类模块
  • 新增:日历模块(当月日历,有文章日期高亮)、存档模块(按年月分组计数)、最新评论模块(白名单 SQL 读取)、热门文章模块(按浏览量排序)、链接模块、搜索模块、自定义文本组件(后台自定义组件内容原样输出)
  • 新增:支持后台自定义组件标题(widget_title 解析,格式『模块名 (标题)』自动提取)与自定义文本组件
  • 兼容:评论表/链接表同样按探测结果白名单取列(兼容新旧版 EMLOG 表结构),全部模块数据均来自 EMLOG 核心 API 或白名单 SQL,杜绝注入与未知列报错
  • 安全加固:新增模块 SQL 全部沿用字段白名单拼接机制;延续既有全部加固(nosniff/SAMEORIGIN 头、导航数据原子写入、全站输出转义、升级入口鉴权、zip 魔数校验、路径穿越过滤、文件数上限、LOGO 协议过滤),本轮无需重复加固

v2.2.2

  • 修复:开启「电脑端侧边栏」后文章列表报 SQL 1054 Unknown column 'id' in 'order clause'。原因:经典版 EMLOG 的 blog 表主键为 gid 而非 id,ORDER BY 引用 id 列不存在;现改为先 SHOW COLUMNS 探测表结构——有 id 列则按 id 排序、否则按 gid 排序,checked 审核列同样按探测结果动态拼接,兼容新旧版本 EMLOG,不再产生任何 SQL 报错
  • 安全加固:侧边栏 SQL 全部由白名单字段拼接(主键列仅允许 id/gid、审核列仅允许 checked),杜绝注入;延续既有全部加固(nosniff/SAMEORIGIN 头、导航数据原子写入、全站输出转义、升级入口鉴权、zip 魔数校验、路径穿越过滤、文件数上限、LOGO 协议过滤),本轮无需重复加固

v2.2.1

  • 修复:开启「电脑端侧边栏」后首页右侧留空的问题——未开启侧边栏时首页恢复原有双列卡片布局(不再额外包裹主内容容器,右侧不再空置),开启后仍为主内容 + 侧边栏双栏排版
  • 优化:开启电脑端侧边栏后,首页顶部微语区块自动隐藏(避免重复展示),关闭侧边栏时首页微语恢复显示
  • 修复:开启侧边栏后文章列表 SQL 1064 报错。原因:不同 EMLOG 版本 Log_Model::getLogsForHome() 参数签名不一致(部分版本为 条件+分页 形式),按页码传参导致生成 ... and date<= 时间戳 1 LIMIT 40, 10 的损坏 SQL;现改为原生 SQL 查询最新文章,并先探测 blog 表字段(兼容有无 checked 审核字段的新旧版本),字段值全部白名单拼接,杜绝 SQL 注入
  • 安全加固:侧边栏最新文章 SQL 全部使用常量字段与强类型取值;延续既有全部加固(nosniff/SAMEORIGIN 头、导航数据原子写入、全站输出转义、升级入口鉴权、zip 魔数校验、路径穿越过滤、文件数上限、LOGO 协议过滤),本轮无需重复加固

v2.2.0

  • 新增:电脑端侧边栏(参照双栏模板布局)——屏幕宽度 ≥1024px 时,内容区右侧显示侧边栏,手机端始终隐藏
  • 新增:侧边栏包含博主卡片(头像/昵称/签名)、站点统计(文章/评论/标签数)、最新文章、全部分类、标签云,全部使用 EMLOG 核心 API 实时读取
  • 新增:后台「首页设置」新增「电脑端侧边栏」开关,默认关闭,开启后电脑端显示侧边栏
  • 新增:侧边栏支持详情页、自建页面、首页与全部列表页(分类/标签/搜索页),滚动时侧边栏跟随吸顶
  • 优化:首页开启侧边栏后,主内容区保持双列卡片网格布局,与侧边栏并列排版
  • 调整:后台设置说明精简为「模板介绍 + 设置说明」,移除全部更新说明与更新日志(历史版本记录见本 readme 版本历史)
  • 安全加固:侧边栏全部输出经 htmlspecialchars 转义;统计/列表读取均做模型类存在性检查与异常兜底;延续既有全部加固(nosniff/SAMEORIGIN 头、导航数据原子写入、全站输出转义、升级入口鉴权、zip 魔数校验、路径穿越过滤、文件数上限、LOGO 协议过滤)

v2.1.0

  • 新增:「顶部图片 LOGO」设置升级为三种方式——点击上传图片文件、从媒体库选择已有图片、直接粘贴图片地址,任选其一
  • 优化:上传的 LOGO 图片由 EMLOG 后台统一管理,无需外部图床;媒体库/上传返回的相对路径自动补全为站内绝对地址
  • 安全加固:LOGO 地址做协议过滤,非 http(s)/站内相对路径一律拼接域名前缀,杜绝 javascript: 等危险协议注入
  • 说明:v2.0.10 未单独发布,其改动合并入本版本

v2.0.9

  • 新增:后台「首页设置」新增「顶部图片 LOGO」选项,填写图片地址后,导航栏显示该图片并替换网站名称及其单字 LOGO;留空则继续显示网站名称
  • 优化:移除登录用户昵称/账号前的单字圆形 LOGO 显示,导航栏更简洁
  • 修复:点击昵称/账号展开下拉菜单后再次点击无法关闭的问题——原因是 CSS :focus-within 与 JS 类的焦点残留冲突;已移除焦点残留控制,菜单开合完全由 JS 类管理,点击菜单外部也会自动收起
  • 安全加固:延续 v1.1–v2.0.8 全部已有加固(nosniff/SAMEORIGIN 头、导航数据原子写入、全站输出转义、升级入口鉴权、zip 魔数校验、路径穿越过滤、文件数上限)

v2.0.8

  • 修复:后台设置首页微语只显示 1 条时,实际显示的是最旧的那条。原因是 getTwitters 在 SQL 层就 LIMIT 了条数,若 EMLOG 按升序返回,LIMIT 1 拿到的是最旧记录,PHP 端排序只有 1 条数据无法修正
  • 修复方式:改为先取 50 条微语,按自增 id 倒序排序后再 array_slice 截取需要的条数,确保无论后台设置显示几条,第一条永远是最新发布的微语

v2.0.7

  • 修复:微语排序问题彻底修正。v2.0.6 用 strtotime(date) 排序,当 date 字段是 Unix 时间戳或已格式化字符串时解析失败导致排序无效;改为优先按自增 id 倒序(id 越大越新),日期作为兜底,确保最新发布的微语一定排在最上面
  • 首页微语区块和微语全列表页均已修正

v2.0.6

  • 修复:用户下拉菜单中「个人中心」「退出」链接点击无响应的问题(之前 JS 把整个用户菜单内的链接都拦截了),现在可正常跳转
  • 修复:微语列表(首页微语区块和微语全列表页)严格按发布时间倒序排列,最新的微语显示在最上面
  • 新增:导航栏搜索功能——顶栏右侧放大镜图标,点击展开搜索输入框,输入关键字后回车或再次点击放大镜提交,走 EMLOG 原生模糊搜索
  • 安全加固:延续 v1.1–v2.0.5 全部已有加固(nosniff/SAMEORIGIN 头、导航数据原子写入、全站输出转义、升级入口鉴权、zip 魔数校验、路径穿越过滤、文件数上限)

v2.0.5

  • 优化:导航栏移除独立的「退出」按钮,登录用户昵称改为下拉触发器
  • 新增:桌面端鼠标悬停昵称、触屏端点击昵称,上下展开「个人中心」和「退出」两个选项
  • 新增:「个人中心」直接进入后台;昵称前显示首字母圆形头像,右侧带向下箭头指示
  • 优化:移动端汉堡菜单内同样支持点击昵称展开/收起用户菜单,不影响普通导航链接
  • 安全加固:延续 v1.1–v2.0.4 全部已有加固(nosniff/SAMEORIGIN 头、导航数据原子写入、全站输出转义、升级入口鉴权、zip 魔数校验、路径穿越过滤、文件数上限)

v2.0.4

  • 新增:大屏(≥1024px)顶部导航栏不再折叠为汉堡菜单,直接横向展开显示所有导航链接
  • 优化:大屏隐藏汉堡按钮和遮罩层,导航项显示为圆角胶囊样式,当前页高亮为焦糖橘色
  • 优化:桌面端导航链接悬停有背景反馈,鼠标操作更直观
  • 安全加固:延续 v1.1–v2.0.3 全部已有加固(nosniff/SAMEORIGIN 头、导航数据原子写入、全站输出转义、升级入口鉴权、zip 魔数校验、路径穿越过滤、文件数上限)

v2.0.3

  • 优化:大屏(≥1024px)首页文章卡片改为双列网格布局,桌面端浏览效率大幅提升
  • 优化:内容区宽度逐级扩展——平板 760px → 桌面 960px → 超宽屏(≥1400px)1080px,不再是窄手机条居中
  • 优化:桌面端轮播图高度增至 340px(超宽屏 380px),封面图和文章间距更舒展
  • 优化:文章详情页字号、行距、评论区间距在大屏上同步放大(正文 16.5px、行距 1.9)
  • 优化:大屏背景增加暖色渐变氛围层,视觉层次更丰富
  • 优化:分页按钮、浮动按钮、顶栏圆角在大屏上比例协调
  • 安全加固:延续 v1.1–v2.0.2 全部已有加固(nosniff/SAMEORIGIN 头、导航数据原子写入、全站输出转义、升级入口鉴权、zip 魔数校验、路径穿越过滤、文件数上限)

v2.0.2

  • 新增:多屏幕响应式适配——小屏手机(≤360px)紧凑布局、标准手机默认、大屏手机/小平板(481px+)加宽内容区、平板(769px+)进一步优化排版
  • 新增:历史评论消息完整展示不压缩——所有屏幕尺寸下评论内容自动换行完整显示,子评论缩进随屏幕宽度自适应调整
  • 新增:viewport 允许用户双指缩放(移除 maximum-scale=1 限制),小屏阅读更清晰
  • 新增:横屏手机自动优化布局(弹窗高度限制、轮播高度收缩)
  • 新增:刘海屏安全区(safe-area-inset-bottom)适配
  • 调整:内容最大宽度从固定 480px 改为随屏幕尺寸自动变化(360px 以下全宽、481px+ 560px、769px+ 680px)
  • 安全加固:独立页面(微语全列表页、升级脚本、手账导航页)增加 X-Content-Type-Options: nosniff 和 X-Frame-Options: SAMEORIGIN 头
  • 安全加固:手账导航数据文件写入改为原子操作(先写临时文件再 rename),防止写入中断导致数据损坏
  • 安全加固:延续 v1.1–v2.0.1 已完成的全站输出转义、升级入口鉴权、zip 魔数校验、解压路径过滤、文件数上限

v2.0.1

  • 新增:更新API设置面板顶部加入「甜橙更新推送管理」站快捷链接(新窗口打开)
  • 版本号同步至 2.0.1

v2.0.0

  • 主版本升级:更新逻辑确认为仅解压覆盖同名文件,升级过程不删除模板目录下任何现有文件,用户自定义内容全保留
  • 升级步骤文案明确化:覆盖阶段只替换更新包内同名文件,不做目录清空
  • 安全:延续 zip 魔数校验、路径穿越过滤、文件数上限、管理员鉴权

v1.10

  • 更新时仅解压覆盖,不再清空模板目录,保留自定义文件

v1.9

  • 修复:微语全列表页顶部 LOGO 和网站名不显示(独立入口未 extract option)
  • 完善:微语页 title 设为「微语 - 站名」
  • 后台说明:补充当前功能清单与 v1.0–v1.9 更新日志

v1.8

  • 修复:后台「首页显示微语」开关不显示的问题(checkon 类型补全 values 配置)
  • 调整:微语开关默认开启,首页默认显示最新微语
  • 确认:后台设置说明含模板简介与 v1.0–v1.8 更新日志
  • 安全:微语输出仍走 htmlspecialchars 转义

v1.7

  • 新增:首页第一页显示微语区块(毛玻璃卡片样式),点击「查看全部」跳转微语页
  • 新增:后台「首页设置」增加「首页显示微语」开关和「微语显示条数」(1–20)
  • 调整:后台更新标签由「更新检测」改名为「更新API设置」
  • 新增:后台设置说明页加入模板简介和完整更新日志
  • 安全加固:v1.1–v1.6 已完成的全站输出转义、升级入口鉴权、zip 魔数校验、解压路径过滤、文件数上限继续保留;微语内容输出前 htmlspecialchars

v1.6

  • 调整:升级完成后不再自动关闭进度弹窗,在日志末尾追加「✓ 更新完成,请关闭窗口进行刷新体验新功能」
  • 新增:弹窗标题栏右上角增加 × 关闭按钮,用户看完进度后可手动关闭
  • 安全加固:v1.1–v1.5 已完成的全站输出转义、升级入口鉴权、zip 魔数校验、解压路径过滤、文件数上限继续保留,本轮未发现新注入点

v1.5

  • 调整:移除更新面板顶部的「立即检测」手动按钮(进入设置页自动检测,无需手动点)
  • 调整:移除发现新版本后的「手动下载」链接(统一走「自动备份并升级」弹窗流程)
  • 安全加固:v1.1–v1.4 已完成的全站输出转义、升级入口鉴权、zip 魔数校验、解压路径过滤、文件数上限继续保留,本轮未发现新注入点

v1.4

  • 修复:后台点「立即检测」后整页刷新会跳回默认标签,现在检测完成后自动停留在「更新检测」标签
  • 新增:点「自动备份并升级」不再直接跳转,而是弹出毛玻璃模态窗口,分步实时显示 备份→下载→校验→解压→覆盖→清理→完成 的进度;完成后自动关闭弹窗并刷新父页
  • 安全加固:v1.1/v1.2/v1.3 已完成的全站输出转义、升级入口鉴权、zip 魔数校验、解压路径过滤、文件数上限继续保留,本轮未发现新注入点

v1.3

  • 调整:顶部品牌区 LOGO(站点首字方块)保持在网站名左侧,与站名横向排列
  • 修复:取消登录后导航里「管理」项昵称前的用户头像显示,登录后只显示昵称与退出入口
  • 安全加固:v1.1/v1.2 已完成的全站 htmlspecialchars 转义、升级入口鉴权、zip 魔数校验、解压路径过滤继续保留,本轮未发现新的注入点

v1.2

  • 新增:发现新版本后「自动备份并升级」一键流程——自动备份当前模板到 content/backup/tiancheng_ui_时间戳/,自动从更新服务器下载新版 zip,校验后自动解压覆盖,完成后自动清理下载缓存与临时解压目录
  • 新增:升级前二次确认弹窗;升级完成后在设置页显示结果提示(含备份目录名,便于回滚)
  • 安全加固:升级入口仅管理员可访问;下载 zip 校验 PK 魔数;解压时过滤 ../、绝对路径与盘符等非法路径;限制单包文件数 ≤500;覆盖前先备份,失败自动清理半成品
  • 调整:原「下载更新包」外链改为「自动备份并升级」主按钮,保留「手动下载」副链
  • 说明:v1.1 已完成的全站 htmlspecialchars 输出转义、views/comnum 强转整型等加固在本版继续保留

v1.1

  • 新增:模板后台「更新检测」标签页,对接更新推送管理系统 API(check.php / download.php,X-API-Key 鉴权)
  • 新增:进入模板设置页自动检测更新(结果缓存 10 分钟),附「立即检测」手动按钮
  • 新增:设置项「更新服务器地址」「API 密钥」「站点域名」,检测所需参数统一从模板设置读取
  • 新增:发现新版时展示最新版本号、发布日期、更新说明、包大小与下载链接
  • 安全加固:全站模板输出统一 htmlspecialchars 转义(文章标题、分类名、作者昵称、评论者昵称、轮播配置、备案号、站点标题/关键词/描述、评论表单 cookie 预填值等),views/comnum 强转整型
  • 修复:修复版/密码页 CSS 版本号写死导致的缓存问题,改为按文件修改时间动态加载
  • 修复:上一版顶栏汉堡菜单与主题按钮在 head 同步加载下点击无效的问题(事件绑定移入 DOM ready)

v1.0

  • 首个手机版暖色手账风格版本:毛玻璃顶栏/导航/登录注册弹窗、轮播、文章卡片、明暗主题、返回顶部
版权与免责声明

本站所有原创文章均受著作权法保护,未经作者书面许可,禁止任何形式的转载、摘编、改编或商用。 转载本站文章须注明出处(作者:开心彩棉糖,来源:开心彩棉糖.cn)并保留原文完整链接,不得断章取义或篡改标题内容。

站内文章内容仅代表作者个人观点,仅供学习交流与参考,不构成任何投资、医疗、法律或其他专业建议。
本站文章所述信息、数据与案例力求准确,但不对其完整性、时效性与准确性作任何保证;读者据此操作,风险自担。
文中涉及的第三方链接、产品与观点仅为信息分享,其内容与立场均属原作者,本站不承担相关责任。
本站采用开放评论,评论内容由发布者自行负责;若发现侵权、违法或不实内容,请及时联系我们,核实后将依法处理。
访问并使用本网站即视为您已知悉并同意上述声明条款。

手机扫码阅读

微信或手机浏览器扫一扫,随时随地随心阅读与分享

收藏
留下你的评论