<?

include_once '../sys/inc/start.php';

include_once '../sys/inc/compress.php';

include_once '../sys/inc/sess.php';

include_once '../sys/inc/home.php';

include_once '../sys/inc/settings.php';

include_once '../sys/inc/db_connect.php';

include_once '../sys/inc/ipua.php';

include_once '../sys/inc/fnc.php';

include_once '../sys/inc/loads.php';

include_once '../sys/inc/adm_check.php';

include_once '../sys/inc/user.php';

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

adm_check();



$set['title']='Пересчет файлов в з-ц';

include_once '../sys/inc/thead.php';

title();



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(H.'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 '".my_esc($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(H.'sys/loads/files'.$file))

{

mysql_query("DELETE FROM `loads_list` WHERE `path` = '".my_esc($list['path'])."' AND `name` = '".my_esc($list['name'])."' LIMIT 1");

$deleted++;

}

}

}





function recount_loads($dir)

{

global $added;

$opendir=opendir($dir);

while ($readdir=readdir($opendir)) {

if (!preg_match("#^\.|\.php|\.name$|\.txt$|\.opis$|\.html?$|\.sql$|\.ini$|\.db$|\.dat$|\.jad$#i",$readdir) && !preg_match("#\.JPG$|\.PNG$|\.GIF$#",$readdir))

{

if (is_dir($dir.'/'.$readdir))

recount_loads($dir.'/'.$readdir);

elseif (is_file($dir.'/'.$readdir))

{

$path=str_replace(H.'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` = '".my_esc($name)."' AND `path` = '".my_esc($path)."' LIMIT 1"),0)==0)

{

mysql_query("INSERT INTO `loads_list` (`name`, `size`,  `path`, `time`) values('".my_esc($name)."', '$size', '".my_esc($path)."', '$file_time')");



$added++;

}

}

}

}

closedir($opendir);

}

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





recount_loads(urldecode($_POST['path']));

admin_log('Загрузки','Пересчет файлов',"Удалено $deleted / Добавлено $added записей");

msg("Удалено $deleted / Добавлено $added записей");

}

err();

aut();





echo "<form method='post' action='?gen=$passgen'>\n";

echo "Директория:<br />\n";

echo "<select class=\"submit\" name=\"path\">";

echo "<option value='..%2Fsys%2Floads%2Ffiles'>Корневая папка</option>\n";

dirrs('../sys/loads/files','../sys/loads/files');

echo "</select><br />\n";

echo "<label><input type='checkbox' name='clear' value='1' /> Зачистить перед пересчетом</label><br />\n";

echo "<input type='submit' name='go' value='Начать' />";

echo "</form>\n";



echo "* Частый пересчет большого количества файлов может сильно загрузить сервер, поэтому по возможности старайтесь указывать конкретную папку.<br />\n";



if (user_access('adm_set_loads') || user_access('adm_panel_show')){

echo "<div class='foot'>\n";

if (user_access('adm_set_loads'))

echo "&laquo;<a href='settings_loads.php'>Настройки загрузок</a><br />\n";

if (user_access('adm_panel_show'))

echo "&laquo;<a href='/adm_panel/'>В админку</a><br />\n";

echo "</div>\n";

}

include_once '../sys/inc/tfoot.php';

?>