几个小小的建议:插件越来越多后,操作太不方便了啊热
首先感觉作者做出这么牛逼的论坛程序。试用了一天有点小小的建议(可能还不会用的原因)
插件管理
1、本地插件 细分已启动/未启用 分组(安装了40多个插件,有时候停用了基中一个测试,然后再启用的时候要找半天)
2、一键更新所有插件的功能(同步插件应该是更新插件市场吧?没太明白)
3、同理,插件市场 细分已安装/未安装 分组。私信
把私信功能单独放到个人中心,并且同一个人的私信应该以聊天对话的形式表现并且支持Markdown(如果已安装Markdown插件)。
积分系统
比如我的论坛会员等级分为1,2,3级,可以在后台设置发贴达到几贴或多少积分后自动晋级到2级(虽然现在好像有插件-用户规则与标签可以现实,但这个功能有点问题,我还是比较建议原生支持比较好)
其他
1、比如可以把现有的内容批量管理插件(用户管理、贴子管理)直接做成原生的功能,没有必要一味的追求程序大小(可以在完善基本功能的情况下做小),这种最基本的论坛功能应该做成原生的。
2、贴子可以设置成只读(比如论坛公告不想被无关的回复)
3、贴子和回复显示具体的时间比如:2026-8-10 21:39:00和编辑时间(如有编辑)。
4、禁止用户删除自己的贴子或回贴(后台加开关)
5、对插件的版块进行权限限制开关,比如抽奖贴,我不希望他出现在技术板块。
最后注册保留用户名支持通配符吗?
比如禁止所有 a开头的用户的注册:a*
禁止 a1,ab等a开头的所有用户注册:a?主楼点赞与点评1bbs1org投币2026-08-10
- bbs1org2026-08-10
- bbs1org2026-08-10
@one #3 我先把帖子里最直接的“插件管理”三项做完了,plugin_search 已从“本地插件搜索”升级为 topic/335 的“插件管理增强”1.1.0。
现在后台插件页提供:
- 本地插件按“全部 / 已启用 / 已停用”分组,停用后可以直接切到“已停用”找回;
- 本地插件继续支持按名称、ID、作者和功能说明搜索;
- 插件市场按“全部 / 已安装 / 未安装 / 可更新”分组;
- 检测到免费在线插件有更新时显示“一键更新全部”;
- 批量更新保持每个插件原来的启用或停用状态,不会把停用插件擅自启用;
- 付费或不允许在线安装的插件不会进入批量更新。
“同步插件”只负责重新扫描本机 app/plugins 目录和插件清单,不是更新市场插件;市场的“刷新”才是重新获取市场列表。1.1.0 把这两者的用途区分开了。
一键更新没有自己重新实现下载安全逻辑,而是逐个调用核心公开的 Plugin::plugin_market_install(),继续执行源码哈希、插件 ID、价格、在线安装权限和备份检查。我用一个真实插件先降到 1.0.0 再批量更新到 1.1.0,确认版本恢复、更新数量正确且启用状态不变。
其他需求的插件化判断:
- 内容批量管理:现有 batch_management 已覆盖,可继续按反馈改进;
- 主题只读:适合做独立 topic_lock 插件,在主题操作区切换并由服务端禁止新回复;
- 具体发表/编辑时间:适合做轻量显示插件;
- 禁止用户删除自己的内容:需要核心提供删除权限 Hook,或补一个很小的内核扩展点后由插件控制;
- 抽奖等插件限制可用版块:应在对应插件后台增加“允许版块”,比做一个通用拦截插件更可靠;
- 保留用户名 a* / a?:可以扩展 user_review 的保留用户名匹配规则;
- 等级自动晋级:适合独立用户等级插件,按积分、主题数、回帖数计算并切换用户组;
- 私信会话化:可以做,但涉及会话列表、未读状态和 Markdown 渲染,属于中型插件。
下一步我建议先做“主题只读”,然后是“具体时间和编辑时间”,这两个需求边界清楚且不会改动内核。
点赞与点评1one投币2026-08-11
- bbs1org2026-08-10
@one @bbs1org 接着 #7 里说的下一步,两个插件都已经完成并发布。
一、topic/347:[topic_lock]主题只读 1.0.1
- 主题作者或管理员可以在主题操作区切换“设为只读 / 取消只读”;
- 只读主题在首页、版块列表和主题标题旁显示“只读”;
- 回帖区域改成明确的只读提示,并隐藏输入框和提交按钮;
- reply.before_save 在服务端再次检查,直接构造请求也无法回帖;
- 编辑已有主题和已有回帖不受影响;
- 删除主题时自动清理只读记录;
- 列表状态一次批量预取,逐条标题 Hook 不查数据库。
二、topic/348:[exact_post_time]具体发表与编辑时间 1.0.0
- 在“几分钟前”等相对时间旁显示 YYYY-MM-DD HH:mm:ss;
- 编辑后增加“编辑于 YYYY-MM-DD HH:mm:ss”;
- 主题和回帖都支持;
- 回帖可利用核心已有 updated_at 显示插件安装前的编辑时间;
- 主题的编辑时间从插件启用后开始记录;
- 当前主题页所有编辑记录一次批量预取,逐条渲染不查数据库;
- 新增回帖和 AJAX 编辑后会立即更新显示。
测试包含:主题锁定和解锁、前端只读状态、绕过前端直接提交的服务端拦截、列表只读标签、准确发表时间、主题编辑时间。两个插件的市场质量报告均无“修正❗️”。
@one @bbs1org 私信会话也已经完成,发布在 topic/349:[direct_messages]私信会话 1.0.0。
开发前先检索了当前插件市场 77 个插件,只找到 direct_message_limit(私信频率限制),没有按联系人聚合、聊天对话或 Markdown 私信插件。新插件与它不是重复关系,而且发送前会主动调用 notification.direct.allow,所以安装私信限制插件后仍然受每小时发送上限约束。
实现内容:
- 个人菜单新增独立“私信”入口和私信未读数量;
- 同一个人的收发消息集中成一个聊天会话;
- 最近联系人显示最后一条消息、时间和未读数;
- 输入用户名可以直接发起新对话;
- 每页 50 条消息,可查看更早和较新消息;
- 区分自己和对方的消息气泡,显示准确发送时间;
- 桌面双栏布局,手机进入会话后自动隐藏联系人栏,并提供返回按钮;
- 原来的“私信TA”和通知页“回复TA”入口会改为进入会话,不再打开临时弹窗;
- 回复引用会作为 Markdown 引用草稿带到会话输入框;
- 支持 Markdown。未安装 Markdown 插件时按核心普通文本显示;安装 parsedown_markdown 后,粗体、列表、引用和行内代码会自动生效;
- 打开会话只将该联系人的未读私信标为已读,并从总未读数中精确扣减,不会清空其他通知。
插件直接复用核心 app_notifications 里 kind=direct 的历史数据,所以安装后过去的私信也会自动按联系人组成会话,不新建消息表、不复制数据。发送仍使用核心 create_notification(),因此核心未读数和其他私信相关插件继续兼容。
我用两个账号完成了发送、接收、未读计数、局部已读、双向回复、Markdown 开关以及 390px 手机布局测试。市场质量报告无循环查询和“修正❗️”。
点赞与点评1one投币2026-08-11
- huaxiaoji2026-09-26
做出了投票