一切皆为插件的开发者工具运行时框架
🧩 核心特性:
- 插件热插拔 (importlib 动态加载)
- 依赖自动解析 (拓扑排序 + 循环检测)
- 企业级稳定 (熔断/降级/重试/隔离)
- 事件驱动 (发布/订阅事件总线)
- 完整配置 (YAML 配置 + 热重载)
3.9 KiB
3.9 KiB
用户个人主页功能更新
改动概述
为用户社区添加了完整的个人主页系统,包括用户信息展示、文章管理、个人简介编辑等功能。
新增文件
1. profile.php - 用户个人主页
功能:
- 显示用户头像、用户名、角色徽章
- 显示用户个人简介(bio)
- 显示注册时间和邮箱(仅本人可见)
- 统计数据卡片:文章数、回复数、总浏览、总点赞
- 最近发表的文章列表(最新 10 篇)
- 最近的回复列表(最新 5 条)
- 支持查看其他用户的主页(通过
?id=用户ID参数) - 本人访问时显示"编辑资料"按钮
访问方式:
profile.php- 查看当前登录用户的个人主页profile.php?id=123- 查看指定用户的个人主页
2. edit-profile.php - 编辑个人资料
功能:
- 编辑个人简介(bio)
- 实时预览功能
- 显示用户名和邮箱(只读)
- 保存成功后显示提示信息
访问方式:
- 从个人主页点击"编辑资料"按钮进入
3. my-posts.php - 我的文章(已更新)
更新内容:
- 支持查看其他用户的文章(通过
?id=用户ID参数) - 只有文章作者才能看到"编辑"和"删除"按钮
- 页面标题动态显示用户名
4. migrate-add-bio.php - 数据库迁移脚本
用途:
- 为现有的
users表添加bio字段 - 检查字段是否已存在,避免重复添加
运行方式:
php website/community/migrate-add-bio.php
修改的文件
1. includes/dock.php
改动:
- 用户头像链接从
#改为profile.php,点击跳转到个人主页 - 用户面板新增"个人主页"菜单项
- 保留"我的文章"菜单项,并显示文章数量徽章
2. api/auth.php
改动:
- 新增
my-post-countAPI 端点 - 用于获取当前登录用户的文章数量
- 在用户面板中实时显示文章数徽章
3. css/dock.css
改动:
- 新增
.dock-user-avatar样式 - 用户头像图标显示为青色高亮
- 鼠标悬停时有缩放和背景效果
4. assets/css/dock-popover.css
改动:
- 新增
.popover-menu菜单区域样式 - 新增
.menu-item菜单项样式(带图标、文字、徽章) - 新增
.menu-badge徽章样式
5. assets/js/dock-popover.js
改动:
- 新增
fetchMyPostCount()函数 - 页面加载时自动获取并显示用户文章数量
- 保留原有的退登和注销功能
6. schema.sql
改动:
users表新增bio TEXT字段- 用于存储用户的个人简介
使用方法
1. 运行数据库迁移
首次部署需要运行迁移脚本添加 bio 字段:
cd website/community
php migrate-add-bio.php
2. 访问个人主页
- 点击左侧 Dock 栏的用户头像图标
- 或访问
community/profile.php
3. 编辑个人简介
- 在个人主页点击"编辑资料"按钮
- 或访问
community/edit-profile.php
4. 查看我的文章
- 在用户面板中点击"我的文章"
- 或访问
community/my-posts.php
5. 查看其他用户的主页
- 访问
community/profile.php?id=用户ID
技术细节
数据库查询优化
- 使用子查询统计回复数,避免 JOIN 导致的性能问题
- 使用 SUM 聚合函数统计总浏览和总点赞
- 所有查询都使用参数化查询防止 SQL 注入
安全性
- 所有用户输入都经过
htmlspecialchars()转义 - 只有本人才能编辑和删除自己的文章
- Session 验证确保用户只能访问自己的数据
响应式设计
- 适配桌面端和移动端
- 小屏幕时自动调整布局和字体大小
- Dock 栏在移动端自动移到底部
后续可扩展功能
- 头像上传 - 支持用户上传自定义头像
- 关注系统 - 用户可以互相关注
- 成就徽章 - 根据用户活跃度颁发徽章
- 社交链接 - 添加 GitHub、Twitter 等社交链接
- 活动日志 - 记录用户的登录、发帖等活动