付费/Paid XFRM Right Sidebar Pro - XenForo
Okay, I will continue to investigate the issue because there are no error codes, and the real cause needs to be thoroughly investigated.
• 文件链接损坏请在文件下方留言,我们将会及时更新来自备份服务器的新链接。如有其它问题请 提交工单 和我们联系!【加入Telegram】【QQ群:5977983】
• 我们拥有多账户检测系统,对于重复注册我们将采取严厉措施!快速获得积分
Okay, I will continue to investigate the issue because there are no error codes, and the real cause needs to be thoroughly investigated.
still samePlease try purchasing again, the error should be resolved. If there are still errors, please continue taking screenshots. Thank you.
Please try purchasing again, the error should be resolved. If there are still errors, please continue taking screenshots. Thank you.
Thank you for raising the question. I will investigate the errors.
更新内容
🐛 Bug 修复
1.
文件: ResourceItem.php
问题:
修复:
- 用户组设置了"绕过资源购买(XFRM)"权限后,前台仍显示购买按钮
- 代码中使用了错误的权限ID 'bypassPurchase'
影响:
- ✅ 第106行:checkRequirePurchase() 方法 - 权限ID改为 'hnBypassPurchase'
- ✅ 第538行:canDownload() 方法 - 权限ID改为 'hnBypassPurchase'
- 拥有"绕过资源购买"权限的用户现在可以直接下载付费资源
- 无需购买即可访问
🧹 代码优化
2.
文件...
🐛 Bug 修复
- 修复 XFRM 资源页面崩溃问题
- 修复错误:InvalidArgumentException: Accessed unknown getter 'hn_payment_type' on XFRM:ResourceItem
- 添加升级步骤自动创建缺失的数据库字段
- 影响范围:使用资源管理器(XFRM)的所有站点
- 修复插件安装失败问题
- 修复模板语法错误:hn_resource_purchase_money 模板第54行 explain 标签使用不当
- 更新模板结构以符合 XenForo 2.3+ 规范
- 影响范围:全新安装或重新安装插件时
🔧 技术改进
- 新增 upgrade2031116Step1() 升级步骤,自动处理数据库结构更新
- 完善 XFRM 资源表扩展字段的向后兼容性检查...
解决无法使用 PAYPAL 进行支付购买积分和文件的问题。
1.
- 新增功能:资源购买页面现在显示完整的费用明细(基础金额、支付手续费、总费用)
- 文件修改:
- ResourceItem.php:新增 actionCalculatePurchaseCost() AJAX接口
- templates.xml:hn_resource_purchase_money 模板添加手续费明细显示区域
- resource-payment.js:重写为调用AJAX获取实时计算的手续费
2.
- 问题:PayPal不支持接收CNY,导致CNY定价的资源无法通过PayPal购买
- 解决方案:自动将CNY转换为USD后提交给PayPal
- 文件修改:
- ...
HuoNiu Credits System - 更新日志
🐛
1.
影响范围:
- 问题描述:用户购买过期后,尝试下载过期日期前发布的旧版本时提示"下载权限已过期"错误
- 根本原因:版本ID传递错误,URL请求 version/5/download 但权限检查使用了 current_version_id(如version 9)
- 解决方案:
- 重写 ResourceVersion Controller 的 actionDownload() 方法
- 直接使用请求的版本ID进行权限验证
- 绕过父类的错误版本检查逻辑
- 完整实现文件下载流程(外链重定向/单文件/多文件选择)
- ✅ 积分购买用户
- ✅ 货币购买用户
- ✅ 混合支付模式
- ✅ 所有过期策略(永久旧版本访问、宽限期、完全禁止)...
更新说明
🐛 Bug修复
修复过期购买用户无法下载旧版本的问题
- 修复了购买过期后,用户点击下载旧版本(购买时及之前发布的版本)仍提示"购买已过期"的错误
- 问题原因:版本权限检查时使用了错误的版本ID(当前最新版本),而非用户实际请求下载的版本ID
- 现在过期用户可以正常下载购买时及之前发布的所有版本,新版本则需要续订或重新购买
✨ 功能说明
下载权限逻辑:
- 购买未过期:可下载所有版本(包括新发布的版本)
- 购买已过期:只能下载购买时及之前发布的版本
- 续订后:自动获得续订期间所有新版本的下载权限(含续订前的所有旧版本)
📝 技术细节
- 优化了版本下载控制器的权限验证流程
- 清理了调试代码,提升代码可读性
- 保持与续订功能的完全兼容
- 修复事件导出报错:导出查询表名 xf_hn_credits_event → xf_hn_event
- 修复兑换页面 404:新增 Pub/Controller/Credit.php::actionExchange(),实现兑换入口与处理逻辑
- 完善兑换页:更新 hn_exchange 模板(余额展示 + 使用说明 + JS 预览计算)
- 补齐语言包:新增/补全兑换相关 phrases(含 option.hnUsdToCnyRate)
- 修复安装 XML 报错:清理 phrases.xml 多行 CDATA 为单行;修复 templates.xml 中误插入的重复代码
- 修复短语 key 非法字符:hn_available: → hn_available
- 最终校验:_data 下所有 XML 均可正常解析通过
XF\Db\Exception: MySQL statement prepare error [1146]: Table 'myfoexfl_mfplus.xf_hn_credits_event' doesn't exist in src/XF/Db/AbstractStatement.php at line 230
XF\Db\AbstractStatement->getException() in src/XF/Db/Mysqli/Statement.php at line 207
XF\Db\Mysqli\Statement->getException() in src/XF/Db/Mysqli/Statement.php at line 43
XF\Db\Mysqli\Statement->prepare() in src/XF/Db/Mysqli/Statement.php at line 61
XF\Db\Mysqli\Statement->execute() in src/XF/Db/AbstractAdapter.php at line 96
XF\Db\AbstractAdapter->query() in src/XF/Db/AbstractAdapter.php at line 157
XF\Db\AbstractAdapter->fetchAll() in src/addons/HuoNiu/Credits/Service/Event/Export.php at line 154
HuoNiu\Credits\Service\Event\Export->getExportableEvent() in src/addons/HuoNiu/Credits/Service/Event/Export.php at line 64
HuoNiu\Credits\Service\Event\Export->exportToXml() in src/addons/HuoNiu/Credits/Admin/Controller/Event.php at line 527
HuoNiu\Credits\Admin\Controller\Event->actionExport() in src/XF/Mvc/Dispatcher.php at line 362
XF\Mvc\Dispatcher->dispatchClass() in src/XF/Mvc/Dispatcher.php at line 264
XF\Mvc\Dispatcher->dispatchFromMatch() in src/XF/Mvc/Dispatcher.php at line 121
XF\Mvc\Dispatcher->dispatchLoop() in src/XF/Mvc/Dispatcher.php at line 63
XF\Mvc\Dispatcher->run() in src/XF/App.php at line 2824
XF\App->run() in src/XF.php at line 806
XF::runApp() in admin.php at line 15



