Brivium Credits 的 Lite 版本(版本停留在2014年)中是有自动清理过期的积分交易记录的计划任务的,但是非常奇怪的是,新版本的 Brivium Credits Premium 中移除了这个功能,不晓得是怎么考虑的。 而造成的结果就是,稍微大一点儿的论坛,每天有几百人活跃的话,它可能每天就要产生上万条积分交易记录,而系统又没有自动清理过期积分交易记录的现成功能。 现在我写个教程,教大家如何手动来添加这个计划任务,需要修改源代码。 1、在 /library/Brivium/Credits/Model/Transaction.php 文件的最后(最后一个}之前),添加如下函数: PHP: public function transactionClear() { $transactionsHistory = XenForo_Application::$time - (3 * 86400); $this->_getDb()->query('DELETE FROM `xf_brivium_credits_transaction` WHERE transaction_date < ' . $transactionsHistory); } 这里的“3”意思就是三天前,可以随便改为几天前。 2、在 /library/Brivium/Credits/CronEntry/ 目录下,增加新文件 Transaction.php ,内容为: 代码: <?php /** * Cron entry for updating credits interest. */ class Brivium_Credits_CronEntry_Transaction { public static function runTransactionClear() { XenForo_Model::create('Brivium_Credits_Model_Transaction')->transactionClear(); } } 3、然后将这两个文件上传、覆盖到服务器。 4、进入论坛的后台管理,在 系统工具 > 计划任务 中点击右上角的【添加新计划任务】,如下填写: 记得勾选最下面的“允许计划任务在计划时间自动运行”。 5、试运行一下看看能不能清理掉过期交易日志。