View file ä󿪫¬/modules/obmen/inc/admin_act.php

File size: 7.55Kb
<?php

if (access('obmen_dir_delete') && isset($_GET['act']) && $_GET['act'] == 'delete' && isset($_GET['ok']) && $l != '/') {

    $q = $pdo->query("SELECT * FROM `obmennik_dir` WHERE `dir_osn` like '$l%'");

    while ($post = $q->fetch(PDO::FETCH_ASSOC)) {

        $q2 = $pdo->query("SELECT * FROM `obmennik_files` WHERE `id_dir` = '$post[id]'");

        while ($post2 = $q2->fetch(PDO::FETCH_ASSOC)) {
            unlink(H . 'sys/obmen/files/' . $post2['id'] . '.dat');
        }

        $pdo->query("DELETE FROM `obmennik_files` WHERE `id_dir` = '$post[id]'");
        $pdo->query("DELETE FROM `obmennik_dir` WHERE `id` = '$post[id]' LIMIT 1");
    }
    $q2 = $pdo->query("SELECT * FROM `obmennik_files` WHERE `id_dir` = '$dir_id[id]'");

    while ($post = $q2->fetch(PDO::FETCH_ASSOC)) {
        unlink(H . 'sys/obmen/files/' . $post['id'] . '.dat');
    }

    $pdo->query("DELETE FROM `obmennik_files` WHERE `id_dir` = '$dir_id[id]'");
    $pdo->query("DELETE FROM `obmennik_dir` WHERE `id` = '$dir_id[id]' LIMIT 1");

    $l = htmlspecialchars($dir_id['dir_osn']);

    $_SESSION['message'] = lang('Папка успешно удалена');
    admin_log(lang('Загрузки'), lang('Удаление папки'), lang("Папка") . " '$dir_id[name]' " . lang('удалена') . "");

    $dir_id = $pdo->query(("SELECT * FROM `obmennik_dir` WHERE `dir` = '/$l' OR `dir` = '$l/' OR `dir` = '$l' LIMIT 1"))->fetch(PDO::FETCH_ASSOC);
    $id_dir = htmlspecialchars($dir_id['id']);
}

if (access('obmen_dir_edit') && isset($_GET['act']) && $_GET['act'] == 'mesto' && isset($_GET['ok']) && isset($_POST['dir_osn']) && $l != '/') {
    if ($_POST['dir_osn'] == NULL) {
        $err = lang("Не выбран коненый путь");
    } else {
        $q = $pdo->query("SELECT * FROM `obmennik_dir` WHERE `dir_osn` like '$l%'");

        while ($post = $q->fetch(PDO::FETCH_ASSOC)) {
            $new_dir_osn = eregi_replace("^$l/", htmlspecialchars($_POST['dir_osn']), htmlspecialchars($post['dir_osn'])) . htmlspecialchars($dir_id['name']) . '/';
            $new_dir = htmlspecialchars($new_dir_osn) . htmlspecialchars($post['name']);

            $pdo->query("UPDATE `obmennik_dir` SET `dir`='$new_dir/', `dir_osn`='$new_dir_osn' WHERE `id` = '$post[id]' LIMIT 1");
        }

        $l = htmlspecialchars($_POST['dir_osn']);

        $pdo->query("UPDATE `obmennik_dir` SET `dir`='" . $l . "".htmlspecialchars($dir_id['name'])."/', `dir_osn`='" . htmlspecialchars($l) . "' WHERE `id` = '$dir_id[id]' LIMIT 1");

        admin_log(lang('Загрузки'), lang('Изменение папки'), lang("Папка") . " '".htmlspecialchars($dir_id['name'])."' " . lang('перемещена') . "");
        $_SESSION['message'] = lang('Папка успешно перемещена');

        $dir_id = $pdo->query(("SELECT * FROM `obmennik_dir` WHERE `id` = '$dir_id[id]' LIMIT 1"))->fetch(PDO::FETCH_ASSOC);
        $id_dir = htmlspecialchars($dir_id['id']);
    }
}

