Вход Регистрация
Файл: oc-admin/stats.php
Строк: 251
<?php if ( ! defined('ABS_PATH')) exit('ABS_PATH is not loaded. Direct access is not allowed.');

/*
 * Copyright 2014 Osclass
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

    
class CAdminStats extends AdminSecBaseModel
    
{
        
//specific for this class
        
function __construct()
        {
            
parent::__construct();

            
//specific things for this class
        
}

        
//Business Layer...
        
function doModel()
        {
            
parent::doModel();

            
//specific things for this class
            
switch ($this->action) {
                case(
'reports'):        // manage stats view
                                        
$reports = array();
                                        if( 
Params::getParam('type_stat') == 'week' ) {
                                            
$stats_reports Stats::newInstance()->new_reports_count(date'Y-m-d'mktime(000date("m"), date("d") - 70date("Y")) ),'week');
                                            for(
$k 10$k >= 0$k--) {
                                                
$reports[date'W'mktime(000date("m"), date("d"), date("Y")) ) - $k]['views']          = 0;
                                                
$reports[date'W'mktime(000date("m"), date("d"), date("Y")) ) - $k]['spam']           = 0;
                                                
$reports[date'W'mktime(000date("m"), date("d"), date("Y")) ) - $k]['repeated']       = 0;
                                                
$reports[date'W'mktime(000date("m"), date("d"), date("Y")) ) - $k]['bad_classified'] = 0;
                                                
$reports[date'W'mktime(000date("m"), date("d"), date("Y")) ) - $k]['offensive']      = 0;
                                                
$reports[date'W'mktime(000date("m"), date("d"), date("Y")) ) - $k]['expired']        = 0;
                                            }
                                        } else if( 
Params::getParam('type_stat') == 'month' ) {
                                            
$stats_reports Stats::newInstance()->new_reports_count(date'Y-m-d'mktime(000date("m") - 10date("d"), date("Y")) ),'month');
                                            for(
$k 10$k >= 0$k--) {
                                                
$reports[date'F'mktime(000date("m") - $kdate("d"), date("Y")) )]['views']          = 0;
                                                
$reports[date'F'mktime(000date("m") - $kdate("d"), date("Y")) )]['spam']           = 0;
                                                
$reports[date'F'mktime(000date("m") - $kdate("d"), date("Y")) )]['repeated']       = 0;
                                                
$reports[date'F'mktime(000date("m") - $kdate("d"), date("Y")) )]['bad_classified'] = 0;
                                                
$reports[date'F'mktime(000date("m") - $kdate("d"), date("Y")) )]['offensive']      = 0;
                                                
$reports[date'F'mktime(000date("m") - $kdate("d"), date("Y")) )]['expired']        = 0;
                                            }
                                        } else {
                                            
$stats_reports Stats::newInstance()->new_reports_count(date'Y-m-d'mktime(000date("m"), date("d") - 10date("Y")) ),'day');
                                            for(
$k 10$k >= 0$k--) {
                                                
$reports[date'Y-m-d'mktime(000date("m"), date("d") - $kdate("Y")) )]['views']          = 0;
                                                
$reports[date'Y-m-d'mktime(000date("m"), date("d") - $kdate("Y")) )]['spam']           = 0;
                                                
$reports[date'Y-m-d'mktime(000date("m"), date("d") - $kdate("Y")) )]['repeated']       = 0;
                                                
$reports[date'Y-m-d'mktime(000date("m"), date("d") - $kdate("Y")) )]['bad_classified'] = 0;
                                                
$reports[date'Y-m-d'mktime(000date("m"), date("d") - $kdate("Y")) )]['offensive']      = 0;
                                                
$reports[date'Y-m-d'mktime(000date("m"), date("d") - $kdate("Y")) )]['expired']        = 0;
                                            }
                                        }
                                        
$max = array();
                                        
$max['views'] = 0;
                                        
$max['other'] = 0;
                                        foreach(
$stats_reports as $report) {
                                            
$reports[$report['d_date']]['views']          = $report['views'];
                                            
$reports[$report['d_date']]['spam']           = $report['spam'];
                                            
$reports[$report['d_date']]['repeated']       = $report['repeated'];
                                            
$reports[$report['d_date']]['bad_classified'] = $report['bad_classified'];
                                            
$reports[$report['d_date']]['offensive']      = $report['offensive'];
                                            
$reports[$report['d_date']]['expired']        = $report['expired'];
                                            if( 
$report['views']>$max['views'] ) {
                                                
$max['views'] = $report['views'];
                                            }
                                            if( 
$report['spam']>$max['other'] ) {
                                                
$max['other'] = $report['spam'];
                                            }
                                            if( 
$report['repeated']>$max['other'] ) {
                                                
$max['other'] = $report['repeated'];
                                            }
                                            if( 
$report['bad_classified']>$max['other'] ) {
                                                
$max['other'] = $report['bad_classified'];
                                            }
                                            if( 
$report['offensive']>$max['other'] ) {
                                                
$max['other'] = $report['offensive'];
                                            }
                                            if( 
$report['expired']>$max['other'] ) {
                                                
$max['other'] = $report['expired'];
                                            }
                                        }
                                        
$this->_exportVariableToView("reports"$reports);
                                        
$this->_exportVariableToView("max"$max);
                                        
$this->doView("stats/reports.php");
                break;
                case(
'comments'):       // manage stats view
                                        
$comments = array();
                                        if( 
Params::getParam('type_stat') == 'week' ) {
                                            
$stats_comments Stats::newInstance()->new_comments_count(date'Y-m-d H:i:s',  mktime(000date("m"), date("d") - 70date("Y")) ),'week');
                                            for(
$k 10$k >= 0$k--) {
                                                
$comments[date'W'mktime(000date("m"), date("d"), date("Y")) ) - $k] = 0;
                                            }
                                        } else if( 
Params::getParam('type_stat') == 'month' ) {
                                            
$stats_comments Stats::newInstance()->new_comments_count(date('Y-m-d H:i:s',  mktime(000date("m") - 10date("d"), date("Y")) ),'month');
                                            for(
$k 10$k >= 0$k--) {
                                                
$comments[date'F'mktime(000date("m") - $kdate("d"), date("Y")) )] = 0;
                                            }
                                        } else {
                                            
$stats_comments Stats::newInstance()->new_comments_count(date'Y-m-d H:i:s',  mktime(000date("m"), date("d") - 10date("Y")) ),'day');
                                            for(
$k 10$k >= 0$k--) {
                                                
$comments[date'Y-m-d'mktime(000date("m"), date("d") - $kdate("Y")) )] = 0;
                                            }
                                        }
                                        
$max 0;
                                        foreach(
$stats_comments as $comment) {
                                            
$comments[$comment['d_date']] = $comment['num'];
                                            if( 
$comment['num'] > $max ) {
                                                
$max $comment['num'];
                                            }
                                        }
                                        
$this->_exportVariableToView("comments"$comments);
                                        
$this->_exportVariableToView("latest_comments"Stats::newInstance()->latest_comments());
                                        
$this->_exportVariableToView("max"$max);
                                        
$this->doView("stats/comments.php");
                break;
                default:
                case(
'items'):          // manage stats view
                                        
$items = array();
                                        
$reports = array();
                                        if( 
Params::getParam('type_stat') == 'week' ) {
                                            
$stats_items Stats::newInstance()->new_items_count(date'Y-m-d H:i:s',  mktime(000date("m"), date("d") - 70date("Y")) ),'week');
                                            
$stats_reports Stats::newInstance()->new_reports_count(date'Y-m-d',  mktime(000date("m"), date("d") - 70date("Y")) ),'week');
                                            for(
$k 10$k >= 0$k--) {
                                                
$reports[date'W'mktime(000date("m"), date("d"), date("Y")) ) - $k]['views'] = 0;
                                                
$items[date'W'mktime(000date("m"), date("d"), date("Y")) ) - $k] = 0;
                                            }
                                        } else if( 
Params::getParam('type_stat') == 'month' ) {
                                            
$stats_items Stats::newInstance()->new_items_count(date'Y-m-d H:i:s',  mktime(000date("m") - 10date("d"), date("Y")) ),'month');
                                            
$stats_reports Stats::newInstance()->new_reports_count(date'Y-m-d',  mktime(000date("m") - 10date("d"), date("Y")) ),'month');
                                            for(
$k 10$k >= 0$k--) {
                                                
$reports[date'F'mktime(000date("m") - $kdate("d"), date("Y")) )]['views'] = 0;
                                                
$items[date'F'mktime(000date("m") - $kdate("d"), date("Y")) )] = 0;
                                            }
                                        } else {
                                            
$stats_items Stats::newInstance()->new_items_count(date'Y-m-d H:i:s',  mktime(000date("m"), date("d") - 10date("Y")) ),'day');
                                            
$stats_reports Stats::newInstance()->new_reports_count(date('Y-m-d',  mktime(000date("m"), date("d") - 10date("Y")) ),'day');
                                            for(
$k 10$k >= 0$k--) {
                                                
$reports[date'Y-m-d'mktime(000date("m"), date("d") - $kdate("Y")) )]['views'] = 0;
                                                
$items[date'Y-m-d'mktime(000date("m"), date("d") - $kdate("Y")) )] = 0;
                                            }
                                        }
                                        
$max 0;
                                        foreach(
$stats_items as $item) {
                                            
$items[$item['d_date']] = $item['num'];
                                            if( 
$item['num'] > $max ) {
                                                
$max $item['num'];
                                            }
                                        }
                                        
$max_views 0;
                                        foreach(
$stats_reports as $report) {
                                            
$reports[$report['d_date']]['views'] = $report['views'];
                                            if( 
$report['views'] > $max_views ) {
                                                
$max_views $report['views'];
                                            }
                                        }


                                        
$alerts = array();
                                        
$subscribers = array();
                                        if( 
Params::getParam('type_stat') == 'week' ) {
                                            
$stats_alerts Stats::newInstance()->new_alerts_count(date'Y-m-d H:i:s',  mktime(000date("m"), date("d") - 70date("Y")) ),'week');
                                            
$stats_subscribers Stats::newInstance()->new_subscribers_count(date'Y-m-d',  mktime(000date("m"), date("d") - 70date("Y")) ),'week');
                                            for(
$k 10$k >= 0$k--) {
                                                
$subscribers[date'W'mktime(000date("m"), date("d"), date("Y")) ) - $k] = 0;
                                                
$alerts[date'W'mktime(000date("m"), date("d"), date("Y")) ) - $k] = 0;
                                            }
                                        } else if( 
Params::getParam('type_stat') == 'month' ) {
                                            
$stats_alerts Stats::newInstance()->new_alerts_count(date'Y-m-d H:i:s',  mktime(000date("m") - 10date("d"), date("Y")) ),'month');
                                            
$stats_subscribers Stats::newInstance()->new_subscribers_count(date'Y-m-d',  mktime(000date("m") - 10date("d"), date("Y")) ),'month');
                                            for(
$k 10$k >= 0$k--) {
                                                
$subscribers[date'F'mktime(000date("m") - $kdate("d"), date("Y")) )] = 0;
                                                
$alerts[date'F'mktime(000date("m") - $kdate("d"), date("Y")) )] = 0;
                                            }
                                        } else {
                                            
$stats_alerts Stats::newInstance()->new_alerts_count(date'Y-m-d H:i:s',  mktime(000date("m"), date("d") - 10date("Y")) ),'day');
                                            
$stats_subscribers Stats::newInstance()->new_subscribers_count(date('Y-m-d',  mktime(000date("m"), date("d") - 10date("Y")) ),'day');
                                            for(
$k 10$k >= 0$k--) {
                                                
$subscribers[date'Y-m-d'mktime(000date("m"), date("d") - $kdate("Y")) )] = 0;
                                                
$alerts[date'Y-m-d'mktime(000date("m"), date("d") - $kdate("Y")) )] = 0;
                                            }
                                        }
                                        
$max        0;
                                        
$max_alerts 0;
                                        foreach(
$stats_alerts as $alert) {
                                            
$alerts[$alert['d_date']] = $alert['num'];
                                            if( 
$alert['num'] > $max ) {
                                                
$max_alerts $alert['num'];
                                            }
                                        }
                                        
$max_subs 0;
                                        foreach(
$stats_subscribers as $subscriber) {
                                            
$subscribers[$subscriber['d_date']] = $subscriber['num'];
                                            if( 
$subscriber['num'] > $max_subs ) {
                                                
$max_subs $subscriber['num'];
                                            }
                                        }


                                        
$this->_exportVariableToView("reports"$reports);
                                        
$this->_exportVariableToView("items"$items);
                                        
$this->_exportVariableToView("latest_items"Stats::newInstance()->latest_items());
                                        
$this->_exportVariableToView("max"$max);
                                        
$this->_exportVariableToView("max_views"$max_views);

                                        
$this->_exportVariableToView("subscribers"$subscribers);
                                        
$this->_exportVariableToView("alerts"$alerts);
                                        
$this->_exportVariableToView("max_alerts"$max_alerts);
                                        
$this->_exportVariableToView("max_subs"$max_subs);

                                        
$this->doView("stats/items.php");
                break;
                case(
'users'):          // manage stats view
                                        
$users = array();
                                        if( 
Params::getParam('type_stat') == 'week' ) {
                                            
$stats_users Stats::newInstance()->new_users_count(date'Y-m-d H:i:s',  mktime(000date("m"), date("d") - 70date("Y")) ),'week');
                                            for(
$k 10$k >= 0$k--) {
                                                
$users[date('W'mktime(0,0,0date("m"), date("d"), date("Y")))-$k] = 0;
                                            }
                                        } else if( 
Params::getParam('type_stat') == 'month' ) {
                                            
$stats_users Stats::newInstance()->new_users_count(date'Y-m-d H:i:s',  mktime(000date("m") - 10date("d"), date("Y")) ),'month');
                                            for(
$k 10$k >= 0$k--) {
                                                
$users[date('F'mktime(0,0,0date("m")-$kdate("d"), date("Y")))] = 0;
                                            }
                                        } else {
                                            
$stats_users Stats::newInstance()->new_users_count(date'Y-m-d H:i:s',  mktime(000date("m"), date("d") - 10date("Y")) ),'day');
                                            for(
$k 10$k >= 0$k--) {
                                                
$users[date'Y-m-d'mktime(000date("m"), date("d") - $kdate("Y")) )] = 0;
                                            }
                                        }
                                        
$max 0;
                                        foreach(
$stats_users as $user) {
                                            
$users[$user['d_date']] = $user['num'];
                                            if(
$user['num']>$max) {
                                                
$max $user['num'];
                                            }
                                        }
                                        
$item Stats::newInstance()->items_by_user();
                                        
$this->_exportVariableToView("users_by_country"Stats::newInstance()->users_by_country());
                                        
$this->_exportVariableToView("users_by_region"Stats::newInstance()->users_by_region());
                                        
$this->_exportVariableToView("item", (!isset($item[0]['avg']) || !is_numeric($item[0]['avg'])) ? $item[0]['avg']);
                                        
$this->_exportVariableToView("latest_users"Stats::newInstance()->latest_users());
                                        
$this->_exportVariableToView("users"$users);
                                        
$this->_exportVariableToView("max"$max);
                                        
$this->doView("stats/users.php");
                break;
            }
        }

        
//hopefully generic...
        
function doView($file)
        {
            
osc_run_hook("before_admin_html");
            
osc_current_admin_theme_path($file);
            
Session::newInstance()->_clearVariables();
            
osc_run_hook("after_admin_html");
        }
    }

    
/* file end: ./oc-admin/stats.php */
?>
Онлайн: 0
Реклама