View file adm_panel/loads_recount.php

File size: 3.88Kb
<?
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();
define('DCMS_LF', realpath(H.'sys/loads/files/')); // путь до папки с загрузками
if (isset($_POST['go']) && isset($_POST['path']))
{
$deleted=0; // количество удаленных файлов

if (isset($_POST['clear']) && $_POST['clear'])
{
mysql_query("DELETE FROM `loads_list` WHERE `path` LIKE '".my_esc(urldecode($_POST['path']))."%'");
$deleted=mysql_affected_rows();
}
else
{
$q=mysql_query("SELECT * FROM `loads_list`");
while ($list=mysql_fetch_assoc($q))
{
if (!loads_continue($list['name']) && file_exists(DCMS_LF.'/'.convert_of_utf8($list['path'].$list['name'])))continue;
mysql_query("DELETE FROM `loads_komm` WHERE `file` = '".my_esc($list['name'])."' AND `size` = '$list[size]' LIMIT 1");
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;
$dir=realpath($dir);
time_limit(20);// по 20 секунд на папку
//echo "Папка: ".convert_to_utf8($dir)."<br />\n";
$opendir=opendir($dir);
while ($readdir=readdir($opendir)) {
if (loads_continue($readdir))continue;
if (is_dir($dir.'/'.$readdir))recount_loads($dir.'/'.$readdir);
else
{
$to_base['path']=convert_to_utf8(loads_sym_path(str_replace(DCMS_LF,null,$dir))).'/';
$to_base['name']=convert_to_utf8($readdir);
//echo $to_base['path'].$to_base['name']."<br />\n";
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `loads_list` WHERE `name` = '".my_esc($to_base['name'])."' AND `path` = '".my_esc($to_base['path'])."' LIMIT 1"),0)==0)
{
$to_base['size']=filesize($dir.'/'.$readdir);
$to_base['time']=filectime($dir.'/'.$readdir);
mysql_query("INSERT INTO `loads_list` (`name`, `size`,  `path`, `time`) values('".my_esc($to_base['name'])."', '$to_base[size]', '".my_esc($to_base['path'])."', '$to_base[time]')");
$added++;
}
}

}
closedir($opendir);
loads_clear_cache($dir);
}
$added=0; // Добавлено

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



$smarty = new Smarty_conf();
$smarty->assign('form_title','Пересчет файлов');
$smarty->assign('method','POST');
$smarty->assign('action',"?gen=$passgen");
$elements=array();
$options=array();
$dirs=dirs_for_options();
for ($i=0;$i<count($dirs);$i++){$options[]=array($dirs[$i][0],$dirs[$i][1]);}

$elements[]=array('type'=>'select', 'title'=>'Директория', 'br'=>1, 'info'=>array('name' => 'path','options' => $options));
$elements[]=array('type'=>'checkbox', 'br'=>1, 'info'=>array('value'=>1,'checked'=>0, 'name'=>'clear', 'text'=>'Зачистить базу'));
$elements[]=array('type'=>'submit', 'br'=>0, 'info'=>array('name'=>'go', 'value'=>'Начать')); // кнопка
$smarty->assign('el',$elements);
$smarty->display('input.form.tpl');


$smarty = new Smarty_conf();
$smarty->assign('menu_title','Навигация');
$menu=array();
if (user_access('adm_set_loads'))$menu[]=array('settings_loads.php','Настройки загрузок');
$menu[]=array('.','Админка');
$smarty->assign('menu',$menu);
$smarty->display('links.path.tpl');



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