<?php
/*
Автор скрипта: Juse
Модификация: Jahak
*/

include_once 'config.php';
include_once 'head.php';

if (!isset($_GET['action'])){
    echo '<div class="rmenu"><b>Ошибка! Не выбранна команда!</b></div>';
    include_once 'foot.php';
    exit;
}
if (!file_exists($_GET['did'])){
    echo '<div class="rmenu"><b>Ошибка! Такой директории не существует!</b></div>'; 
    include_once 'foot.php';
    exit;
}
if ($_GET['action']=="deldir"){
    if ($_GET['r']=="1"){
        function deldir($directory) {
            $dir = opendir($directory); 
            while($file = readdir($dir)){
                if(is_file("$directory/$file")){
                    unlink("$directory/$file");
                } elseif (is_dir("$directory/$file") && $file !== "." && $file !== "..") {
                    deldir("$directory/$file");
                }
            }
            closedir($dir);
            if(rmdir($directory))
            return true;
        }
        if (deldir($_GET['did'])){
            echo '<b>Директория удалена!</b><br />';
        } else {
            echo '<div class="rmenu"><b>Ошибка удаления директории! Посмотрите, возможно права доступа не разраешают удалять файлы/папки</b></div>';
        }
    } else {
        $_GET['did'] = str_replace("/", "%2f", $_GET['did']);
        echo '<div class="bmenu">Папка: <b>'.$_GET['did'].'</b></div><div class="list2"><b>Вы подтверждаете что хотите удалить дерикторию?</b><br />' .
        '<a href="?action=deldir&r=1&did='.$_GET['did'].'">Да</a> / <a href="index.php?action=viewdir&did='.$_GET['did'].'">Нет</a></div>';
    }
}
if ($_GET['action']=="rename"){
    $_GET['did'] = str_replace("/", "%2f", $_GET['did']);
    $exp = dirname(realpath($_GET['did']));
    $exts = realpath($_GET['did']);
    $exti = str_replace($exp, $exts, $exts);
    $ext = strtolower(substr($exti, 1 + strrpos($exti, "/")));
    $_GET['did'] = str_replace("/", "%2f", $_GET['did']);
    echo '<div class="bmenu">Папка: <b>'.$_GET['did'].'</b></div>' .
    '<div class="list2">' .
    '<form action="?action=renamer&did='.$_GET['did'].'" method="post">' .
    'Название папки:<br /><input type="hidden" name="starname" value="'.$ext.'"/>' .
    '<input name="newname" value="'.$ext.'"/><br />' .
    '<input type="submit" value="Переименовать"/>' .
    '</form>' .
    '</div><div class="menu"><a href="index.php?action=viewdir&did='.$_GET['did'].'">Назад</a></div>';
}
if ($_GET['action']=="renamer"){
    if(eregi("[^a-z_0-9-]", $_POST['newname'])){
        echo '<div class="rmenu">Ошибка! Не верное название файла! Допустимые символы: a-z _ 0-9 -</div>';
        include_once 'foot.php';
        exit;
    }
    $a = str_replace($_POST['starname'], $_POST['newname'], $_GET['did']);
    if (rename($_GET['did'], $a)) {
        echo 'Папка успешно переминована!<br />'; 
    } else {
        echo '<div class="rmenu">Ошибка переименования Папки</div>';
    }
}
if ($_GET['action']=="cleardir"){
    if ($_GET['r']=="1"){
        function deldir($directory) {
            $dir = opendir($directory);
            while($file = readdir($dir)){
                if(is_file("$directory/$file")){
                    unlink("$directory/$file");
                } elseif (is_dir("$directory/$file") && $file !== "." && $file !== "..") {
                    deldir("$directory/$file");
                }
            }
            closedir($dir);
            if(rmdir($directory))
            if(mkdir($directory))
            return true;
        }
        if (deldir($_GET['did'])){
            echo '<b>Директория успешно очищена!</b><br />';
        } else {
            echo '<div class="rmenu"><b>Ошибка очистки директории!</b></div>';
        }
    } else {
        $_GET['did'] = str_replace("/", "%2f", $_GET['did']);
        echo '<div class="bmenu">Папка: <b>'.$_GET['did'].'</b></div>' .
        '<div class="list2"><b>Вы подтверждаете что хотите очистить директорию?</b><br />' .
        '<a href="?action=cleardir&r=1&did='.$_GET['did'].'">Да</a> / <a href="index.php?action=viewdir&did='.$_GET['did'].'">Нет</a></div>';
    }
}
if ($_GET['action']=="chmod"){
    $ext = substr(sprintf("%o", fileperms($_GET['did'])), -3);
    $_GET['did'] = str_replace("/", "%2f", $_GET['did']);
    echo '<div class="bmenu">Папка: <b>'.$_GET['did'].'</b></div><div class="list2"><form action="?action=chmode&did='.$_GET['did'].'" method="post">' .
    'Chmod:<br /><input name="chmod" size="5" value="' . $ext . '"/><br />' .
    '<input type="submit" value="Установить"/></form>' .
    '</div><div class="menu"><a href="index.php?action=viewdir&did='.$_GET['did'].'">Назад</a></div>';
}
if ($_GET['action']=="chmode"){
    $_GET['did'] = str_replace("%2f", "/", $_GET['did']);
    if(eregi("[^0-9]", $_POST['chmod'])){
        echo 'Не верно введены права доступа! Вводите только числа!';
        include_once 'foot.php';
        exit;
    }
    $chmod = '0'.$_POST['chmod'];
    if (chmod($_GET['did'],$chmod)){
        echo 'Прова доступа установлены! ('.$_POST['chmod'].')<br />';
    } else {
        echo '<div class="rmenu">Ошибка установки прав доступа! Операция не позволяет! ('.$_POST['chmod'].')</div>';
    }
}
if ($_GET['action']=="info"){
    echo '<div class="bmenu">Папка: <b>'.$_GET['did'].'</b></div><div class="list2">' .
    'Размер папки: '.formatsize(read_dir($_GET['did'])).'<br />' .
    'Права доступа: '.substr(sprintf("%o",fileperms($_GET['did'])),-3).'<br />' .
    '</div><div class="menu"><a href="index.php?action=viewdir&did='.$_GET['did'].'">Назад</a></div>';
}
include_once 'foot.php';