<?php
include 'system/func.php';
include 'system/ftp_connect.php';
switch(@$act){
default:
$d=dir_url('/'.boff(prov($_GET['d'])).'/');
$title='Меню папки "'.basename($d).'"';
include 'system/head.php';
title($title);
if (empty($d)){
header('Location: /ftp.php');
}else{
if (ftp_chdir($serv, $d) == false){
header('Location: /ftp.php');
}else{
echo '<div class="menu">
<b>•</b> <a href="/ftp.php?d='.bon($d).'">Просмотреть</a><br/>
<b>•</b> <a href="/dir.php?act=copy&d='.bon($d).'">Копировать</a><br/>
<b>•</b> <a href="/dir.php?act=inzip&d='.bon($d).'">Запаковать папку</a><br/>
<b>•</b> <a href="/dir.php?act=rename&d='.bon($d).'">Переименовать</a><br/>
<b>•</b> <a href="/dir.php?act=perenos&d='.bon($d).'">Переместить</a><br/>
<b>•</b> <a href="/dir.php?act=del&d='.bon($d).'">Удалить</a><br/>
<b>•</b> <a href="/dir.php?act=clear&d='.bon($d).'">Очистить</a><br/>
<b>•</b> <a href="/dir.php?act=chmod&d='.bon($d).'">Права доступа</a><br/>
<b>•</b> <a href="/dir.php?act=info&d='.bon($d).'">Свойства</a></div>';
echo '<div class="menu">« <a href="/ftp.php?d='.bon(verh2(verh2($d))).'">Назад</a></div>';
}
}
ftp_close($serv);
break;
case 'chmod':
$d=dir_url('/'.boff(prov($_GET['d'])).'/');
$title='Права доступа для папки "'.basename($d).'"';
include 'system/head.php';
title($title);
if(empty($d)){
header('Location: /ftp.php');
}else{
if (ftp_chdir($serv, $d) == false){
header('Location: /ftp.php');
}else{
if (isset($_POST['ok'])){
$chmod=intval($_POST['chmod']);
if (empty($chmod)){
$err='Не введены права доступа';
}
elseif (!preg_match('#^[0-9]{3}+$#sU',$_POST['chmod']) || !is_numeric($chmod) || strlen($chmod) != 3){
$err='Права доступа введены не верно. Пример ввода: 777';
}
if (!empty($err)){
err($err);
}else{
$chmd='CHMOD 0'.$chmod.' '.$d;
if (ftp_site($serv,$chmd)){
echo '<div class="menu">Права доступа успешно изменены</div>';
} else {
err('Не удалось изменить права');
include 'system/foot.php';
exit();
}
}
}
echo '<div class="menu"><form method="post">Права доступа (chmod):<br/><input type="text" name="chmod" value="'.chminf($serv, verh2($d)).'"><br/><input class="btn btn-default" type="submit" name="ok" value="Сохранить"></form></div>';
}
}
ftp_close($serv);
break;
case 'del':
$d=dir_url('/'.boff(prov($_GET['d'])).'/');
$title='Удаление папки "'.basename($d).'"';
include 'system/head.php';
title($title);
if(empty($d)){
header('Location: /ftp.php');
}else{
if (ftp_chdir($serv, $d) == false){
header('Location: /ftp.php');
}else{
if(isset($_GET['ok'])){
if (@rdir($serv, $d, 'del')){
header('Location: /ftp.php?d='.bon(verh2(verh2($d))));
} else {
err('Не удалось удалить папку');
}
}else{
echo '<div class="menu">Вы действительно хотите удалить данную папку вместе со всеми вложеными папками и файлами в ней?<br/><center><a href="/dir.php?act=del&ok&d='.bon($d).'">Да</a> | <a href="/dir.php?d='.bon($d).'">Нет</a></center></div>';
}
}
}
ftp_close($serv);
break;
case 'clear':
$d=dir_url('/'.boff(prov($_GET['d'])).'/');
$title='Очистка папки "'.basename($d).'"';
include 'system/head.php';
title($title);
if(empty($d)){
header('Location: /ftp.php');
}else{
if (ftp_chdir($serv, $d) == false){
header('Location: /ftp.php');
}else{
if (isset($_GET['ok'])){
if (rdir($serv, $d, 'cl')){
header('Location: /dir.php?d='.bon($d));
} else {
err('Не удалось очистить папку');
}
}else{
echo '<div class="menu">Вы действительно хотите очистить данную папку от всех вложеных папок и файлов в неё?<br/><center><a href="/dir.php?act=clear&ok&d='.bon($d).'">Да</a> | <a href="/dir.php?d='.bon($d).'">Нет</a></center></div>';
}
}
}
ftp_close($serv);
break;
case 'rename':
$d=dir_url('/'.boff(prov($_GET['d'])).'/');
$title='Переименование папки "'.basename($d).'"';
include 'system/head.php';
title($title);
if(empty($d)){
header('Location: /ftp.php');
}else{
if (ftp_chdir($serv, $d)== false){
header('Location: /ftp.php');
}else{
if (isset($_POST['ok'])){
$name=prov($_POST['name']);
if (empty($name)){
$err='Не введёно название папки';
}
elseif (!preg_match('/^[A-z0-9_\-\.]+$/ui',$name)){
$err='Не верно введено название папки. Разрешено: A-z0-9-_.';
}
if (!empty($err)){
err($err);
}else{
$newdir=dir_url('/'.verh2(verh2($d)).'/'.$name.'/');
if (ftp_rename($serv,$d,$newdir)) {
header('Location: /ftp.php?d='.bon(verh2(verh2($d))));
} else {
err('Не удалось переименовать папку');
}
}
}
echo '<div class="menu"><form method="post">Название (A-z0-9_-.):<br/><input type="text" name="name" value="'.basename($d).'"><br/><input class="btn btn-default" type="submit" name="ok" value="Переименовать"></form></div>';
}
}
ftp_close($serv);
break;
case 'perenos':
$d=dir_url('/'.boff(prov($_GET['d'])).'/');
$title='Перемещение папки "'.basename($d).'"';
include 'system/head.php';
title($title);
if(empty($d)){
header('Location: /ftp.php');
}else{
if (ftp_chdir($serv, $d) == false){
header('Location: /ftp.php');
}else{
if (isset($_POST['ok'])){
$put=prov($_POST['put']);
if (!empty($put)){
$put=dir_url('/'.$put.'/');
$verh=dir_url('/'.verh2(verh2($d)).'/');
}
if (empty($put)){
$err='Не указан путь перемещения';
}
elseif (!preg_match('/^[A-z0-9_\-\/\.]+$/ui',$put)){
$err='Путь перемещения содержит запрещённые символы. Разрешено: A-z0-9_-./';
}
elseif ($put == $verh){
$err='Данная папка и так находится в этой папке';
}
elseif (preg_match('#'.$d.'#sU',$put)){
$err='Запрещено перемещать папку в её подпапку';
}
if (!empty($err)){
err($err);
}else{
$newdir=dir_url('/'.$put.'/'.basename($d).'/');
if (ftp_rename($serv,$d,$newdir)) {
header('Location: /ftp.php?d='.bon(dir_url($put)));
} else {
err('Не удалось переместить папку');
}
}
}
$value=dir_url('/'.verh2(verh2(verh2($d))).'/');
echo '<div class="menu"><form method="post">Путь перемещения (A-z0-9_-/.):<br/><input type="text" name="put" value="'.$value.'"><br/><input class="btn btn-default" type="submit" name="ok" value="Переместить"></form></div>';
}
}
ftp_close($serv);
break;
case 'inzip':
$d=dir_url('/'.boff(prov($_GET['d'])).'/');
$title='Архивирование папки "'.basename($d).'"';
include 'system/head.php';
title($title);
if(empty($d)){
header('Location: /ftp.php');
}else{
if (ftp_chdir($serv, $d) == false){
header('Location: /ftp.php');
}else{
if (isset($_POST['ok'])){
$name=prov($_POST['name']);
if (empty($name)){
$err='Не введено название архива';
}
elseif (!preg_match('/^[A-z0-9_\-\.]+$/ui',$name)){
$err='В названии архива запрещённые символы. Разрешено A-z0-9_-.';
}
if (!empty($err)){
err($err);
}else{
mkdir($_SERVER['DOCUMENT_ROOT'].'/tmp/'.$savedir.'/archive');
inzip($serv, $d, $d);
include 'system/pclzip.php';
$zip=new PclZip('tmp/'.$savedir.'/'.$name.'.zip');
if ($zip->create('tmp/'.$savedir.'/archive', PCLZIP_OPT_REMOVE_PATH, 'tmp/'.$savedir.'/archive') != false) {
$kuda=dir_url('/'.verh2(verh2($d)).'/');
ftp_put($serv, $kuda.''.$name.'.zip','tmp/'.$savedir.'/'.$name.'.zip',FTP_BINARY);
deldir('tmp/'.$savedir.'/archive');
unlink('tmp/'.$savedir.'/'.$name.'.zip');
header('Location: /ftp.php?d='.bon(verh2(verh2($d))));
}else{
err('Ошибка создания архива');
}
}
}
echo '<div class="menu"><form method="post">Название архива (A-z0-9_-.):<br/><input type="text" name="name" value="'.basename($d).'">.zip<br/><input class="btn btn-default" type="submit" name="ok" value="Архивировать"></form></div>';
}
}
ftp_close($serv);
break;
case 'info':
$d=dir_url('/'.boff(prov($_GET['d'])).'/');
$title='Информация о папке "'.basename($d).'"';
include 'system/head.php';
title($title);
if (empty($d)){
header('Location: /ftp.php');
}else{
if (ftp_chdir($serv, $d) == false){
header('Location: /ftp.php');
}else{
$global_size=0;
$global_size=get_ftp_size($serv, $d, $global_size);
echo '<div class="menu">Название: '.basename($d).'<br/>Размер: '.sizer($global_size).'<br/>Права доступа: '.chminf($serv, verh2($d)).''.(dirinf($serv, verh2($d), 'user') != false?'<br/>Владелец: '.dirinf($serv, verh2($d), 'user'):'').''.(dirinf($serv, verh2($d), 'group') != false?'<br/>Группа: '.dirinf($serv, verh2($d), 'group'):'').''.(dirinf($serv, verh2($d), 'date') != false?'<br/>Дата создания: '.dirinf($serv, verh2($d), 'date'):'').'</div>';
}
}
ftp_close($serv);
break;
case 'copy':
$d=dir_url('/'.boff(prov($_GET['d'])).'/');
$title='Копирование папки "'.basename($d).'"';
include 'system/head.php';
title($title);
if (empty($d)){
header('Location: /ftp.php');
}else{
if (ftp_chdir($serv, $d) == false){
header('Location: /ftp.php');
}else{
if (isset($_POST['ok'])){
$put=prov($_POST['put']);
$type=intval($_POST['type']);
if (!empty($put)){
$put=dir_url('/'.$put.'/');
$verh=dir_url('/'.verh2(verh2($d)).'/');
}
if (empty($put)){
$err='Не указан путь копирования';
}
elseif (!preg_match('/^[A-z0-9_\-\.\/]+$/ui',$put)){
$err='Путь копирования содержит запрещённые символы. Разрешено: A-z0-9_-/.';
}
elseif ($put == $verh){
$err='Данная папка и так находится в этой папке';
}
elseif (preg_match('#'.$d.'#sU',$put)){
$err='Запрещено копировать папку в её подпапку';
}
elseif (ftp_chdir($serv, $put) == false){
$err='Директория не существует';
}
elseif ($type != '1' && $type != '2'){
$err='Не выбран тип копирования';
}
if (!empty($err)){
err($err);
}else{
if ($type == 1){
$put=dir_url('/'.$put.'/'.basename($d).'/');
ftp_mkdir($serv, $put);
}else{
$put=$put;
}
mkdir($_SERVER['DOCUMENT_ROOT'].'/tmp/'.$savedir.'/archive');
inzip($serv, $d, $d);
dircopy($serv, $_SERVER['DOCUMENT_ROOT'].'/tmp/'.$savedir.'/archive', $put, $_SERVER['DOCUMENT_ROOT'].'/tmp/'.$savedir.'/archive');
deldir($_SERVER['DOCUMENT_ROOT'].'/tmp/'.$savedir.'/archive');
header('Location: /ftp.php?d='.bon($put));
}
}
$value=dir_url('/'.verh2(verh2(verh2($d))).'/');;
echo '<div class="menu"><form method="post">Путь копирования (A-z0-9_-./):<br/><input type="text" name="put" value="'.$value.'"><br/>Тип копирования:<br/><input type="radio" name="type" value="1" checked="checked"> Как папку<br/><input type="radio" name="type" value="2"> Только содержимое<br/><input class="btn btn-default" type="submit" name="ok" value="Копировать"></form></div>';
}
}
ftp_close($serv);
break;
}
if ($act){
echo '<div class="menu">« <a href="/dir.php?d='.prov($_GET['d']).'">Назад</a></div>';
}
include 'system/foot.php';
?>