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

class XenForo_ControllerAdmin_Stats extends XenForo_ControllerAdmin_Abstract
{
    protected function 
_preDispatch($action)
    {
        
$this->assertAdminPermission('viewStatistics');
    }

    public function 
actionIndex()
    {
        return 
$this->responseReroute(__CLASS__'daily');
    }

    public function 
getStatsData($grouping$defaultStart)
    {
        if (!
$start $this->_input->filterSingle('start'XenForo_Input::DATE_TIME))
        {
            
$start $defaultStart;
        }

        if (!
$end $this->_input->filterSingle('end'XenForo_Input::DATE_TIME, array('dayEnd' => true)))
        {
            
$end XenForo_Application::$time;
        }

        if (!
$statsTypes $this->_input->filterSingle('statsTypes'XenForo_Input::ARRAY_SIMPLE))
        {
            
$statsTypes = array('post''post_like');
        }

        
$statsModel $this->_getStatsModel();

        
$groupings = array(
            
'daily' => array(
                
'printDateFormat' => 'absolute',
                
'xAxisTime' => true
            
),
            
'monthly' => array(
                
'printDateFormat' => 'M Y',
                
'groupDateFormat' => 'Ym'
            
),
            
'weekly' => array(
                
'printDateFormat' => 'WW Y',
                
'groupDateFormat' => 'YW'
            
)
        );

        if (!isset(
$groupings[$grouping]))
        {
            
$grouping 'daily';
        }

        
$groupingConfig $groupings[$grouping];

        
$plots $statsModel->getStatsData($start$end$statsTypes$grouping);
        
$dateMap = array();

        foreach (
$plots AS $type => $plot)
        {
            
$output $statsModel->prepareGraphData($plot$grouping);

            
$plots[$type] = $output['plot'];
            
$dateMap[$type] = $output['dateMap'];
        }

        if (empty(
$groupingConfig['xAxisTime']))
        {
            
$output $statsModel->filterGraphDataDates($plots$dateMap);
            
$plots $output['plots'];
            
$dateMap $output['dateMap'];
        }

        
$viewParams = array(
            
'plots' => $plots,
            
'dateMap' => $dateMap,
            
'start' => $start,
            
'end' => $end,
            
'endDisplay' => ($end >= XenForo_Application::$time $end),
            
'statsTypeOptions' => $statsModel->getStatsTypeOptions($statsTypes),
            
'statsTypePhrases' => $statsModel->getStatsTypePhrases($statsTypes),
            
'datePresets' => XenForo_Helper_Date::getDatePresets(),
            
'grouping' => $grouping,
            
'groupingConfig' => $groupingConfig
        
);

        return 
$viewParams;
    }

    public function 
actionMonthly()
    {
        
$viewParams $this->getStatsData('monthly'strtotime('-1 year'));

        return 
$this->responseView('XenForo_ViewAdmin_Stats_Monthly''stats_monthly'$viewParams);
    }

    public function 
actionWeekly()
    {
        
$viewParams $this->getStatsData('weekly'strtotime('-1 year'));

        return 
$this->responseView('XenForo_ViewAdmin_Stats_Weekly''stats_weekly'$viewParams);
    }

    public function 
actionDaily()
    {
        
$viewParams $this->getStatsData('daily'strtotime('-1 month'));

        return 
$this->responseView('XenForo_ViewAdmin_Stats_Daily''stats_daily'$viewParams);
    }

    
/**
     * @return XenForo_Model_Stats
     */
    
protected function _getStatsModel()
    {
        return 
$this->getModelFromCache('XenForo_Model_Stats');
    }
}
Онлайн: 0
Реклама