Files
NebulaShell/website/community/UPDATE_PROFILE.md
Falck 76147bae94 初始提交 - FutureOSS v1.0 插件化运行时框架
一切皆为插件的开发者工具运行时框架

🧩 核心特性:
  - 插件热插拔 (importlib 动态加载)
  - 依赖自动解析 (拓扑排序 + 循环检测)
  - 企业级稳定 (熔断/降级/重试/隔离)
  - 事件驱动 (发布/订阅事件总线)
  - 完整配置 (YAML 配置 + 热重载)
2026-04-06 09:57:10 +08:00

135 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 用户个人主页功能更新
## 改动概述
为用户社区添加了完整的个人主页系统,包括用户信息展示、文章管理、个人简介编辑等功能。
## 新增文件
### 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` 字段
- 检查字段是否已存在,避免重复添加
**运行方式:**
```bash
php website/community/migrate-add-bio.php
```
## 修改的文件
### 1. `includes/dock.php`
**改动:**
- 用户头像链接从 `#` 改为 `profile.php`,点击跳转到个人主页
- 用户面板新增"个人主页"菜单项
- 保留"我的文章"菜单项,并显示文章数量徽章
### 2. `api/auth.php`
**改动:**
- 新增 `my-post-count` API 端点
- 用于获取当前登录用户的文章数量
- 在用户面板中实时显示文章数徽章
### 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 字段:
```bash
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 栏在移动端自动移到底部
## 后续可扩展功能
1. **头像上传** - 支持用户上传自定义头像
2. **关注系统** - 用户可以互相关注
3. **成就徽章** - 根据用户活跃度颁发徽章
4. **社交链接** - 添加 GitHub、Twitter 等社交链接
5. **活动日志** - 记录用户的登录、发帖等活动