内置头像账号
详情介绍
一、插件简介
内置头像(avatars)面向社区站点,在账号设置「上传头像」页提供预设头像网格,用户点击即可使用,无需上传。支持后台维护头像列表、新用户注册时随机分配头像。
适合统一社区视觉风格、降低用户设置门槛。
- 前台入口:会员中心 → 账号设置 → 上传头像页内置头像区(
member_avatar_panel插槽) - 后台入口:应用中心 → 内置头像 → 配置
- 主要接口(伪静态后缀下同):
POST /avatars/pick— 选择内置头像
二、核心能力
| 能力 | 说明 |
|---|---|
| 内置头像网格 | 上传头像页展示可选头像,点击即用 |
| 头像列表管理 | 后台上传或粘贴图片地址维护列表 |
| 新用户随机头像 | 注册时从列表随机抽取 |
| 默认头像包 | 安装时同步 10 张 webp 到 public/static/plugins/avatars/ |
| URL 校验 | 仅允许选择列表内的地址,防篡改 |
| 即时预览 | 选中后更新页面各处头像显示 |
三、依赖与安装
建议环境:
- 已安装并启用 社区(community) 插件(会员中心、头像上传页)
public/static/plugins/avatars/目录可写(安装时同步资源)
安装步骤:
- 应用中心安装并启用 内置头像
- 打开「启用内置头像」
- 在配置中维护头像列表(默认 10 张内置图)
- (可选)开启「新用户随机头像」
- 访问账号设置页验证选择与随机注册
卸载说明: 卸载不删除已发布的静态资源,避免已使用内置头像的用户头像失效。
四、应用中心基础配置
路径:应用中心 → 内置头像 → 配置
| 配置项 | 说明 | 建议 |
|---|---|---|
| 启用内置头像 | 总开关;关闭后上传页不展示内置区 | 保持开启 |
| 新用户随机头像 | 注册时从列表随机分配 | 新站建议开启 |
| 前台区块标题 | 内置头像区标题文案 | 默认「选择内置头像」 |
| 内置头像列表 | 每行一个 URL;支持「添加并上传」或粘贴站内地址 | 保持至少 1 张 |
默认头像路径: /static/plugins/avatars/1.webp … 10.webp
列表为空时: 回退到 defaultAvatarUrls() 内置 10 张。
五、头像列表维护(重点)
5.1 添加方式
- 上传添加:配置页「添加并上传头像」,支持 jpg/png/gif/webp
- 粘贴地址:每行一个站内图片 URL
5.2 URL 规则
- 支持相对路径(自动补
/前缀) - 支持
http(s)://绝对地址与data:URI isAllowedUrl仅允许列表内地址被pick接口接受
5.3 静态资源同步
install() 与 ensureAssets() 会将 plugins/avatars/static/ 复制到 public/static/plugins/avatars/。
六、前台用户流程
- 用户进入会员中心 → 账号设置 → 上传头像
- 页面上方为本地上传,下方为「选择内置头像」网格(若启用)
- 点击某张内置头像,请求
POST /avatars/pick提交url - 成功后即时更新预览与导航栏头像
- 新用户注册时若开启随机头像,系统自动从列表抽取(
resolveRegisterAvatar)
七、后台审核与运维
无独立后台菜单,运维在应用中心:
| 操作 | 说明 |
|---|---|
| 增删头像 | 编辑列表后保存即生效 |
| 更换标题 | 修改 panel_title |
| 关闭随机 | 新用户走社区默认头像逻辑 |
| 资源缺失 | 重新安装或触发 syncAssets |
八、特殊说明
插件钩子:
member_avatar_panel— 渲染内置头像 HTML+CSS+JS(内联)
注册钩子: 社区注册流程调用 AvatarsPlugin::resolveRegisterAvatar() 获取随机 URL。
随机逻辑: randomAvatarUrl() 从 avatarList() 中 array_rand;列表空则回退 /static/admin/images/users/avatar.jpg。
安全: pick 接口校验 URL 必须在允许列表内。
九、推荐上线清单
- 启用插件,确认静态资源已同步到 public
- 检查默认 10 张头像是否正常显示
- 按需上传品牌风格头像替换默认图
- 开启新用户随机头像
- 测试:点击选择 → 刷新页面头像一致
- 测试:新注册账号是否获得随机头像
十、常见问题
Q:上传头像页看不到内置区? 检查「启用内置头像」、头像列表是否非空。
Q:点击头像提示设置失败? 可能 URL 不在允许列表;或用户未登录。
Q:图片 404? 确认 public/static/plugins/avatars/ 下有对应文件;可重装插件触发 syncAssets。
Q:随机头像不生效? 确认「新用户随机头像」开启;社区注册流程需调用 resolveRegisterAvatar。
Q:卸载后头像还能用吗? 已选 URL 仍指向 public 静态文件,一般不受影响。
Q:能否只用外链头像? 可以,在列表中粘贴完整 https 地址即可(须通过 isAllowedUrl 校验)。
更新记录 (1)
-
v1.0.1
2026-08-24
首次发布