• bbs1org
    悬赏帖
    ID topic_reward版本 1.0.4插件制作者 bbs1org售价 1 积分428 行 / 35.3 KBHook / 路由 / 后台页
    发布积分悬赏主题,采纳最佳回复后自动发放奖励并支持到期和仲裁处理。
    收费插件安装说明购买后点击“授权码”获取一次性授权码;在后台 > 插件广场点击在线安装或更新,并填写该授权码。已购买用户更新免费:每次在线安装或更新前,重新点击“授权码”获取新的一次性授权码即可,无需再次购买;也可直接下载新版后用后台“插件上传”更新。尊重并感谢他人劳动,请勿传播代码。
    app/plugins/topic_reward/plugin.php
    开发日志已有 3 条

    个人独立维护项目。

    • bbs1org
      bbs1org
      版本 1.0.4 d483928f4a17 更新:在主程序升级到9.0之前,请不要更新此插件,避免兼容问题release
    • bbs1org
      bbs1org
      版本 1.0.3 c24ae5706653 更新:增加版本号
    • bbs1org
      bbs1org
      版本 1.0.2 1a54e6309aa0 更新:优化小细节
    主楼
  • 质量报告

    插件质量报告

    插件:topic_reward

    Hook功能范围循环使用频率文件读写修改系统表读写系统表读写自己的表
    topic.after_render首页/版块列表/主题查看逐条渲染是(列表跳过)5---读 plugin_topic_reward_items
    topic.index_data.loaded首页/版块/用户主题列表查询后否5---读 plugin_topic_reward_items
    topic.title_suffix首页/版块主题列表逐条标题是5---读 plugin_topic_reward_items 修正❗️
    topic.after_view主题查看页完成加载否4---读 plugin_topic_reward_items
    reply.before_save回帖发布/编辑表单提交否3---读 plugin_topic_reward_items
    topic.after_save主题保存后否3-app_usersapp_users写 plugin_topic_reward_items, plugin_topic_reward_ledger
    topic.before_save主题发布/编辑表单提交否3----
    content.before_delete内容删除操作否2---写 plugin_topic_reward_items, plugin_topic_reward_ledger
    topic.form_extra主题发布/编辑表单否2----
    reply.content_after非系统hook否1---读 plugin_topic_reward_items

    颜色说明:黄色表示有数据读写,红色表示 Hook 在系统循环中执行,浅蓝色表示有文件写入。“列表跳过”表示回调在列表路径会提前返回,“回调内”表示操作位于回调自身或其帮助函数的循环体内。“文件批处理”表示逐个处理用户一次提交的文件,属于必要操作,不标记修正。只有操作实际处于需要优化的循环路径时,才会标记“修正❗️”。

    数据字典

    plugin_topic_reward_items

    字段类型可空默认值约束
    topic_iduint否-主键
    publisher_iduint否--
    amountuint否--
    expires_atuint否--
    statuskey否--
    accepted_reply_iduint否0-
    settled_byuint否0-
    settled_atuint否0-
    created_atuint否--
    updated_atuint否--

    plugin_topic_reward_ledger

    字段类型可空默认值约束
    idid否-主键、自增
    topic_iduint否--
    event_keykey否-唯一
    user_iduint否--
    deltaINTEGER否--
    kindkey否--
    notestring否--
    created_atuint否--

    plugin_topic_reward_disputes

    字段类型可空默认值约束
    idid否-主键、自增
    topic_iduint否-唯一
    reply_iduint否-唯一
    user_iduint否-唯一
    reasontext否--
    statuskey否'open'-
    review_notestring否''-
    reviewer_iduint否0-
    created_atuint否--
    reviewed_atuint否0-
    #1
  • bbs1org

    当前悬赏插件功能:
    发帖时可折叠开启悬赏,选择积分和 1/3/7 天期限。
    发布时扣除发帖人积分,记录冻结流水。
    主题页显示悬赏金额、状态和剩余时间。
    发帖人可在有效期内,对其他用户的回帖点击“采纳最佳回复”,自动发放积分并结贴。
    回帖作者可在进行中或过期后申请仲裁;管理员可在后台处理到期、争议悬赏,指定最佳回复或退回积分。
    到期无其他用户回复时,定时任务自动退回积分;有回复则转为“已过期”,等待管理员处理。
    已采纳回复标记“最佳答案”;最佳回复不可删除,未结算悬赏也限制普通用户删除主题。
    后台可配置全站开关、最低/最高悬赏积分、默认期限、可发布用户组、可参与作答用户组。

    #2
  • idc

    这个开发能力简直了

    #3
  • bbs1org

    质量报告中的修正并没有问题。
    topic.title_suffix 的确是按每条标题调用,但不会逐条查询数据库。
    主题列表数据加载完成时,topic.index_data.loaded 会先对当页所有主题 ID 做一次
    reply.after_render 在主题查看页对每条回帖执行,但不逐条读取 plugin_topic_reward_items。
    主题详情数据加载后,topic.after_view 已按当前 topic_id 预读悬赏记录并写入请求级缓存;后续每条回帖仅查询内存缓存,用于判断是否显示“采纳最佳回复”“申请仲裁”或“最佳答案”。
    实际额外数据库查询:
    每次主题查看页:1 次按 topic_id 查询悬赏记录
    回帖逐条渲染:0 次额外数据库查询
    仍有每条回帖一次 PHP Hook 调用和缓存数组读取。

    #4
  • bbs1org

    版本 1.0.2 更新:
    优化小细节

    #5
  • bbs1org

    版本 1.0.3 更新:
    增加版本号

    #6
  • bbs1org

    版本 1.0.4 更新:
    在主程序升级到9.0之前,请不要更新此插件,避免兼容问题

    #7

发表回复

登录后回复