Вход Регистрация
Файл: panel/loads_recount.php
Строк: 113
<?php

foreach (array('start', 'compress', 'sess', 'settings', 'db_connect', 'ipua', 'fnc', 'adm_check', 'loads', 'user') as $inc) {
    require_once 
"../sys/inc/$inc.php";
}

access('adm_set_loads', null, 'index.php?' . SID);
adm_check();

$set['title'] = 'Пересчет файлов в з-ц';
include_once 
'../sys/inc/thead.php';

if (isset(
$_POST['goc'])) {
    
mysql_query("TRUNCATE TABLE `loads_list`");
    
mysql_query("TRUNCATE TABLE `loads_rating`");
    
msg("База успешно очищена");
}

if (isset(
$_POST['go']) && isset($_POST['path'])) {
    if (
function_exists('set_time_limit'))
        @
set_time_limit(600); // Ставим ограничение на 10 минут
    
$deleted = 0; // количество удаленных файлов

    
if (isset($_POST['clear']) && $_POST['clear'] == 1) {
        
$path = urldecode($_POST['path']);
        
$path = str_replace('../sys/loads/files', null, $path);
        
$path = (function_exists('iconv')) ? iconv('windows-1251', 'utf-8', $path) : $path;
        
$path = '/' . preg_replace('#^/+|/+$#i', null, $path) . '/';
        
mysql_query("DELETE FROM `loads_list` WHERE `path` LIKE '" . mysql_real_escape_string($path) . "%'");
    } else {
        
$q = mysql_query("SELECT * FROM `loads_list`");
        while (
$list = mysql_fetch_array($q)) {
            
$file = (function_exists('iconv')) ? iconv('utf-8', 'windows-1251', $list['path'] . $list['name']) : $list['path'] . $list['name'];
            if (!
file_exists('../sys/loads/files' . $file)) {
                
mysql_query("DELETE FROM `loads_list` WHERE `path` = '" . mysql_real_escape_string($list['path']) . "' AND `name` = '" . mysql_real_escape_string($list['name']) . "' LIMIT 1");
                
$deleted++;
            }
        }
    }

    function 
recount_loads($dir) {
        global 
$added;
        global 
$dirr;
        
$opendir = opendir($dir);
        while (
$readdir = readdir($opendir)) {
            if (!
preg_match("#^.|.99.99.name|.name$|.txt$|.opis$|.db$|.dat$|.99.99.jad$#i", $readdir) && !preg_match("#.1.JPG$|.1.PNG$|.1.GIF$|.2.JPG$|.2.PNG$|.2.GIF$|.3.JPG$|.3.PNG$|.3.GIF$#", $readdir)) {
                if (
is_dir($dir . '/' . $readdir))
                    
recount_loads($dir . '/' . $readdir);
                elseif (
is_file($dir . '/' . $readdir)) {
                    
$path = str_replace('../sys/loads/files', null, $dir);
                    
$path = (function_exists('iconv')) ? iconv('windows-1251', 'utf-8', $path) : $path;
                    
$path = '/' . preg_replace('#^/+|/+$#i', null, $path) . '/';
                    
$name = (function_exists('iconv')) ? iconv('windows-1251', 'utf-8', $readdir) : $readdir;
                    
$size = filesize($dir . '/' . $readdir);
                    
$file_time = filectime($dir . '/' . $readdir);

                    if (
mysql_result(mysql_query("SELECT COUNT(*) FROM `loads_list` WHERE `name` = '" . mysql_real_escape_string($name) . "' AND `path` = '" . mysql_real_escape_string($path) . "' LIMIT 1"), 0) == 0) {
                        
mysql_query("INSERT INTO `loads_list` (`name`, `size`,  `path`, `time`) values('" . mysql_real_escape_string($name) . "', '$size', '" . mysql_real_escape_string($path) . "', '$file_time')");
                        
$added++;
                    }
                    if (@
mkdir('../sys/loads/files_dop' . $path . '' . $name, 0777)) {
                        
$dirr++;
                    }
                }
            }
        }
        
closedir($opendir);
    }

    
$added = 0;
    
$dirr = 0; // Добавлено


    
recount_loads(urldecode($_POST['path']));
    
admin_log('Загрузки', 'Пересчет файлов', "Удалено $deleted / Добавлено $added записей");
    
msg("Удалено $deleted / Добавлено $added записей / Созданно $dirr папок для дополнительных файлов");
}
err();
aut();

#Навигация
echo "<div class='list-group-item-null list-group-item-grey'><small>";
echo 
"<a href='/' class='hint--right' data-hint='" . lang('На главную') . "'><i class='fa fa-home fa-lg'></i></a> <i class='fa fa-angle-right fa-fw'></i> ";
echo 
"<a href='/panel/'>" . lang('Панель управления') . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
echo 
lang('Пересчет файлов');
echo 
"</small></div><br />";

echo 
"<form method='post' class='list-group-item-null' action='?gen=$passgen'>n";
echo 
"Директория:*<br />n";
echo 
"<select class="form-control" name="path">";
echo 
"<option value='..%2Fsys%2Floads%2Ffiles'>Корневая папка</option>n";
dirrs('../sys/loads/files', '../sys/loads/files');
echo 
"</select><br />n";
$doc->Button('btn btn-primary btn-sm', 'go', '', 'Пересчитать');
echo 
"</form>n";

echo 
"<form method='post' class='list-group-item-null' action='?gen=$passgen'>n";
$doc->Button('btn btn-primary btn-sm', 'goc', 'trash', 'Очистить таблицу**');
echo 
"</form>n";

echo 
"<div class='list-group-item-null list-group-item-info'>";
echo 
"* Частый пересчет большого количества файлов может сильно загрузить сервер, поэтому по возможности старайтесь указывать конкретную папку.<br />n";
echo 
"** Данная функция дает возможность полностью удалять файлы с таблицы з-ц. Если вы считаете что счетчик з-ц считает не верно, то перед пересчетом используйте эту функцию..<br />n";
echo 
"</div>";

include_once 
'../sys/inc/tfoot.php';
?>
Онлайн: 2
Реклама