<?

if (user_access('lib_stat_zip') && isset($_GET['act']) && $_GET['act']=='upload_zip' && isset($_GET['ok']) && isset($_FILES['file']) && @preg_match('#\.zip$#i',$_FILES['file']['name']))

{

$k_new_dir=0;

$k_new_st=0;

if (function_exists('set_time_limit'))@set_time_limit(600);

include_once H.'/sys/inc/zip.php';

$zip = new PclZip($_FILES['file']['tmp_name']);

$list = $zip->listContent(); // содержание архива







$dirs=null;

for ($i=0; $i<sizeof($list); $i++)

{

if ($list[$i]['folder']==1)

{

$dirs[]=(function_exists('iconv'))?@iconv('cp866', 'utf-8', $list[$i]['filename']):$list[$i]['filename'];

}

elseif (preg_match('#\.txt$#i',$list[$i]['filename']))

{

$files_id[]=$list[$i]['index'];

$files[]=(function_exists('iconv'))?@iconv('cp866', 'utf-8', $list[$i]['filename']):$list[$i]['filename'];

}

}





for ($i=0;$i<sizeof($dirs);$i++)

{

$dir=preg_replace('#/+#','/','/'.$dirs[$i].'/');

$dir_arr=explode('/', $dir);

$path_osn=$l.'/';

for ($id=1;$id<count($dir_arr)-1;$id++)

{

$dirname=preg_replace('#[^A-zА-я0-9\(\)\-\_\ \.\?]#ui', null, $dir_arr[$id]);

$path_dir=$path_osn.tr_loads(retranslit($dir_arr[$id])).'/';



if (mysql_result(mysql_query("SELECT COUNT(*) FROM `lib_dir` WHERE `dir` = '$path_dir' AND `dir_osn` = '$path_osn'"),0)==0)

{

mysql_query("INSERT INTO `lib_dir` (`name` , `dir` , `dir_osn` ) VALUES ('$dirname',  '$path_dir', '$path_osn')");

$k_new_dir++;

}



$path_osn=$path_dir;

}



}







for ($i=0;$i<sizeof($files);$i++)

{

$file=preg_replace("#.*/#",NULL,urldecode($files[$i])); // получение имени файла

$name=preg_replace('#\.[^\.]*$#i', NULL, $file); // имя файла без расширения



$dir=preg_replace('#/+#','/','/'.$files[$i]);

$dir_arr=explode('/', $dir);



$path_dir=$l.'/';

for ($id=1;$id<count($dir_arr)-1;$id++)

{

$path_dir=$path_dir.tr_loads(retranslit($dir_arr[$id])).'/';

}







if (mysql_result(mysql_query("SELECT COUNT(*) FROM `lib_dir` WHERE `dir` = '$path_dir' LIMIT 1"),0)!=0)

{

$dir_id2=mysql_fetch_assoc(mysql_query("SELECT * FROM `lib_dir` WHERE `dir` = '$path_dir' LIMIT 1"));



$list = $zip->extract(PCLZIP_OPT_BY_INDEX, $files_id[$i],PCLZIP_OPT_EXTRACT_AS_STRING);



$text=$list[0]['content'];

if (function_exists('iconv') && isset($_POST['charset']))

$text=@iconv($_POST['charset'], 'utf-8', $text);





if (isset($_POST['name_of']) && $_POST['name_of']=='string')

{

$name_1=split("(\n|\r)+", $text);

if ($name_1[0]!=NULL)$name=$name_1[0];

elseif($name_1[1]!=NULL)$name=$name_1[1];

}

$name=preg_replace('#[^A-zА-я0-9\(\)\-\_\ ]#ui', null, $name);





mysql_query("INSERT INTO `lib_files` (`id_dir`, `name`, `time`, `time_last`, `id_user`)

VALUES ('$dir_id2[id]', '$name', '$time', '$time', '$user[id]')");

$stat_id=mysql_insert_id();

if (!@file_put_contents(H."sys/lib/stats/$stat_id.txt.gz", gzencode($text,9)))

{

mysql_query("DELETE FROM `lib_files` WHERE `id` = '$stat_id'");

$err[]='Невозможно сохранить статью';

}

else

{

$k_new_st++;

}



}

}





admin_log('Библиотека','Создание статей',"Выгружен ZIP-архив $k_new_dir папок, $k_new_st статей");



if ($k_new_dir!=0)msg("Успешно создано $k_new_dir папок");

if ($k_new_st!=0)msg("Успешно выгружено $k_new_st статей");

}











if (user_access('lib_stat_txt') && isset($_GET['act']) && $_GET['act']=='upload_txt' && isset($_GET['ok']) && isset($_FILES['file']))

{

$file=preg_replace('#[^A-zА-я0-9\(\)\-\_\ \.]#ui', null, $_FILES['file']['name']);



$name=preg_replace('#\.[^\.]*$#i', NULL, $file); // имя файла без расширения

$ras=strtolower(preg_replace('#^.*\.#i', NULL, $file));





$text=file_get_contents($_FILES['file']['tmp_name']);





if (function_exists('iconv') && isset($_POST['charset']))$text=@iconv($_POST['charset'], 'utf-8', $text);







if ($name==NULL)$err='Название файла пусто или состоит из запрещенных символов';

elseif (!preg_match('#^txt$#i',$ras))$err='Неверный формат файла';

elseif (mysql_result(mysql_query("SELECT COUNT(*) FROM `lib_files` WHERE `id_dir` = '$id_dir' AND `name` = '$name'"), 0)!=0)$err='Статья с таким названием уже есть в этой папке';

elseif ($text==NULL)$err='Текст статьи пуст';

else

{



mysql_query("INSERT INTO `lib_files` (`id_dir`, `name`, `time`, `time_last`, `id_user`)

VALUES ('$dir_id[id]', '$name', '$time', '$time', '$user[id]')");

$stat_id=mysql_insert_id();

if (!@file_put_contents(H."sys/lib/stats/$stat_id.txt.gz", gzencode($text,9)))

{

mysql_query("DELETE FROM `lib_files` WHERE `id` = '$stat_id'");

$err='Нет прав на запись (sys/lib/stats/)';



}

else

{

admin_log('Библиотека','Создание статей',"Добавление статьи (txt) '$name'");

msg('Статья успешно добавлена');

}





}







}











if (user_access('lib_stat_create') && isset($_GET['act']) && $_GET['act']=='create_stat' && isset($_GET['ok']) && isset($_POST['name']) && isset($_POST['text']))

{

$name=preg_replace('#[^A-zА-я0-9\(\)\-\_\ ]#ui', null, $_POST['name']);



$text=trim($_POST['text']);









if ($name==NULL)$err[]='Введите название статьи';

elseif (mysql_result(mysql_query("SELECT COUNT(*) FROM `lib_files` WHERE `id_dir` = '$id_dir' AND `name` = '$name'"), 0)!=0)$err[]='Статья с таким названием уже есть в этой папке';

elseif ($text==NULL)$err[]='Текст статьи пуст';

else

{



mysql_query("INSERT INTO `lib_files` (`id_dir`, `name`, `time`, `time_last`, `id_user`)

VALUES ('$dir_id[id]', '$name', '$time', '$time', '$user[id]')");

$stat_id=mysql_insert_id();

if (!@file_put_contents(H."sys/lib/stats/$stat_id.txt.gz", gzencode($text,9)))

{

mysql_query("DELETE FROM `lib_files` WHERE `id` = '$stat_id'");

$err[]='Нет прав на запись (sys/lib/stats/)';



}

else 

{

admin_log('Библиотека','Создание статей',"Добавление статьи (создание) '$name'");

msg('Статья успешно добавлена');

}



}

}







?>