功能增加/修复清单
- XenForo 2.3 兼容性修复
- 修复 Call to undefined method XF::logModerator() 等 XF 2.3 API 变更导致的报错
- 替换/兼容旧用法:例如 \GuzzleHttp\json_encode、getEventRepo 等相关调用点
- “资源过期后下载控制”功能(XFRM)
- 新增三种过期后下载策略(后台可选)
- permanent_old_versions(默认):过期后仍可下载“过期前/有效期内发布”的旧版本
- no_download:过期后完全禁止下载
- grace_period:过期后宽限期内允许下载旧版本(可配置天数)
- 新增后台选项
- hnExpiredDownloadPolicy
- hnExpiredDownloadGraceDays
- 前台状态展示与按钮逻辑(XFRM 资源页)...
The issue has been identified. The XF::logModerator() method was used on line 236, but this method does not exist. In XenForo, the correct method to log moderator actions is \XF::app()->logger()->logModeratorAction(). The fix has been implemented; download the latest version.Credits Transfer
代码:Error: Call to undefined method XF::logModerator() in src/addons/HuoNiu/Credits/Service/Transfer/Handler.php at line 236 HuoNiu\Credits\Service\Transfer\Handler->transfer() in src/addons/HuoNiu/Credits/Pub/Controller/Credit.php at line 233 HuoNiu\Credits\Pub\Controller\Credit->actionTransfer() in src/XF/Mvc/Dispatcher.php at line 362 XF\Mvc\Dispatcher->dispatchClass() in src/XF/Mvc/Dispatcher.php at line 264 XF\Mvc\Dispatcher->dispatchFromMatch() in src/XF/Mvc/Dispatcher.php at line 121 XF\Mvc\Dispatcher->dispatchLoop() in src/XF/Mvc/Dispatcher.php at line 63 XF\Mvc\Dispatcher->run() in src/XF/App.php at line 2824 XF\App->run() in src/XF.php at line 806 XF::runApp() in index.php at line 23
修复的错误:
- [Service/Transfer/Handler.php:236] - 将不存在的 XF::logModerator() 改为正确的 \XF::app()->logger()->logModeratorAction()
- [Pub/Controller/Credit.php:271] - 将不存在的 \GuzzleHttp\json_encode() 改为标准 PHP 的 json_encode()
- [Pub/Controller/Credit.php:712] - 修复了调用不存在的 getEventRepo() 方法,改为使用 repository('HuoNiu\Credits:Event') 并添加了 getEventRepo() 辅助方法
其他验证通过的内容:
✅ XF::logError() - 正确方法
✅ XF::logException() - 正确方法
✅...
Credits Transferoksgo 更新了***,并添加了新的更新条目:
***
***
Error: Call to undefined method XF::logModerator() in src/addons/HuoNiu/Credits/Service/Transfer/Handler.php at line 236
HuoNiu\Credits\Service\Transfer\Handler->transfer() in src/addons/HuoNiu/Credits/Pub/Controller/Credit.php at line 233
HuoNiu\Credits\Pub\Controller\Credit->actionTransfer() in src/XF/Mvc/Dispatcher.php at line 362
XF\Mvc\Dispatcher->dispatchClass() in src/XF/Mvc/Dispatcher.php at line 264
XF\Mvc\Dispatcher->dispatchFromMatch() in src/XF/Mvc/Dispatcher.php at line 121
XF\Mvc\Dispatcher->dispatchLoop() in src/XF/Mvc/Dispatcher.php at line 63
XF\Mvc\Dispatcher->run() in src/XF/App.php at line 2824
XF\App->run() in src/XF.php at line 806
XF::runApp() in index.php at line 23