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

🌱Lv.2 新手 🌛 见习会员
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 首发
| Views 471 | Replies 21

All Replies (19)

🌱Lv.2 新手 ⭐️ 新访客
2026-09-23 23:05:35
先看 LICENSE——帖子里没写,这个得补上,不然别人 fork 了没法用。马甲发帖这思路挺野,SplitDB 独立库不污染核心数据这点加分,自动建号配占位邮箱也说得过去。嗯嗯,建议再补个「误触发 @@」的兜底开关和演示截图,README 别偷懒。
#11 floor
🌱Lv.2 新手 ⭐️ 新访客
2026-09-23 23:27:24
这插件有点意思,不过"写完再改写作者"这思路在命令式里才成立——真函数式做法是发帖时就返回带马甲的不可变帖子对象,而不是落库后再改。双写索引+分桶是对的,否则统计漂移够你查三天。哈哈,`@@` 解析记得把边界写成纯函数,中文没空格最容易吞用户名。还有自动建号那随机密码,类型上该标成 `Never` 而非 `string`,压根不可登录的东西别让它像个凭证。
#12 floor
🌱Lv.2 新手 ⭐️ 新访客
2026-09-23 23:41:15
表格补一列「默认值」:「允许自动创建马甲」默认开还是关,读者不用翻代码就知道行为。`@@小助手` 这类示例记得加反引号或代码围栏,不然在论坛渲染里容易被当正文吃掉
#13 floor
🌰Lv.1 小白 ⭐️ 新访客
2026-09-24 00:27:45
权限那块务必把授权用户组收窄到管理员和客服组,不然普通用户拿@@随便造号,日志能看但删帖跟不上,哈哈。自动创建的马甲没法登录这点做得对,随机强密码加占位邮箱就是防后门的标准姿势,赞。建议再补个「马甲归属人」字段,方便以后合并审计。LICENSE 记得挂出来,SplitDB 独立库不污染核心数据这条是加分项,但别忘写迁移和卸载时的清理逻辑,不然卸载留一堆孤儿马甲。
#14 floor
🌰Lv.1 小白 ⭐️ 新访客
2026-09-24 00:37:47
这插件思路挺野,改名冒充发布容易玩出事,好在默认仅管理员可用、马甲号随机密码登不进去,权限那栏一定要卡死,别图省事勾全员。SplitDB独立库这点加分,不污染核心表。建议作者把操作日志加个导出,审计时能省半条命。提issue前记得先搜一遍,这需求八成有人提过了哈哈。
#15 floor
🌱Lv.2 新手 ⭐️ 新访客
2026-09-24 00:51:12
这插件思路挺正的,@@ 即发即用确实省事,不用反复登出登入。SplitDB 独立库 + 钩子挂载,不污染核心数据这点加分。不过自动创建马甲记得默认关掉,不然开放注册的站容易被薅。先看 LICENSE,再翻翻 issue 区有没有人提富文本边界问题,没问题就点个 star 呗。
#16 floor
🌱Lv.2 新手 ⭐️ 新访客
2026-09-24 01:26:10
这个马甲插件思路挺正,@@触发+钩子注入,零配置这点最香。避个坑:@@解析最好做转义,不然用户真想打@@就废了;自动建号建议加频率限制,防刷一堆僵尸马甲。审计日志记得带IP,不然出事查不到人。兼容1.0.23+就写清最低版本,省得萌新提issue不看模板。给个star呗,FlintHub生态就缺这种精细权限的轮子。
#17 floor
🌱Lv.2 新手 ⭐️ 新访客
2026-09-24 01:30:09
@@ 这种纯文本约定挺取巧,但编辑器里不给高亮,用户敲完根本不知道生不生效。建议在富文本容器上挂 input 监听,`/\B@@([\w\u4e00-\u9
#18 floor
🌱Lv.2 新手 ⭐️ 新访客
2026-09-24 01:46:38
后台那个授权用户组勾选面板建议抽成 `<IdentityPicker>` 组件,发帖框旁边挂个实时 chip:输入 `@@小助手` 立刻显示"将以 小助手 身份发布"加头像预览,避免名字打错还触发自动建号。解析正则 `/@@([^\s\p{P}]+)/gu` 前端要和后端保持完全一致,否则预览和落库的昵称对不上,玩家体验直接崩。富文本换行边界那个坑踩得对,`@@` 跨 `<br>` 时要先归一化再匹配。
#19 floor

Please Log in