if (access('obmen_dir_edit') && isset($_GET['act']) && $_GET['act'] == 'rename' && isset($_GET['ok']) && isset($_POST['name']) && $l != NULL) {
    if (htmlspecialchars($_POST['name']) == NULL) {
        $err = lang("Введите название папки");
    } elseif (!preg_match("#^([A-zА-я0-9\-\_\(\)\ ])+$#ui", $_POST['name'])) {
        $err[] = lang('В названии присутствуют запрещенные символы');
    } else {
        $newdir = retranslit(htmlspecialchars($_POST['name']));

        if (!isset($err)) {
            if ($l != '/') {
                $l.='/';
            }
            $downpath = preg_replace('#[^/]*/$#', NULL, $l);

            $pdo->query("UPDATE `obmennik_dir` SET `name`='" . esc($_POST['name'], 1) . "' WHERE `dir` = '/$l' OR `dir` = '$l/' OR `dir` = '$l' LIMIT 1");

            $_SESSION['message'] = lang('Папка успешно переименована');
            admin_log(lang('Загрузки'), lang('Изменение папки'), lang("Папка") . " '".htmlspecialchars($dir_id['name'])."' " . lang('переименована в') . " '" . htmlspecialchars($_POST['name']) . "'");

            $l = $downpath . $newdir;
            $dir_id = $pdo->query(("SELECT * FROM `obmennik_dir` WHERE `dir` = '/$l' OR `dir` = '$l/' OR `dir` = '$l' LIMIT 1"))->fetch(PDO::FETCH_ASSOC);
            $id_dir = htmlspecialchars($dir_id['id']);

            header("Location: ?");
        }
    }
}

if (access('obmen_dir_create') && isset($_GET['act']) && $_GET['act'] == 'mkdir' && isset($_GET['ok']) && isset($_POST['name'])) {
    if ($_POST['name'] == NULL) {
        $err = lang("Введите название папки");
    } elseif (!preg_match("#^([A-zА-я0-9\-\_\(\)\ ])+$#ui", $_POST['name'])) {
        $err[] = lang('В названии присутствуют запрещенные символы');
    } else {
        $newdir = retranslit(esc($_POST['name'], 1));

        if (isset($_POST['upload']) && $_POST['upload'] == '1') {
            $upload = 1;
        } else {
            $upload = 0;
        }

        if (!isset($_POST['ras']) || $_POST['ras'] == NULL) {
            $upload = 0;
        }
        $size = 0;

        if ($upload == 1 && isset($_POST['size']) && isset($_POST['mn'])) {
            $size = intval($_POST['size']) * intval($_POST['mn']);
            if ($upload_max_filesize < $size) {
                $size = $upload_max_filesize;
            }
        } else {
            $upload = 0;
        }

        $ras = esc(stripcslashes(htmlspecialchars($_POST['ras'], 1)));

        if (!isset($err)) {
            if ($l != '/') {
                $l.='/';
            }
            $pdo->query("INSERT INTO `obmennik_dir` (`name` , `ras` , `maxfilesize` , `dir` , `dir_osn` , `upload` ) VALUES ('" . esc(htmlspecialchars($_POST['name']), 1) . "', '$ras', '$size', '" . $l . "$newdir/', '" . $l . "', '$upload')");

            $_SESSION['message'] = lang('Папка успешно создана');
            admin_log(lang('Загрузки'), lang('Создание папки'), lang("Создана папка") . " '" . esc(htmlspecialchars($_POST['name']), 1) . "'");
        }
    }
}

if (access('obmen_dir_edit') && isset($_GET['act']) && $_GET['act'] == 'set' && isset($_GET['ok'])) {

    if (isset($_POST['upload']) && $_POST['upload'] == '1') {
        $upload = 1;
    } else {
        $upload = 0;
    }


    if (!isset($_POST['ras']) || $_POST['ras'] == NULL) {
        $upload = 0;
    }
    $size = 0;

    if ($upload == 1 && isset($_POST['size']) && isset($_POST['mn'])) {
        $size = intval($_POST['size']) * intval($_POST['mn']);
        if ($upload_max_filesize < $size) {
            $size = $upload_max_filesize;
        }
    } else {
        $upload = 0;
    }

    $ras = esc(stripcslashes(htmlspecialchars($_POST['ras'], 1)));

    if (!isset($err)) {
        if ($l != '/') {
            $l.='/';
        }
        $pdo->query("UPDATE `obmennik_dir` SET `ras`='$ras', `maxfilesize`='$size', `upload`='$upload' WHERE `id` = '$dir_id[id]'");

        $_SESSION['message'] = lang('Изменения сохранены');
        admin_log(lang('Загрузки'), lang('Изменение папки'), lang("Изменены параметры папки") . " '".htmlspecialchars($dir_id['name'])."'");

        $dir_id = $pdo->query(("SELECT * FROM `obmennik_dir` WHERE `id` = '$dir_id[id]' LIMIT 1"))->fetch(PDO::FETCH_ASSOC);
        $id_dir = htmlspecialchars($dir_id['id']);
    }
}