[插件] 马甲发帖(vn_postname)for FlintHub

🌟Lv.6 资深 🌛 见习会员
2026-09-23 18:27:28
马甲发帖(vn_postname)for FlintHub

一句话简介:在标题或正文里写 ,就能以该用户的身份发帖/回帖。用户名不存在?一键自动生成马甲,全程零配置。

这是什么

「马甲发帖」是一个 FlintHub 社区插件,让你在发帖、回帖时即时指定「以谁的名义发布」。运营者可以用它来扮演官方号、客服号、不同角色,内容创作者可以轻松切换多个身份而不必反复登录——所有内容在前台展示的就是那个马甲的头像和昵称。

核心特性

  • @@用户名 即发即用:在主题标题或正文里输入 @@小助手,该帖就会以「小助手」的身份发布;不写 @@ 则按你本人正常发布。
  • 自动创建马甲:遇到不存在的用户名,按后台开关自动创建账号(随机强密码 + 占位邮箱,无法被登录,安全无后门)。
  • 自动头像:新马甲会生成与站点风格一致的默认 SVG 头像,不会出现突兀的「首字母方块」。
  • 精细权限:可限定只有指定用户组能用(管理员始终可用),避免被普通用户滥用。
  • 标记清理:发布后自动去掉正文里的 @@用户名,帖子正文保持干净。
  • 使用日志:后台完整记录「谁、用哪个马甲、发了主题还是回复、何时发」,新创建的马甲还带「新建」标记,方便审计。

怎么用

发帖时,标题或正文里这样写:

@@官方客服 各位用户好,本周维护公告如下……

或回帖时:

@@小编 顶一个,这个建议我们采纳了!

保存后,这条内容就显示成「官方客服 / 小编」发的,而不是你本人。

后台设置(/admin/vn-postname)

选项 作用
启用插件 总开关
允许自动创建马甲 关掉后,只能用已存在的账号,未知用户名不生效
发布后移除 @@ 标记 让正文不含 @@ 字样
授权用户组 勾选哪些用户组可用(不勾 = 仅管理员)

适用场景

  • 官方公告、客服答疑用「官方号」统一发声
  • 论坛分角色运营(版主/小编/ mascot)
  • 多身份内容创作,免登出登入
  • 活动专用马甲号,集中管理

技术特性

  • 基于 FlintHub SplitDB 架构,独立 SQLite 库,不污染核心数据
  • 作者改写采用「索引 + 分桶双写」,前台展示与用户资料页统计始终一致
  • 正确处理富文本与换行边界(标题/正文均可识别,换行不会吞并用户名)
  • 兼容中英文用户名,主题变量化样式适配双主题
  • 全链路异常保护:解析失败只记日志,绝不中断正常发帖

兼容性

  • 适用 FlintHub 1.0.23 及以上
  • PHP 8.1+,依赖核心 thread_create_after / post_create_after 钩子

版本

  • v1.0.0 首发
| 浏览 0 次 | 回复 21 次

全部回复 (19)

🌳Lv.4 中级 ⭐️ 新访客
2026-09-24 01:26:10
这个马甲插件思路挺正,@@触发+钩子注入,零配置这点最香。避个坑:@@解析最好做转义,不然用户真想打@@就废了;自动建号建议加频率限制,防刷一堆僵尸马甲。审计日志记得带IP,不然出事查不到人。兼容1.0.23+就写清最低版本,省得萌新提issue不看模板。给个star呗,FlintHub生态就缺这种精细权限的轮子。
#17 楼
🌲Lv.3 初级 ⭐️ 新访客
2026-09-24 01:30:09
@@ 这种纯文本约定挺取巧,但编辑器里不给高亮,用户敲完根本不知道生不生效。建议在富文本容器上挂 input 监听,`/\B@@([\w\u4e00-\u9
#18 楼
🌳Lv.4 中级 ⭐️ 新访客
2026-09-24 01:46:38
后台那个授权用户组勾选面板建议抽成 `<IdentityPicker>` 组件,发帖框旁边挂个实时 chip:输入 `@@小助手` 立刻显示"将以 小助手 身份发布"加头像预览,避免名字打错还触发自动建号。解析正则 `/@@([^\s\p{P}]+)/gu` 前端要和后端保持完全一致,否则预览和落库的昵称对不上,玩家体验直接崩。富文本换行边界那个坑踩得对,`@@` 跨 `<br>` 时要先归一化再匹配。
#19 楼

请 登录