Файл: down/admin.php
Строк: 267
<?
##########################################
## Автор: -=ШАХТЕР=- # ## Сайт: http://masteram.us # ## ICQ : 46-92-90 # ## Версия 4.0 Лицензионная #
## Данная версия скрипта является ПЛАТНОЙ, #
## вы НЕ ИМЕЕТЕ ПРАВА распрострянять данный #
## скрипт или какие-либо части его кода... #
#########################################
require'../config.php';
$align='left';
$title='Архив файлов';
aut();
head();
who_add(0,'enter');
levels(5);
function retrans($t){
$a = array('_','YA','Ya','ya','yee','YO','yo','Yo','ZH','zh','Zh','Z','z','CH','ch','Ch','SH','sh','Sh','YE','ye','Ye','YU','yu','Yu','JA','ja','Ja','A','a','B','b','V','v','G','g','D','d','E','e','I','i','J','j','K','k','L','l','M','m','N','n','O','o','P','p','R','r','S','s','T','t','U','u','F','f','H','h','W','w','x','q','Y','y','C','c','!');
$b = array(' ','Я','Я','я','ые','Ё','ё','Ё','Ж','ж','Ж','З','з','Ч','ч','Ch','Ш','ш','Ш','Э','э','Э','Ю','ю','Ю','Я','я','Я','А','а','Б','б','В','в','Г','г','Д','д','Е','е','И','и','Й','й','К','к','Л','л','М','м','Н','н','О','о','П','п','Р','р','С','с','Т','т','У','у','Ф','ф','Х','х','Щ','щ','ъ','ь','Ы','ы','Ц','ц','');
return str_replace($b,$a,$t);
}
function del($text)
{
$text=str_replace('&','', $text);
$text=str_replace('$','', $text);
$text=str_replace('>','', $text);
$text=str_replace('<','', $text);
$text=str_replace('~','', $text);
$text=str_replace('`','', $text);
$text=str_replace('#','', $text);
$text=str_replace('*','', $text);
return $text;
}
$fid = check(intval($_GET['fid']));
switch($mod){
default:
//echo '<a href="?fid='.$fid.'&mod=newdir">Новая папка</a><br />';
break;
case 'addcat':
levels(8);
if (empty($act)){
if ($ver!='wml')echo '<form action="?act=act&'.SID.'" method="post">';
echo 'Имя новой папки:<br/>';
echo '<input type="text" name="name" maxlength="50" title="Форум"/><br/><input name="tr" type="checkbox" value="1" checked="checked">Перевод (если имеются русские буквы - ВКЛЮЧИТЬ ОБЯЗАТЕЛЬНО!)<br>';
$k = $db->sql_fetchrow($db->sql_query("SELECT count(*) FROM `dow_cat`;"));
echo 'Положение:<br/>';
echo '<input type="text" name="pos" value="'.($k['count(*)']+1).'" maxlength="50" title="Положение"/><br/>';
if ($ver=='wml'){
echo '<br /><anchor title="go">Добавить<go href="?act=add&'.SID.'" method="post">';
echo '<postfield name="name" value="$name"/>
<postfield name="pos" value="$pos"/>
</go></anchor>';
echo '<br/><br />';
}else{
echo '<br /><input type="submit" class="ibutton" value="Добавить"/></form><br /><br />';
}
}else{
$dirnew = check(del($_POST['name']));
$name = $dirnew;
$pos = check(intval($_POST['pos']));
if($_POST['tr'] == 1){
$dirnew = retrans($dirnew);
}
if (strlen2($name)<2)$err = 'Короткое имя папки!';
if (empty($pos)||strlen2($pos)<=0)$err = 'Положение указанно неверно!';
if (empty($err)){
$path = $set['path'].'/';
chmod($path,0777);
$dirnew = trim($path).trim($dirnew).'/';
if(mkdir($dirnew, 0777) AND $query = $db->sql_query("INSERT INTO `dow_cat` (`path`, `name`, `infolder`, `time`, `pos`) VALUES ('".$dirnew."', '$name', '".$path."', '$time', '$pos');")){
chmod($dirnew, 0777);
header ('Location: ./?'.SID); exit;
}else echo 'Ошибка при создании нового каталога.';
}else echo $err;
}
break;
case 'editcat':
levels(8);
if (empty($act)){
$cat = @$db->sql_fetchrow($db->sql_query("select * from `dow_cat` where id = '".$fid."'" ));
if ($ver!='wml')echo '<form action="?act=act&'.SID.'" method="post">';
echo 'Имя папки:<br/>';
echo '<input type="text" name="name" value="'.$cat['name'].'" maxlength="50" title="Имя"/><br>';
echo 'Положение:<br/>';
echo '<input type="text" name="pos" value="'.$cat['pos'].'" maxlength="50" title="Положение"/><br/>';
if ($ver=='wml'){
echo '<br /><anchor title="go">Изменить<go href="?act=add&'.SID.'" method="post">';
echo '<postfield name="name" value="$name"/>
<postfield name="pos" value="$pos"/>
</go></anchor>';
echo '<br/><br />';
}else{
echo '<br /><input type="submit" class="ibutton" value="Изменить"/></form><br />';
}
echo '<br /><a href="admin_delcat_'.$fid.'">Удалить папку</a><br />';
}else{
$dirnew = check(del($_POST['name']));
$name = $dirnew;
$pos = check(intval($_POST['pos']));
$dirnew = retrans($dirnew);
if (strlen2($name)<2)$err = 'Короткое имя папки!';
if (empty($pos)||strlen2($pos)<=0)$err = 'Положение указанно неверно!';
if (empty($err)){
if ($db->sql_query ("UPDATE `dow_cat` SET `name` = '$name', `pos` = '$pos' where `id`='".$fid."' LIMIT 1")){
header ('Location: ./?'.SID); exit;
}else echo 'Ошибка при создании нового каталога.';
}else echo $err;
}
break;
case 'delcat':
if(!$_GET['level']){
echo 'Будут удалены все файлы в каталоге,а также сам каталог. Продолжить?<br><a href="?level=1">Да, продолжить</a>';
}
else{
$file = mysql_fetch_assoc($db->sql_query('SELECT * FROM `dow_cat` WHERE `id` = '.$fid.' ORDER BY `name`;'));
if(!is_dir ($file['path'])) die('Такой категории не существует!');
$ex = explode('/',$file['path']);
$f_chmod = null;
foreach($ex as $chmod){
$f_chmod.=$chmod.'/';
chmod($f_chmod,0777);
}
$array = glob($file['path'].'*');
foreach($array as $vv){
if(is_dir($vv)) die('Разрешено удалять только папки с 1 уровнем вложенности!');
else{
if(!unlink($vv)) die('Ошибка при удалении файла '.$vv);
}
}
$query = $db->sql_query("DELETE FROM `dow_files` WHERE `infolder` = '".$file['path']."'") or die('Ошибка при удалении файлов из базы');
if(!rmdir($file['path'])) die('Ошибка при удалении каталога');
$query = $db->sql_query('DELETE FROM `dow_cat` WHERE `id` = '.$fid) or die('Ошибка при удалении каталога из базы');
$f_chmod = null;
foreach($ex as $chmod){
$f_chmod.=$chmod.'/';
if($f_chmod!=$set['path'].'/'){
chmod($f_chmod.'/',0777);
}
}
echo 'Каталог успешно удален!';
}
break;
//////////////////////////
case 'editcat2':
levels(8);
if (empty($act)){
$cat = @$db->sql_fetchrow($db->sql_query("select * from `dow_cat2` where id = '".$fid."'" ));
if ($ver!='wml')echo '<form action="?act=act&'.SID.'" method="post">';
echo 'Имя папки:<br/>';
echo '<input type="text" name="name" value="'.$cat['name'].'" maxlength="50" title="Имя"/><br>';
echo 'Положение:<br/>';
echo '<input type="text" name="pos" value="'.$cat['pos'].'" maxlength="50" title="Положение"/><br/>';
if ($ver=='wml'){
echo '<br /><anchor title="go">Изменить<go href="?act=add&'.SID.'" method="post">';
echo '<postfield name="name" value="$name"/>
<postfield name="pos" value="$pos"/>
</go></anchor>';
echo '<br/><br />';
}else{
echo '<br /><input type="submit" class="ibutton" value="Изменить"/></form><br />';
}
echo '<br />[<a href="admin_flashcat2_'.$fid.'">Обновить папку</a>';
echo '<b>|</b><a href="admin_delcat2_'.$fid.'">Удалить папку</a>]<br />';
}else{
$dirnew = check(del($_POST['name']));
$name = $dirnew;
$pos = check(intval($_POST['pos']));
$dirnew = retrans($dirnew);
if (strlen2($name)<2)$err = 'Короткое имя папки!';
if (empty($pos)||strlen2($pos)<=0)$err = 'Положение указанно неверно!';
if (empty($err)){
if ($db->sql_query ("UPDATE `dow_cat2` SET `name` = '$name', `pos` = '$pos' where `id`='".$fid."' LIMIT 1")){
header ('Location: ./'.$fid.'?'.SID); exit;
}else echo 'Ошибка при создании нового каталога.';
}else echo $err;
}
break;
######################################ЛОГ######################################################
case 'flashcat2':
$file_info = mysql_fetch_assoc($db->sql_query('SELECT * FROM `dow_cat2` WHERE `id` = '.$fid.' ORDER BY `name`;'));
if(!is_dir ($file_info['path'])) die('Такой категории не существует!');
function scaner ($paths)
{
$paths = $paths.'/*';
$array = glob($paths);
static $file_aray;
foreach($array as $vv)
{
if(is_dir($vv)){
$file_aray[] = $vv.'/';
scaner($vv);
}
else{
if(basename($vv)=='folder.png') continue;
$file_aray[] = $vv;
}
}
return $file_aray;
}
$file_array = scaner(substr($file_info['path'],0,strlen($file_info['path'])-1));
$addfolder = $addfiles = 0;
$reses = $db->sql_query('SELECT `id`,`path` FROM `dow_files`;');
while($array = mysql_fetch_assoc($reses)){
$array_path[$array['id']] = $array['path'];
}
foreach($file_array as $value){
if(@in_array($value,$array_path)===false)
{
$upltime = filectime($value);
$name = basename($value);
$pathinfo = pathinfo($value);
$ext = $pathinfo['extension'];
$name = str_replace('.'.$ext,'',$name);
$infolder = dirname($value).'/';
$size = filesize($value);
/*if(strpos($name , '!') !== false){
$name = translit($name);
}
else{
$name = translit($name);
}*/
if(is_dir($value)){
$addfolder++;
}
else{
$value = del(check(retrans($value)));
$query = $db->sql_query("INSERT INTO `dow_files` (`user_id`,`path`, `name`, `infolder`, `size` , `timeupload`) VALUES ('1','$value', '$name', '$infolder' , '$size' , '$time');");
$addfiles++;
}
}
}
echo '<div class="mainzag">База данных успешно обновлена!</div><div class="row">Добавлено папок: '.$addfolder.' <br>Добавлено файлов: '.$addfiles.'</div>';
break;
case 'rename':
if(!($_POST[papka]))
{
echo("<b><br>Массовая переименовка файлов</b><p>");
echo('<form action="?" method="post">
Папка с файлами :<br>(например files/kartinki/test)<br><input type=text name=papka value=files/><p>
Ваш сайт :<br><input type=text name=url maxlength=20 size=21><p>
Префикс (img_) :<br><input type=text name=pered maxlength=20 size=21 value=Text_><p>
<input type=submit value=Принять!/></form><br>
<br><b><a href="apanel.php"><<<Назад</a><br/></b>');
}
else
{
$dir=$_POST[papka];
if(!($panika=@opendir($dir)))
die('нет такой папки<br><b><a href="rename.php"><<<Назад</a><br/></b>');
function my_rename($dirname)
{
$s=strlen($_POST[url]);
$s=$s+5;
$kol=strlen($_POST[pered]);
$nomer=$s+$kol;
$ext_arr = array('jpeg', 'jpg', 'gif', 'txt', 'gif');
$dir = opendir($dirname);
$count = 1;
while (($file = readdir($dir)) !== false) {
$bexa=strlen($count);
$bumer=$nomer+$bexa-4;
if (is_file($dirname . '/' . $file)) {
$info = pathinfo($dirname . '/' . $file);
if (in_array(strtolower($info['extension']), $ext_arr)) {
rename($dirname . '/' . $file, $dirname . '/' . str_pad($count, $bumer , "$_POST[url]_$_POST[pered]_", STR_PAD_LEFT) . '.' . strtolower($info['extension']));
$count ++ ;
}
} elseif (is_dir($dirname . '/' . $file) && $file != '.' && $file != '..')my_rename($dirname . '/' . $file);
}
closedir($dir);
}
if($_POST[papka])
{
$dir="$_POST[papka]";
my_rename("$dir");
print("Перейменовка закончена");
}}
break;
case 'delcat2':
if(!$_GET['level']){
echo 'Будут удалены все файлы в каталоге,а также сам каталог. Продолжить?<br><a href="?level=1">Да, продолжить</a>';
}
else{
$file = mysql_fetch_assoc($db->sql_query('SELECT * FROM `dow_cat2` WHERE `id` = '.$fid.' ORDER BY `name`;'));
if(!is_dir ($file['path'])) die('Такой категории не существует!');
$ex = explode('/',$file['path']);
$f_chmod = null;
foreach($ex as $chmod){
$f_chmod.=$chmod.'/';
chmod($f_chmod,0777);
}
$array = glob($file['path'].'*');
foreach($array as $vv){
if(is_dir($vv)) die('Разрешено удалять только папки с 1 уровнем вложенности!');
else{
if(!unlink($vv)) die('Ошибка при удалении файла '.$vv);
}
}
$query = $db->sql_query("DELETE FROM `dow_files` WHERE `infolder` = '".$file['path']."'") or die('Ошибка при удалении файлов из базы');
if(!rmdir($file['path'])) die('Ошибка при удалении каталога');
$query = $db->sql_query('DELETE FROM `dow_cat2` WHERE `id` = '.$fid) or die('Ошибка при удалении каталога из базы');
$f_chmod = null;
foreach($ex as $chmod){
$f_chmod.=$chmod.'/';
if($f_chmod!=$set['path'].'/'){
chmod($f_chmod.'/',0777);
}
}
echo 'Каталог успешно удален!';
}
break;
//////////////////////////
case addcat2:
levels(8);
$cat = @$db->sql_fetchrow($db->sql_query("select * from `dow_cat` where id = '".$fid."'" ));
if (empty($act)){
if ($ver!='wml')echo '<form action="?act=act&'.SID.'" method="post">';
echo 'Имя новой папки:<br/>';
echo '<input type="text" name="name" maxlength="50" title="Форум"/><br/><input name="tr" type="checkbox" value="1" checked="checked">Перевод (если имеются русские буквы - ВКЛЮЧИТЬ ОБЯЗАТЕЛЬНО!)<br>';
$k = $db->sql_fetchrow($db->sql_query("SELECT count(*) FROM `dow_cat2` WHERE `fid`='".$fid."';"));
echo 'Положение:<br/>';
echo '<input type="text" name="pos" value="'.($k['count(*)']+1).'" maxlength="50" title="Положение"/><br/>';
echo 'levil доступа к папке:</br>';
echo '<input type="text" name="levil" value="0" maxlength="20" title="Левил доступа к папке"/><br/>';
if ($ver=='wml'){
echo '<br /><anchor title="go">Добавить<go href="?act=add&'.SID.'" method="post">';
echo '<postfield name="name" value="$name"/>
<postfield name="pos" value="$pos"/>
</go></anchor>';
echo '<br/><br />';
}else{
echo '<br /><input type="submit" class="ibutton" value="Добавить"/></form><br /><br />';
}
}else{
$dirnew = check(del($_POST['name']));
$name = $dirnew;
$pos = check(intval($_POST['pos']));
$level= check($_POST['levil']);
if($_POST['tr'] == 1){
$dirnew = retrans($dirnew);
}
if (strlen2($name)<2)$err = 'Короткое имя папки!';
if (empty($pos)||strlen2($pos)<=0)$err = 'Положение указанно неверно!';
if (empty($err)){
$path = $cat['path'].'';
chmod($path,0777);
$dirnew = trim($path).trim($dirnew).'/';
if(mkdir($dirnew, 0777) AND $query = $db->sql_query("INSERT INTO `dow_cat2` (`fid`,`path`, `name`, `infolder`, `time`, `pos`,`level`) VALUES ('$fid', '".$dirnew."', '$name', '".$path."', '$time', '$pos','$level');")){
chmod($dirnew, 0777);
header ('Location: ./'.$fid.'?'.SID); exit;
}else echo 'Ошибка при создании нового каталога.';
}else echo $err;
}
break;
}
echo "<br/>";
echo gb.'<a href="/down">Архив файлов</a>'.div;
echo gb.'<a href="/enter">Прихожая</a>'.div;
foot();
?>