本文由 FlintHub 开发文档归档发布。原始文档日期见标题前缀,来源:WWW/plugins/friend_links/说明.md。
友情链接(friend_links)插件说明
版本:2.0.0 | 作者:SoSite | 状态:✅ 已启用
功能:在首页侧边栏底部展示友情链接,支持前台申请、后台审核、开关申请入口
一、功能简介
- 首页侧边栏底部展示已通过的友情链接(
home_sidebar_bottom钩子注入) - 前台申请:访客可提交友链申请(名称/URL/站长邮箱等),进入待审状态
- 后台审核:管理员通过/驳回申请;也可后台手动增删改
- 申请开关:后台可随时开启/关闭前台申请入口(
toggleApply) - 申请需审核通过后才对外展示(status=pending → approved)
二、目录结构
plugins/friend_links/
├── plugin.json # 插件清单(hooks: init_after / route_register / admin_route_register / admin_sidebar_links / home_sidebar_bottom)
├── Plugin.php # 生命周期 + 申请开关/查询辅助
├── AdminController.php # 后台管理(列表/增删改/通过/驳回/开关申请)
├── FrontController.php # 前台申请
├── hook/
│ ├── init_after.php # 懒建表
│ ├── route_register.php # 前台路由(/links/apply)
│ ├── admin_route_register.php # 后台路由
│ ├── admin_sidebar_links.php # 后台侧边栏入口
│ └── home_sidebar_bottom.php # 侧边栏展示已通过友链
├── assets/
│ ├── style.css # 样式
│ └── script.js # 申请表单交互
└── views/
├── admin.php # 后台管理视图
└── apply.php # 前台申请视图三、数据表
| 表 | 用途 |
|---|---|
friend_links | 友链记录(name / url / email / status[pending |
- 建表:
init_after懒建 + 后台访问时兜底(SELECT ... WHERE 1=0检测) - 卸载:
uninstall()删除表
四、Hooks
| Hook | 用途 |
|---|---|
init_after | 懒建表 |
route_register | 前台申请路由(/links/apply) |
admin_route_register | 后台路由 |
admin_sidebar_links | 后台侧边栏"友情链接"入口 |
home_sidebar_bottom | 前台侧边栏底部展示已通过友链(桌面 + 移动两处) |
五、路由
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /links/apply | 前台申请页 |
| POST | /links/apply | 提交申请 |
| GET | /admin/friend-links | 后台列表 |
| POST | /admin/friend-links/add / edit / delete | 后台增删改 |
| POST | /admin/friend-links/approve / reject | 审核通过/驳回 |
| POST | /admin/friend-links/toggle-apply | 开关前台申请入口 |
六、注意事项
- 前台申请需 CSRF + 校验邮箱/URL 格式;防刷可加节流(RateLimiter)
- 仅 approved 状态在侧边栏展示
- 关闭申请入口后前台申请页显示"暂未开放"