Вход Регистрация
Файл: library/XenForo/Deferred/DailyStats.php
Строк: 56
<?php

class XenForo_Deferred_DailyStats extends XenForo_Deferred_Abstract
{
    public function 
execute(array $deferred, array $data$targetRunTime, &$status)
    {
        
$data array_merge(array(
            
'position' => 0,
            
'batch' => 100,
            
'delete' => false
        
), $data);
        
$data['batch'] = max(1$data['batch']);

        
/* @var $statsModel XenForo_Model_Stats */
        
$statsModel XenForo_Model::create('XenForo_Model_Stats');

        if (
$data['position'] == 0)
        {
            
// delete old stats cache if required
            
if (!empty($data['delete']))
            {
                
$statsModel->deleteStats();
            }

            
// an appropriate date from which to start... first thread, or earliest user reg?
            
$data['position'] = min(
                
XenForo_Model::create('XenForo_Model_Thread')->getEarliestThreadDate(),
                
XenForo_Model::create('XenForo_Model_User')->getEarliestRegistrationDate()
            );

            
// start on a 24 hour increment point
            
$data['position'] = $data['position'] - $data['position'] % 86400;
        }
        else if (
$data['position'] > XenForo_Application::$time)
        {
            return 
true;
        }

        
$endPosition $data['position'] + $data['batch'] * 86400;

        
$statsModel->buildStatsData($data['position'], $endPosition);

        
$data['position'] = $endPosition;

        
$actionPhrase = new XenForo_Phrase('rebuilding');
        
$typePhrase = new XenForo_Phrase('daily_statistics');
        
$status sprintf('%s... %s (%s)'$actionPhrase$typePhraseXenForo_Locale::date($data['position'], 'absolute'));

        return 
$data;
    }

    public function 
canCancel()
    {
        return 
true;
    }
}
Онлайн: 0
Реклама