• bbs1org
    积分规则
    ID points_rewards版本 1.2.35插件制作者 bbs1org免费462 行 / 32.4 KBHook / 后台页
    按发帖、回帖、私信、附件下载、搜索和删除内容等行为自动增加或扣减积分,用户可在个人主页查看清晰明细。
    app/plugins/points_rewards/plugin.php
    开发日志已有 8 条

    个人独立维护项目。

    • bbs1org
      bbs1org
      版本 1.2.35 03f7782b5c64 更新:修正删除主题导致回帖扣分的问题release
    • bbs1org
      bbs1org
      版本 1.2.34 de2142965342 更新:修复sqlite异常问题
    • bbs1org
      bbs1org
      版本 1.2.33 ef3fcde6091b 更新:增加积分事件请求级缓存,相同 event_key 每个请求只查询一次。 积分记录写入成功后立即更新缓存,避免重复查询数据库。 优化扣积分检查,仅在余额不足时查询事件是否已处理。 保留数据库唯一约束,防止重复增减积分。 减少搜索页面重复触发奖励逻辑产生的相同查询。
    • bbs1org
      bbs1org
      版本 1.2.32 75dc325abdc1 更新:积分明细关联对应主题或回帖,标题以链接展示
    • bbs1org
      bbs1org
      版本 1.2.31 3c10c9cac892 更新:访问他人主页时,侧边卡片 显示“TA的积分”入口,可查看对方积分日志
    • bbs1org
      bbs1org
      版本 1.2.30 12baa0c377ae 更新:修复积分数值胶囊的垂直居中
    • bbs1org
      bbs1org
      版本 1.2.29 99362ba56b80 更新:后台界面卡片美化
    • bbs1org
      bbs1org
      版本 1.2.28 5b3e8395047e 更新:设置项改为“主题被删除”“回帖被删除” 两项统一为:正数增加、负数扣减、0 关闭 删除内容时直接按对应固定积分记账,不再按原奖励倍率回扣
    主楼
  • 质量报告

    插件质量报告

    插件:points_rewards

    Hook功能范围循环使用频率文件读写修改系统表读写系统表读写自己的表
    app.boot全站请求启动否5读app_usersapp_users写 plugin_points_rewards_records
    topic.after_render首页/版块列表/主题查看逐条渲染是5----
    topic.index_data.load首页/版块/用户主题列表查询前否5-app_usersapp_users写 plugin_points_rewards_records
    user.menu_links个人卡片/移动端我的菜单(展示位置:个人卡片)否4----
    reply.after_save回帖保存后否3-app_usersapp_users写 plugin_points_rewards_records
    topic.after_save主题保存后否3-app_usersapp_users写 plugin_points_rewards_records
    user.points_changed用户积分变动后否3---写 plugin_points_rewards_records
    user.profile_tab_data用户资料页标签数据否3--app_topics读 plugin_points_rewards_records
    user.profile_tab_footer用户资料页标签内容底部否3----
    user.profile_tabs用户资料页标签栏(展示位置:个人主页Tab)否3----
    content.before_delete内容删除操作否2-app_usersapp_users写 plugin_points_rewards_records

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

    数据字典

    plugin_points_rewards_records

    字段类型可空默认值约束
    idid否-主键、自增
    user_iduint否--
    actionkey否--
    event_keykey否-唯一
    topic_iduint否0-
    reply_iduint否0-
    deltaINTEGER否--
    reasonstring否--
    created_atuint否--
    #1
  • 宗宗酱

    不错

    #2
  • bbs1org

    更新

    #3
  • Maser

    可以可以

    #4
  • 秦始黄

    没看到积分明细啊

    #5
  • 秦始黄

    看到了 在个人资料 积分那里 加个链接入口吧

    #6
  • 秦始黄

    积分规则 页面 也加个积分明细的入口 不然真不好找

    #7
  • bbs1org

    可以

    #8
  • 秦始黄

    站长大大,能否提个小小的建议,回帖送积分能否不发通知 https://linux.sb/topic/10729

    #9
  • bbs1org

    我管理页面加个开关

    #10
  • uscncn

    确实难受哈哈哈 还得刷新网页才出现通知 然后再点

    #11
  • bbs1org

    已经更新

    #12
  • 秦始黄

    每日签到 的积分 也写进来吧

    #13
  • bbs1org

    积分记录会记入。但是规则插件互相之间没法沟通。考虑增加一个文本框,站长可以自己补充规则

    #14
  • 123456789

    @bbs1org 有问题。就是管理员自己,应该不受这个插件控制。否则删除自己的帖子要扣积分,自己还不能发私信。或者不排除管理员也行。但是管理员可以给任意用户直接增加或减少任意积分。效果是一样的。

    #15
  • bbs1org

    编辑用户,你想给多少积分就行的

    #16
  • 123456789

    好的。看到了。😳

    最后编辑于 2026-08-12 15:39
    #17
  • baymax

    这个插件好用

    #18
  • mopwang

    怎么获取积分呢

    #19
  • rainbow

    感谢

    #20
  • rainbow

    为什么上传插件会显示不是标准的插件?

    #21
  • 秦始黄

    删除别按倍数了 我已经改成绝对分了 这样发帖不加分 同时删除可以扣分
    paste-20260814-114529.png

    #22
  • bbs1org

    是这个道理。我修正下

    #23
  • bbs1org

    版本 1.2.28 更新:
    设置项改为“主题被删除”“回帖被删除”
    两项统一为:正数增加、负数扣减、0 关闭
    删除内容时直接按对应固定积分记账,不再按原奖励倍率回扣

    #24
  • bbs1org

    版本 1.2.29 更新:
    后台界面卡片美化

    #25
  • bbs1org

    版本 1.2.30 更新:
    修复积分数值胶囊的垂直居中

    #26
  • bbs1org

    版本 1.2.31 更新:
    访问他人主页时,侧边卡片 显示“TA的积分”入口,可查看对方积分日志

    #27
  • bbs1org

    版本 1.2.32 更新:
    积分明细关联对应主题或回帖,标题以链接展示

    #28
  • 350

    🔍 插件审查报告(对照《AI 开发规则》与开发者文档)

    🔒 安全问题

    未发现明显问题。SQL 均已参数化,输出均已用 h() 转义,附件路径有 ^[a-f0-9]{64}\.[a-z0-9]{1,25}$ 白名单校验。

    ⚡ 性能问题

    未发现明显问题。积分明细查询使用 IN 批量取主题标题,无逐条查询(N+1)。

    🐛 功能/规范缺陷

    1. 附件下载奖励的 event_key 不含用户维度(plugin.php:206 'attachment:' . $hash),而 event_key 全局唯一(plugin.php:7 UNIQUE),导致同一附件只有第一个下载者计分,其余用户静默跳过。建议改为 'attachment:' . uid() . ':' . $hash。
    2. 私信奖励在 app.boot 阶段即记账(plugin.php:190-197),早于私信实际发送成功,发送被拒或失败仍会加分/扣分。建议移到发送成功后的钩子再记账。
    3. 余额检查(plugin.php:79)与记账(plugin.php:121)分离且非原子,并发下负数动作可能把积分扣成负值。建议在同一事务内再次校验余额并加锁。

    ✅ 修复优先级

    附件 event_key 加用户维度 > 私信奖励时机后移 > 余额检查与记账合并事务。

    #29
  • bbs1org

    版本 1.2.33 更新:
    增加积分事件请求级缓存,相同 event_key 每个请求只查询一次。
    积分记录写入成功后立即更新缓存,避免重复查询数据库。
    优化扣积分检查,仅在余额不足时查询事件是否已处理。
    保留数据库唯一约束,防止重复增减积分。
    减少搜索页面重复触发奖励逻辑产生的相同查询。

    #30
  • bbs1org

    版本 1.2.34 更新:
    修复sqlite异常问题

    #31
  • 399

    🔍 插件审查报告(AI 自动审查,对照《AI 开发规则》与开发者文档;本插件未被 8/18 楼上 350 的报告覆盖,属独立首次审查)

    插件:积分规则(points_rewards)v1.2.34

    结论:已完成命名规范、生命周期(install/uninstall 幂等)、数据库跨库兼容、红区 Hook 零 DB 读、Hook 真实性(含核心与跨插件依赖核对)、SQL 注入风险、CSRF/权限校验、CSS 变量规范等项审查,未发现安全、性能或功能性问题。

    #32
  • bbs1org

    版本 1.2.35 更新:
    修正删除主题导致回帖扣分的问题

    #33

发表回复

登录后回复