Вход Регистрация
Файл: core/modules/stat.php
Строк: 101
<?php

if (!defined('BLOG')) { die('Access Denied!'); }

if (
$config['open_stat'] == && !$is_admin) {

    
addMessage('Статистика закрыта администратором!');
    
gen_red('index');
}

show_header('Статистика блога ' $config['site_name']);

$_TIME time();

# Определение веса папки
function dir_size($dir) {

    
$totalsize 0;

    if (
$dirstream = @opendir($dir)) {

        while (
false !== ($filename readdir($dirstream))) {

            if (
$filename != '.' && $filename != '..') {

                if (
is_file($dir '/' $filename)) $totalsize += @filesize($dir '/' $filename);

                if (
is_dir($dir '/' $filename)) $totalsize += dir_size($dir '/' $filename);
            }
        }
    }

    
closedir($dirstream);
    return 
$totalsize;
}

# Функция подсчета файлов в папке
function count_dir($dir$new 7) {

    
$count    0;
    
$newcount 0;
    
$bad_file = array('.''..''.htaccess''index.php');
    
$sitetime time();

    if ( 
$path opendir($dir) ) {

        while( 
$file readdir($path) ) {

            if (!
in_array($file,$bad_file )) {

                
$count++;
                
$filetime filemtime($dir '/' $file) + (3600 24 $new);

                if (
$filetime $sitetime) {

                    
$newcount ++;
                }
            }
        }
        
closedir($path);

        return array(
$count$newcount);
    }
}

/*
Кеширование статаистики, обновление раз в 3600 сек.
*/

$stat get_vars('stat_blog'3600);

if ( !
$stat ) {

    
$stat = array(); $stat['count_dirs'] = $stat['count_files'] = 0;

    
$tables $db->select"SHOW TABLE STATUS FROM `" $config['db_name'] . "`" );

    
$stat['mysql_size'] = 0;

    foreach( 
$tables as $table ) {

        
//if( strpos( $table['Name'], $config['db_prefix'] ) !== false ) {

            
$stat['mysql_size'] += $table['Data_length'] + $table['Index_length'];
        
//}
    
}

    
$stat['mysql_size'] = size($stat['mysql_size']);

    
$tmp_size count_dir(ROOTPATH '/files');

    
$stat['file_num']  = $tmp_size[0]; // или можно оставить подсчет файлов из базы, тогда раскомментировать ниже...

    
$stat['file_week'] = $tmp_size[1];

    
$stat['file_size'] = size(dir_size(ROOTPATH '/files/'));

    
$stat['news_num']  = (int) $db->selectCell"SELECT COUNT(*) FROM ?_data" );

    
$stat['news_allow'] = (int) $db->selectCell"SELECT COUNT(*) FROM ?_data WHERE active = '1'" );

    
//$stat['file_num'] = (int) $db->selectCell( "SELECT COUNT(*) FROM ?_list_file" );

    
$stat['comm_num'] = (int) $db->selectCell"SELECT COUNT(*) FROM ?_comments" );

    
$stat['news_moder'] = round($stat['news_num'] - $stat['news_allow']);

    
$temp_date date'Y-m-d H:i'$_TIME - (3596 24) );

    
$stat['news_day'] = (int) $db->selectCell"SELECT COUNT(*) FROM ?_data WHERE date >= ? AND date <= ? + INTERVAL 24 HOUR AND active = '1'"$temp_date$temp_date );

    
$stat['comm_day'] = (int) $db->selectCell"SELECT COUNT(*) FROM ?_comments WHERE date >= ? AND date <= ? + INTERVAL 24 HOUR"$temp_date$temp_date );

    
$temp_date date'Y-m-d H:i'$_TIME - (3600 24 7) );

    
$stat['news_week'] = (int) $db->selectCell"SELECT COUNT(*) FROM ?_data WHERE date >= ? AND date <= ? + INTERVAL 7 DAY AND active = '1'"$temp_date$temp_date );
    
    
$stat['comm_week'] = (int) $db->selectCell"SELECT COUNT(*) FROM ?_comments WHERE date >= ? AND date <= ? + INTERVAL 7 DAY"$temp_date$temp_date );
    
    
$temp_date date'Y-m-d H:i'$_TIME - (3600 24 31) );

    
$stat['news_month'] = (int) $db->selectCell"SELECT COUNT(*) FROM ?_data WHERE date >= ? AND date <= ? + INTERVAL 31 DAY AND active = '1'"$temp_date$temp_date );
    
    
$stat['comm_month'] = (int) $db->selectCell"SELECT COUNT(*) FROM ?_comments WHERE date >= ? AND date <= ? + INTERVAL 31 DAY"$temp_date$temp_date );

    
set_vars('stat_blog',$stat);

}

echo 
'<div class="downlist2">
Разделов в блоге: <b>' 
count($categories) . '</b><br />
<b>Статьи:</b><br />
Общее кол-во статей: <b>' 
$stat['news_num'] . '</b><br />
Из них опубликовано: <b>' 
$stat['news_allow'] . '</b><br />
Ожидает публикации: <b>' 
$stat['news_moder'] . '</b><br />
Опубликовано за месяц: <b>' 
$stat['news_month'] . '</b><br />
Опубликовано за неделю: <b>' 
$stat['news_week'] . '</b><br />
Опубликовано за сутки: <b>' 
$stat['news_day'] . '</b><br />
</div>
<div class="downlist2">
<b>Комментарии:</b><br />
Всего комментариев: <b>' 
$stat['comm_num'] . '</b><br />
[ <a href="/lastcomments.html">Посмотреть последние комментарии</a> ]<br />
Добавлено за месяц: <b>' 
$stat['comm_month'] . '</b><br />
Добавлено за неделю: <b>' 
$stat['comm_week'] . '</b><br />
Добавлено за сутки: <b>' 
$stat['comm_day'] . '</b><br />
</div>
<div class="downlist2">
<b>Файлы:</b><br />
Всего файлов: <b>' 
$stat['file_num'] . '</b><br /> 
Новых за неделю: <b>' 
$stat['file_week'] . '</b><br />
Общим размером: <b>' 
$stat['file_size'] . '</b><br />';

if (
$is_admin) {

    echo 
'Размер БД: <b>' $stat['mysql_size'] . '</b><br />';
    echo 
'</div><div class="downlist2">';
    echo 
'<img src="' ICONS 'return.png" alt=""/> <a href="' ADMIN_DIR '">Админ-панель</a><br />';
}
else echo 
'</div><div class="downlist2">';

echo 
'<img src="' ICONS 'home.png" alt=""/> <a href="' $config['site_url'] . '">На главную</a></div>';

?>
Онлайн: 1
Реклама