1. XenForo 1.5.14 中文版——支持中文搜索!现已发布!查看详情
  2. Xenforo 爱好者讨论群:215909318 XenForo专区

插件 Brivium Credits Premium 添加自动清理过期的积分交易记录的计划任务。

本帖由 燕尘2017-12-09 发布。版面名称:XenForo中文版

  1. 燕尘

    燕尘 VIP会员

    注册:
    2016-07-22
    帖子:
    13
    赞:
    3
    Brivium Credits 的 Lite 版本(版本停留在2014年)中是有自动清理过期的积分交易记录的计划任务的,但是非常奇怪的是,新版本的 Brivium Credits Premium 中移除了这个功能,不晓得是怎么考虑的。

    而造成的结果就是,稍微大一点儿的论坛,每天有几百人活跃的话,它可能每天就要产生上万条积分交易记录,而系统又没有自动清理过期积分交易记录的现成功能。

    现在我写个教程,教大家如何手动来添加这个计划任务,需要修改源代码。

    1、在 /library/Brivium/Credits/Model/Transaction.php 文件的最后(最后一个}之前),添加如下函数:
    PHP:
        public function transactionClear()
        {
            
    $transactionsHistory XenForo_Application::$time - (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、进入论坛的后台管理,在 系统工具 > 计划任务 中点击右上角的【添加新计划任务】,如下填写:
    微信图片_20171209213200.png

    记得勾选最下面的“允许计划任务在计划时间自动运行”。

    5、试运行一下看看能不能清理掉过期交易日志。
     
    最后编辑: 2017-12-12
    已获得 午夜涩茶 的点赞。
正在加载...