欢迎客人!
• 开始前请阅读社区规则确保您顺利的熟悉本社区。注册用户可以提交资源,如果您有已发布资源的新版本,您可以随时更新版本!
• 文件链接损坏请在文件下方留言,我们将会及时更新来自备份服务器的新链接。如有其它问题请 提交工单 和我们联系!【加入Telegram】【QQ群:5977983】
• 我们拥有多账户检测系统,对于重复注册我们将采取严厉措施!快速获得积分
-
中国新年将至,本站推出优惠活动。所有用户组都将获得由 HuoNiu 开发的 付费插件 优惠20%活动!如果购买多个插件,将在优惠基础上继续实施5%优惠。本活动将持续一个月!
你正在使用过时的浏览器,可能无法正确显示此网站或其他网站。
你应该升级浏览器或使用其他浏览器。
你应该升级浏览器或使用其他浏览器。
- 修复模板 link 函数参数类型错误 - 真实货币交易列表搜索菜单
- 优化事件错误检测逻辑 - 使用语言短语键替代硬编码字符串
- 扩展错误白名单 - 将正常的频率限制错误加入白名单,避免误记录
兼容性更新
适配 XenForo Resource Manager 2.3.8 最新版
新增功能
- ✨ 侧边栏显示限时折扣信息(折扣百分比 + 截止日期)
- ✨ 折扣系统支持叠加计算(折上折):分类折扣 → 限时折扣 → 续订折扣
折扣系统优化
- 🔄 限时折扣对所有登录用户可见(无需用户组限制)
- 🔄 分类折扣仅对指定用户组可见
- 🔄 三层折扣可累积叠加,最大化优惠力度
Bug 修复
- 修复 discount 权限缺失导致折扣功能不可用
- 修复 getUserGroupDiscountPercent() 返回值错误(100-折扣 → 折扣值)
- 修复 canDiscount() 冗余权限检查
- 修复 bypassPurchase 权限名不一致(3处:Entity/ResourceItem、Controller/ResourceVersion)
- 修复资源购买时 "Trigger fire failed" 错误(quickTrigger 参数导致)
- 清理 template_modifications.xml 升级提示中的死代码
代码改进
- ♻ 重命名 getDiscountPercent() → getDiscountedPrice()(更准确的方法名)
- ♻ 更新所有折扣相关短语说明(中文 + 英文)
- ♻ 优化折扣计算逻辑,支持叠加规则
1. Setup.php XenForo 标准合规性修复(9批次)
- 移除所有冗余的 information_schema 查询
- 移除所有 SHOW COLUMNS 检查
- 移除所有 tableExists() 预检查
- 移除所有 getColumnDefinition() 检查
- 移除 deleteDirectory() 辅助方法
- 保留对第三方插件(MJ)的合法性检查
- 涉及方法:installStep1、installStep9、uninstallStep1-3、uninstallStep6-7、upgrade2000000Step2-4、upgrade2030500Step1、upgrade2030600Step1、upgrade2030700Step1、upgrade2030702Step1、upgrade2030705Step1、migrateResourcePricing()
2. 新装与升级架构一致性修复
- 新增 upgrade2030803Step1 升级步骤
- 补全4个缺失表:xf_hn_audit_log、xf_hn_failed_event_log、xf_hn_credits_stats、xf_hn_event_statistics
- 补全 xf_rm_resource 表缺失字段:hn_count_category_only
- 补全资源购买表缺失的8个过期通知字段(expiry_notified_*)
3. 版本号更新
- addon.json:version 更新为 "2.3.8.3",version_id 更新为 2030803
4. hn_stats 模板错误修复
- templates.xml:修复3处 {$event.getTitle()} 改为 {$event.title}
- 原因:控制器传递的是数组而非对象
5. Templater.php 代码清理
- 移除冗余的 fnLink() 方法覆盖(参数签名不匹配)
6. 每日签到小部件修复
- Widget/ClockInEveryDay.php:添加 SQL 查询过滤,仅显示配置了 daily_clock 事件的货币
- templates.xml (hn_widget_user_clock_in_every_day):表单添加 ajax="true",按钮添加 js-clockInBtn 类
- Pub/Controller/Credit.php (actionClock):移除未使用变量,重定向改为 getDynamicRedirect()
7. 侧边栏积分处罚入口移除
- templates.xml (hn_credit_wrapper):移除侧边栏"您的钱包"中的"积分处罚"链接(第3187-3190行)
8. 缺失短语键值补全
- phrases.xml:添加 hn_credits_not_enough_x_being_fined 短语:"被处罚用户余额不足,需要 {x}"
文件统计
- Setup.php:从 3213 行优化到 2740 行
- 修改文件数:8个核心文件
- 新增代码:约200行(upgrade2030803Step1 + 小部件过滤逻辑)
- 删除代码:约670行(冗余检查 + fnLink方法)
1. 核心Bug修复(3项)
- ModeratorLog错误 → 移除logModeratorAction()调用
- MySQL "Commands out of sync" → 改用Finder API查询
- json_decode TypeError → 添加is_array()检查
2. 重复防护机制
- 事件重复触发防护 → 按currency_id去重
- 签到重复防护 → SELECT FOR UPDATE原子锁
3. 事件系统精简(删除28个事件)
- 移除:profile_post系列(8个)、conversation系列(2个)、poll系列(4个)、thread_watch系列(4个)、thread_sticky/unsticky、post_report系列(2个)、avatar_delete、unfollow/follower_lose、update_status、post_like_lose、thread_reply_lose
4. 提现功能补全
- 新增:withdrawal、withdrawal_refund事件定义
- 新增:Event/Handler/Withdrawal.php处理类
- 新增:4条相关phrase
5. 升级路径
- Setup.php新增upgrade2030801Step1() → 自动清理旧事件+插入新事件
6. 代码一致性清理
- EventContainer.php → 移除28个删除事件映射
- EventHandler.php → 清理删除事件case语句
- Transaction.php canView() → 允许查看历史记录
- ConversationUser.php → 清空_postSave()
- 删除7个实体扩展类文件
7. 配置文件同步
- class_extensions.xml → 移除8个已删实体扩展
- phrases.xml → 删除~40个废弃phrase,新增4个
- hn_event_definitions.xml → 清理28个删除事件,新增2个
- Setup.php getData() → 补齐hn_sell_resource_money、paygate_payment
1-3:基础功能修复
- 提现拒绝功能缺失 — 管理员拒绝提现时无法输入原因,无法发送PM通知用户
- 信用兑换/分红/红包页面洪水检查误触 — GET请求(首次访问)就触发洪水检查
- 每日签到小工具不工作 — 模板名称错误、变量不匹配、缺少货币数据、缺少后端方法
4:事件系统
- 资源购买/出售事件 definition_id 不匹配
- 最佳答案悬赏事件 definition_id 不匹配
- 资源购买/出售事件无异常保护 — XFRM 插件未安装时会导致致命错误
- 投票删除事件未触发 — poll_delete 定义存在但从未被调用
- 帖子回复扣减重复执行 — 编辑已删除帖子时重复扣除积分
- 主题浏览事件重复触发 — 控制器中多处调用导致同一次浏览触发两次
5:剩余问题
- 真实货币购买资源事件失效 — 定义存在但从未触发
- 转账功能绕过事件系统 — 无论事件是否激活、用户组是否有权限,都能转账
- 死代码文件存在 — 扩展文件完全未使用
6:后台设置与选项
- EventContainer 映射错误(严重)— 约16个 definition_id 键名错误,导致交易记录描述全部显示为空
- 每日限额重复检查+SQL错误(高危)— EventHandler.trigger() 有重复检查逻辑且忽略开关,SQL IN 参数绑定错误
- 幽灵选项(中等)— 在代码中使用但 options.xml 从未定义,管理员无法配置
- 提现货币默认值不一致
7:PHP 8 兼容性
- Trigger 服务类型错误
8:日志优化
- 未配置事件错误日志泛滥 — daily_login 是可选功能,管理员未配置时每次请求都记录错误
🔧 修复问题
- 提现管理界面优化
- 金额显示格式化为2位小数(修复显示8位小数问题)
- 完整显示收款信息(账户姓名、收款账号),不再仅显示支付方式
- 路由配置修复
- 删除重复的管理后台提现路由定义
- 修复安装时路由冲突错误(Error 1062: Duplicate entry)
- 货币删除功能修复
- 修复删除货币时查询不存在数据表的错误
- 修复删除过程中未定义变量 $column 的错误
- 正确从 xf_user 表检查用户余额
- 界面组件标准化
- 事件管理页面金币货币提示使用 XenForo 标准 blockMessage 组件
- 改善视觉一致性和用户体验
🔒 安全特性
- 金币货币系统保护机制完整(6层防护)
- 仅能通过销售资源文件获得金币
一、代码规范修复(15项)
实体类修复(9项)
安装/升级修复(3项)
- ResourceMoneyPurchase.php - 修复汇率默认值、PHPDoc、缩进
- Charge.php - 添加缺失的 $refundOnDelete 属性和setter方法
- EventDefinition.php - 移除未定义属性的默认值设置
- Withdrawal.php - 金额字段类型从FLOAT改为STR(精度问题)
- Bonus.php - 修复主键定义(array→string)
- Reward.php - 修复主键定义(array→string)
7. Setup.php - 修复卸载步骤命名冲突(6A→6, 6→7)
8. Setup.php - 补全卸载步骤中遗漏的表/列删除
9. Setup.php - 移除所有调试echo语句
控制器修复(1项)
10. Pub/Controller/Withdrawal.php - 添加提现防洪水检查
监听器修复(1项)
11. Listener.php - 修复默认货币ID(0→1,避免外键错误)
文件清理(1项)
12. 删除备份文件 Entity/Bonus.php.bak
二、小数位显示修复(6处)
模板修复
影响
- 管理面板资源批量列表 - 积分价格、现金价格格式化
- 购买确认页面 - 发送金额、剩余余额格式化
- 资源价格标签 - 原价、折扣价、续费价格(~10个实例)
- 货币汇率显示 - 4位小数
- 重置积分目标 - 2位小数
- 所有积分金额现在按货币 decimal_places 设置显示(默认2位)
- 解决迁移后显示8位小数的问题
三、修改文件统计
共修改 10 个文件:
- 6 个实体类
- 1 个安装类
- 1 个控制器
- 1 个监听器
- 1 个模板文件
- options.xml - 新增防洪选项
- phrases.xml - 中文短语
- Pub/Controller/Credit.php - 防洪逻辑
- Service/Transfer/Handler.php - 触发用户
- Setup.php - 迁移修复
修复了 3 个文件
🎯 核心问题
- phrases.xml - 清理重复语言键
- templates.xml - 修复提现模板错误
- Thread.php - 解决插件兼容性
🔧 技术细节
- 清理重复语言键导致显示异常
- 提现模板 XML 结构错误无法安装
- 与 SearchImprovements 插件冲突报错
- 语义区分:"支付方式"(买积分)vs "收款方式"(提现)
- 注册 getter 确保类扩展继承正确