[开发]用户主页(user_profile)插件说明

👑Lv.11 元老 🌞 骨干会员
2026-10-25 00:54:16

本文由 FlintHub 开发文档归档发布。原始文档日期见标题前缀,来源:WWW/plugins/user_profile/说明.md。

用户主页(user_profile)插件说明

版本:1.0.0 | 作者:SoSite | 状态:✅ 已启用

功能:查看其他用户的公开资料,包括个人资料、积分等级、发布的帖子和博客,支持关注/取关


一、功能简介

  • 公开主页:/u/{id} 展示用户公开资料(个人资料/积分等级徽章/发布的帖子/发布的博客)
  • 关注系统:登录用户可关注/取关其他用户(user_follows 表)
  • 主页数据聚合:用户信息 + 帖子列表 + 博客列表 + 关注状态
  • 覆盖默认 /u/{id} 用户页(原有简单页被插件增强版替换)

二、目录结构

plugins/user_profile/
├── plugin.json              # 插件清单(hooks: init_after / route_register / admin_route_register / admin_sidebar_links / nav_plugin_links)
├── Plugin.php               # 生命周期(activate 建表 / 关注/取关/状态查询辅助)
├── FrontController.php      # 前台控制器(show / follow / unfollow / handleCsrf)
├── hook/
│   ├── init_after.php       # 懒建表(user_follows)
│   ├── route_register.php   # 前台路由(/u/{id} /u/{id}/follow /u/{id}/unfollow)
│   ├── admin_route_register.php  # 后台路由
│   ├── admin_sidebar_links.php   # 后台侧边栏入口
│   └── nav_plugin_links.php      # 导航入口
├── assets/style.css         # 用户主页样式
└── views/front.php          # 用户主页视图(A+ 规则:视图在插件目录)

三、数据表

表用途
user_follows关注关系(follower_id / followed_id / created_at)

  • 建表:activate() + init_after 懒建(幂等 CREATE TABLE IF NOT EXISTS)
  • 卸载:uninstall() 删除表

四、Hooks

Hook用途
init_after懒建表(user_follows)
route_register前台路由(/u/{id} 系列)
admin_route_register后台路由
admin_sidebar_links后台侧边栏入口
nav_plugin_links导航入口

五、路由

方法路径说明
GET/u/{id}用户公开主页(资料/等级/帖子/博客/关注状态)
POST/u/{id}/follow关注(CSRF)
POST/u/{id}/unfollow取关(CSRF)

六、核心逻辑

public function show($id)        // 聚合用户资料 + 帖子 + 博客 + 关注状态 → 渲染 front 视图
public function follow($id)      // 关注(幂等:已关注不重复)
public function unfollow($id)    // 取关
public function handleCsrf()     // CSRF 校验辅助

七、注意事项

  • 用户不存在时渲染 errors/404 页
  • 关注/取关操作 POST + CSRF 校验,防越权(只能关注他人,不能操作自己)
  • 主页视图在 plugins/user_profile/views/front.php(A+ 规则),app/Views/plugins/ 已移除
  • 卸载删表会清空全部关注关系数据,请谨慎
轻量级、高性能、零 MySQL 依赖的PHP社区系统。
| 浏览 2 次 | 回复 0 次

全部回复 (0)

暂无回复

请 登录