|
|
这次的更新UI更流畅、更丝滑、更平顺
等耐心等待最新版
header.php — 顶部导航
菜单完全动态化:导航链接全部从后台「菜单管理」读取,删除所有硬编码的归档/标签/友链
移动端侧滑丝滑化:遮罩由 display:none/block 改为 opacity + visibility 过渡,面板 transform: translateX 滑入,两者同步进行,彻底消除卡顿感
侧滑菜单支持子菜单折叠:max-height CSS 动画平滑展开,data-target 委托绑定,不依赖内联 onclick
顶部下拉子菜单优化:增加 focus-within 键盘支持,透明桥接区防止鼠标移动到面板时误关闭
侧滑顶部站名移除:改为搜索框右上角浮层关闭按钮,界面更简洁
侧滑菜单支持 sidebar 位置:后台可单独配置侧边栏菜单,手机端自动追加在主导航下方
index.php — 文章列表
彻底修复无封面图空白:无封面文章不渲染封面区域,从根本上消除大块空白
三端自适应布局:
桌面(>900px):封面左240px + 内容右,高度自适应
平板(601-900px):封面上 16:9 比例 + 内容下
手机(<600px):封面上 3:2 比例 + 内容下
封面使用 aspect-ratio:替代固定 min-height,封面高度随屏幕宽度自适应缩放
置顶文章视觉优化:卡片左侧加主题色竖线装饰
分页重做:箭头改为图标,页码按钮有 hover 动效
sidebar.php — 侧边栏
分类树完全动态:删除 array_slice 硬截断,条数由后台分类排序控制
支持 sidebar 菜单位置:后台「菜单管理」分配到侧边栏即可在侧栏顶部显示自定义导航
分类折叠动画:max-height: 0 → 600px 平滑过渡,替代瞬间 display:none/block
自动高亮展开:页面加载后检测当前 URL,当前分类的父级自动展开
图标安全回退:识别 fa-folder 和 fas fa-folder 两种格式,空值降级为默认图标
文章数 badge 样式统一:蓝色胶囊标签
footer.php — 页脚
站名/描述全部读数据库:get_option() 动态读取,零硬编码
链接列完全动态:优先读「页脚导航」菜单,无菜单则后备为数据库独立页面
新增社交账号图标区:后台设置 site_social_weibo/github/twitter/wechat 选项即可显示
响应式三列布局:桌面三列、平板两列、手机单列自动堆叠
深色页脚风格:--footer-bg 变量控制,品牌介绍 + 分类列 + 链接列
comment.php — 评论区
QQ邮箱自动识别:输入 QQ 邮箱(如 123456@qq.com),300ms 防抖后右侧实时预览 QQ 头像
普通邮箱显示 cravatar:内置轻量 MD5 实现(无外部依赖),自动计算头像 hash
IP 归属地显示:评论卡片显示省级归属地(“福建省福州市“ → “福建“),绿色图钉图标
博主回复特殊标识:蓝色头像边框 + “博主“ badge + 浅蓝背景区分
Toast 替代 alert():底部浮动提示条,提交成功/失败不再弹浏览器对话框
登录用户优化:已登录用户跳过昵称/邮箱/验证码填写
后台管理
menus.php — 菜单管理
拖拽排序:fa-grip-vertical 图标从装饰变为真实可用,同级拖拽自动持久化 sort_order
图标实时预览:填写 fas fa-home 旁边立即显示对应图标,保存前可预览效果
子菜单层级连接线:左侧蓝色竖线 + 缩进,层级一目了然
删除无需整页刷新:直接移除 DOM 卡片,顶部计数同步更新
保存成功绿色闪光:just-saved 动画反馈,比弹窗更轻量
分类/页面列表可折叠:左栏默认收起,点击展开,减少视觉噪音
posts.php — 文章列表
站名动态读取:副标题 get_option(‘site_name‘) 读数据库,不再硬编码
快速状态切换:点击状态 badge 直接弹确认框切换发布/草稿,无需进编辑器
快速置顶:操作列图钉按钮直接切换,橙色高亮表示已置顶
封面图预览更大:52×38px,hover 有放大效果
批量操作栏优化:选中时才显示,渐变背景更醒目,完成后自动隐藏
筛选增强:新增重置按钮,分类选项显示层级缩进
接口 & 函数
api/comment.php(新增)
评论提交完整后端接口,替换原有版本:
路径自动计算:dirname(__DIR__) 定位根目录,无需手动配置
防报错破坏 JSON:首行 @ini_set(‘display_errors‘, 0) + 强制 Content-Type: application/json
兼容新旧数据库:SHOW COLUMNS 检测字段是否存在,未执行 schema_patch 也不报错
15步完整校验:CSRF → 文章存在 → 评论关闭 → 内容校验 → 验证码 → 频率限制 → IP/邮箱/关键词黑名单 → 外链数量 → 父评论合法性 → 写入 → 邮件通知
自动获取 IP 归属地:调用 ip_location.php,失败不影响评论提交
自动提取 QQ 号:从 QQ 邮箱提取 QQ 号存库,用于头像显示
邮件通知:审核通知管理员 + 被回复者邮件提醒
includes/ip_location.php(新增)
IP 归属地 + QQ 辅助函数库:
get_ip_location($ip):pconline 接口(国内)+ ip-api.com(境外)双接口
24小时缓存到 blog_options 表,相同 IP 不重复请求
get_qq_from_email($email):正则提取 QQ 号
get_qq_avatar($qq, $size):返回 QQ 头像 URL
数据库
schema.sql(v1.1.0 完整版)
blog_comments 新增字段:
author_location varchar(100) — IP 归属地省份
author_qq varchar(20) — QQ 号(从邮箱提取)
blog_options 新增配置项:
site_language — 站点语言(用于 html lang 属性)
site_verification — Google 搜索验证码
site_twitter — Twitter/X 账号
site_social_weibo/github/twitter/wechat — 页脚社交图标
seo_separator — SEO 标题分隔符
rewrite_enabled — 伪静态开关
所有 INSERT 改为 INSERT IGNORE:已有数据不重复插入,全新/升级均可使用
文件末尾附「升级补丁」:已有数据库只执行末尾 ALTER TABLE 段落即可
部署配置
nginx-rewrite.conf(新增)
Nginx 伪静态规则,覆盖所有路由:
/post/slug → 文章详情
/p/id → 文章 ID 访问
/category/slug → 分类页
/tag/slug → 标签页
/page/slug → 独立页面
/archive /tags /links /feed /search /sitemap.xml
宝塔用法:网站 → 设置 → 伪静态 → 粘贴内容 → 保存



 |
|