Файл: panel/loads.php
Строк: 248
<?php
// by mides, 1cp.pw
require_once '../includes/sys.php';
require_once '../includes/auth_a.php';
require_once '../includes/header.php';
if ($u['access'] == 1) header('location: ./');
if ($u['access'] == 2) header('location: ../loads/?act=mod');
switch ($act) {
    default:
        tp('Загруз-центр');
        echo '<div class="body">';
        note();
        $cats_r = mysql_query("SELECT * FROM `loads_cats` ORDER BY `name`");
        while ($cat = mysql_fetch_assoc($cats_r)) {
            echo '<a href="../loads/?act=cat&id='.$cat['id'].'">'.$cat['name'].'</a> (<a href="?act=cat_edit&id='.$cat['id'].'">ред</a>)<br />';
            $subcats_r = mysql_query("SELECT * FROM `loads_subcats` WHERE `id_cat` = '$cat[id]' ORDER BY `name`");
            while ($subcat = mysql_fetch_assoc($subcats_r)) {
                echo '- <a href="../loads/?act=subcat&id='.$subcat['id'].'">'.$subcat['name'].'</a> (<a href="?act=subcat_edit&id='.$subcat['id'].'">ред</a>)<br />';
            }
        }
        echo '<br /><a href="?act=file_add">Добавить файл</a><br />
        <a href="?act=file_multiadd">Добавить несколько</a><br />
                <a href="?act=file_multi_import">Импортировать несколько</a><br />
        <a href="../loads/index.php?act=mod">Модерировать</a><br />
        
        <br/>
        <form name="form" action="?act=cat_add" method="post" name="form">
        <select name="cat">
        <option value="0">Главная</option>';
        $cats_r = mysql_query("SELECT * FROM `loads_cats` ORDER BY `name`");
        while ($cat = mysql_fetch_assoc($cats_r)) {
            echo '<option value="'.$cat['id'].'">'.$cat['name'].'</option>';    
        }
        echo '</select><br />
        Название (под)раздела:<br/><input name="name" type="text" maxlength="50" /><br />
        <input name="submit" type="submit" value="Добавить"></form>';
        nav('./');
    break;
    
    case 'cat_add':
        if ($_POST['name']) {
            $cat = abs(intval($_POST['cat']));
            $name = check($_POST['name']);
            if ($cat > 0) {
                $catn = mysql_fetch_assoc(mysql_query("SELECT `name` FROM `loads_cats` WHERE `id` = '$cat'"));
                $path = str_to_en($catn['name']).'_'.str_to_en($name);
                $path = str_replace(' ', '_', $path);
                $path = str_replace('/', '-', $path);
                mkdir('../loads/files/'.$path, 0777);
                mysql_query("INSERT INTO `loads_subcats` SET `id_cat` = '$cat', `name` = '$name', `path` = '$path'") or die(mysql_error());
            } else {
                mysql_query("INSERT INTO `loads_cats` SET `name` = '$name'");
            }
        }
        header('location: ?');
    break;
    
    case 'cat_edit':
        $cat = mysql_fetch_assoc(mysql_query("SELECT * FROM `loads_cats` WHERE `id` = '$id'"));
        if ($cat['id']) {
            if (isset($_GET['ok'])) {
                if ($_POST['del']) {
                    if (!mysql_num_rows(mysql_query("SELECT `id` FROM `loads_subcats` WHERE `id_cat` = '$id'"))) {
                        mysql_query("DELETE FROM `loads_cats` WHERE `id` = '$id'");
                        header('location: ?');
                        exit;
                    } else {
                        error('Удалите все подразделы раздела "'.$cat['name'].'"');
                    }
                } else {
                    if ($_POST['name']) {
                        $name = check($_POST['name']);
                        mysql_query("UPDATE `loads_cats` SET `name` = '$name' WHERE `id` = '$id'");
                        header('location: ?');
                        exit;
                    } else {
                        header('location: ?act=cat_edit&id='.$id);
                        exit;
                    }
                }
            } else {
                tp('Редактировать раздел');
                echo '<div class="body">';
                echo '<form name="form" action="?act=cat_edit&id='.$id.'&ok=1" method="post">
                Название:<br /><input name="name" type="text" maxlength="50" value="'.$cat['name'].'" /><br />
                <input name="del" type="checkbox" value="1" /> удалить<br />
                <input name="submit" type="submit" value="Ok" />
                </form>';
            }
        } else {
            error('Раздел не существует.');
        }
        nav('?');
    break;
    
    case 'subcat_edit':
        $subcat = mysql_fetch_assoc(mysql_query("SELECT * FROM `loads_subcats` WHERE `id` = '$id'"));
        if ($subcat['id']) {
            if (isset($_GET['ok'])) {
                if ($_POST['del']) {
                    $files = mysql_query("SELECT `file` FROM `loads` WHERE `id_subcat` = '$id'");
                    while ($file = mysql_fetch_assoc($files)) {
                        unlink('../loads/files/'.$subcat['path'].'/'.$file['file']);
                    }
                    $rmdir = rmdir('../loads/files/'.$subcat['path']);
                    if ($rmdir == 1) {
                        mysql_query("DELETE FROM `loads_subcats` WHERE `id` = '$id'");
                        $_SESSION['note'] = 'Подраздел "'.$subcat['name'].'" удален.';
                    } else {
                        $_SESSION['note'] = 'Произошла ошибка.';
                    }
                    header('location: ?');
                    exit;
                } else {
                    if ($_POST['name']) {
                        $name = check($_POST['name']);
                        mysql_query("UPDATE `loads_subcats` SET `name` = '$name' WHERE `id` = '$id'");
                        header('location: ?');
                        exit;
                    } else {
                        header('location: ?act=subcat_edit&id='.$id);
                        exit;
                    }
                }
            } else {
                tp('Редактировать подраздел');
                echo '<div class="body">';
                echo '<form name="form" action="?act=subcat_edit&id='.$id.'&ok=1" method="post">
                Название:<br /><input name="name" type="text" maxlength="50" value="'.$subcat['name'].'" /><br />
                <input name="jump" type="checkbox" value="1" /> автопереход к просмотру<hr />
                <input name="del" type="checkbox" value="1" /> удалить (все файлы подраздела будут также удалены)<br />
                <input name="submit" type="submit" value="Ok" />
                </form>';
            }
        } else {
            error('Раздел не существует.');
        }
        nav('?');
    break;
    
    case 'file_add':
        if ($ok) {
            if (!empty($_POST['subcat']) and !empty($_POST['name']) ) {
                $subcat_id = abs(intval($_POST['subcat']));
                $subcat = mysql_fetch_assoc(mysql_query("SELECT * FROM `loads_subcats` WHERE `id` = '$subcat_id'"));
                if (isset($subcat['id'])) {
                    if ($_POST['url']) {
                        $copy = $_POST['url'];
                        $file = $file = check(basename($copy));
                    
                    } elseif (!empty($_FILES['file']['name'])) {
                        $copy = $_FILES['file']['tmp_name'];
                        $file = check(basename($_FILES['file']['name']));
                    } else {
                        error('Не выбран файл или не указан адрес для импорта.');
                        nav('?act=file_add');
                    }
                    if (!mysql_num_rows(mysql_query("SELECT `id` FROM `loads` WHERE `file` = '$file'"))) {
                        $name = check($_POST['name']);
                        $desc = check($_POST['desc']);
                        $author = check($_POST['author']);
                        $site = check($_POST['site']);
                        copy($copy, '../loads/files/'.$subcat['path'].'/'.$file);
                        mysql_query("INSERT INTO `loads` SET `id_cat` = '$subcat[id_cat]', `id_subcat` = '$subcat[id]', `id_user` = '$u[id]', `name` = '$name', `desc` = '$desc', `author` = '$author', `site` = '$site', `file` = '$file', `time` = '".time()."', `ok` = 1");
                        $_SESSION['note'] = 'Загружено.';
                        header('location: ?act=file_add');
                        exit;
                    } else {
                        error('Файл уже существует.');
                        nav('?act=file_add');
                    }
                } else {
                    error('Подраздел выбранный не существует.');
                    nav('?act=file_add');
                }
            } else {
                error('Вы не указали название, не выбрали подраздел или файл.');
                nav('?act=file_add');
            }
        } else {
            tp('Добавить файл');
            echo '<div class="body">';
            note();
            echo '<form name="form" action="?act=file_add&ok=1" method="post" enctype="multipart/form-data">
            Выбрать подраздел*:<br /><select name="subcat">';
            $cat_r = mysql_query("SELECT * FROM `loads_cats` ORDER BY `name`");
            while ($cat = mysql_fetch_assoc($cat_r)) {
                echo '<option value="0">'.$cat['name'].'</option>';
                $subcat_r = mysql_query("SELECT * FROM `loads_subcats` WHERE `id_cat` = '$cat[id]' ORDER BY `name`");
                while ($subcat = mysql_fetch_assoc($subcat_r)) {
                    echo '<option value="'.$subcat['id'].'">-- '.$subcat['name'].'</option>';
                }
            }
            echo '</select><br />
            Название(max50)*:<br /><input name="name" type="text" maxlength="50" /><br />
            Описание:<br /><textarea name="desc" cols="" rows="4"></textarea><br />
            Автор(max20):<br /><input name="author" type="text" maxlength="20" /><br />
            Сайт(<del>http://</del>, max20):<br /><input name="site" type="text" maxlength="20" /><br />
            Выбрать файл*:<br /><input name="file" type="file" size="file" /><br />
            <u>ЛИБО</u> указать адрес для импорта, напр. http://coolcms.org/1.zip<br />
            <input name="url" type="text" /><br />
            <input name="submit" type="submit" value="Ok" />
            </form>';
            nav('?');
        }
    break;
    
    case 'file_multi_import':
        tp('Импортировать несколько файлов');
        if ($ok) {
            if (!empty($_POST)) {
                    $subcat_id = abs(intval($_POST['subcat']));
                    $subcat = mysql_fetch_assoc(mysql_query("SELECT * FROM `loads_subcats` WHERE `id` = '$subcat_id'"));
                    if (isset($subcat['id'])) {
                            for ($i = 0; $i < sizeof($_POST['url']); $i++) {
                                    if (empty($_POST['url'][$i])) {
                                            continue;
                                    }
                                    $filename = basename($_POST['url'][$i]);
                                    $info = '';
                                    if (!mysql_num_rows(mysql_query("SELECT `id` FROM `loads` WHERE `id_subcat` = '$subcat_id' and `file` = '$filename'"))){
                                            $copy = copy($_POST['url'][$i], '../loads/files/'.$subcat['path'].'/'.$filename);
                                            if ($copy == TRUE) {
                                                    mysql_query("INSERT INTO `loads` SET `id_cat` = '$subcat[id_cat]', `id_subcat` = '$subcat[id]', `id_user` = '$u[id]', `name` = '$filename', `file` = '$filename', `time` = '".TIME."', `ok` = 1");
                                                    $info .= 'Файл '.$filename.' импортирован.<br />';
                                            } else {
                                                    $info .= 'Файл '.$filename.' не закачен. Проверьте CHMOD.<br />';
                                            }
                                    } else {
                                            $info .= 'Файл '.$filename.' уже существует.<br />';
                                    }
                                    echo $info.'<br />- <a href="?act=file_multiadd">Импортнуть еще</a>';
                            }
                    } else {
                            $_SESSION['note'] = 'Выбранный подраздел не существует.';
                            redirect('?act=file_multiadd');
                    }
            } else {
                    $_SESSION['note'] = 'Не указан подраздел или файл (минимум один)';
            }
    } else {
        echo '<div class="body">';
        echo '<form name="form" action="?act=file_multi_import&ok=1" method="post">
        Выбрать подраздел*:<br /><select name="subcat">';
        $subcat_r = mysql_query("SELECT * FROM `loads_subcats` WHERE `id` != '$load[id_subcat]' ORDER BY `id_cat`, `name`");
        while ($subcat = mysql_fetch_assoc($subcat_r)) {
                $cat = mysql_fetch_assoc(mysql_query("SELECT * FROM `loads_cats` WHERE `id` = '$subcat[id_cat]'"));
                echo '<option value="'.$subcat['id'].'">'.$cat['name'].' > '.$subcat['name'].'</option>';
        }
        echo '</select><br />
        Укажите адрес к файлу:<br />
        <input name="url[]" type="text" /><br />
        <input name="url[]" type="text" /><br />
        <input name="url[]" type="text" /><br />
        <input name="url[]" type="text" /><br />
        <input name="url[]" type="text" /><br />
        <input name="url[]" type="text" /><br />
        <input name="url[]" type="text" /><br />
        <input name="submit" type="submit" value="Импортировать" />
        </form>';
    }
    nav('?');
break;
    case 'file_multiadd':
        tp('Добавить несколько файлов');
        echo '<div class="body">';
        if ($ok) {
            if (!empty($_POST)) {
                $subcat_id = abs(intval($_POST['subcat']));
                $subcat = mysql_fetch_assoc(mysql_query("SELECT * FROM `loads_subcats` WHERE `id` = '$subcat_id'"));
                if (isset($subcat['id'])) {
                    for ($i = 0; $i < sizeof($_FILES['file']['name']); $i++) {
                        if (empty($_FILES['file']['name'][$i])) {
                            continue;
                        }
                        $filename = basename($_FILES['file']['name'][$i]);
                        $info = '';
                        if (!mysql_num_rows(mysql_query("SELECT `id` FROM `loads` WHERE `id_subcat` = '$subcat_id' and `file` = '$filename'"))){
                            $copy = copy($_FILES['file']['tmp_name'][$i], '../loads/files/'.$subcat['path'].'/'.$filename);
                            if ($copy == TRUE) {
                                mysql_query("INSERT INTO `loads` SET `id_cat` = '$subcat[id_cat]', `id_subcat` = '$subcat[id]', `id_user` = '$u[id]', `name` = '$filename', `file` = '$filename', `time` = '".TIME."', `ok` = 1");
                                $info .= 'Файл '.$filename.' загружен.<br />';
                            } else {
                                $info .= 'Файл '.$filename.' не закачен. Проверьте CHMOD.<br />';
                            }
                        } else {
                            $info .= 'Файл '.$filename.' уже существует.<br />';
                        }
                        echo $info.'<br />- <a href="?act=file_multiadd">Загрузить еще</a>';
                    }
                } else {
                    $_SESSION['note'] = 'Выбранный подраздел не существует.';
                    redirect('?act=file_multiadd');
                }
            } else {
                $_SESSION['note'] = 'Не указан подраздел или файл (минимум один)';
            }
        } else {
            echo '<form name="form" action="?act=file_multiadd&ok=1" method="post" enctype="multipart/form-data">
            Выбрать подраздел*:<br /><select name="subcat">';
            $subcat_r = mysql_query("SELECT * FROM `loads_subcats` WHERE `id` != '$load[id_subcat]' ORDER BY `id_cat`, `name`");
            while ($subcat = mysql_fetch_assoc($subcat_r)) {
                $cat = mysql_fetch_assoc(mysql_query("SELECT * FROM `loads_cats` WHERE `id` = '$subcat[id_cat]'"));
                echo '<option value="'.$subcat['id'].'">'.$cat['name'].' > '.$subcat['name'].'</option>';
            }
            echo '</select><br />
            Выбрать файл:<br />
            <input name="file[]" type="file" /><br />
            <input name="file[]" type="file" /><br />
            <input name="file[]" type="file" /><br />
            <input name="file[]" type="file" /><br />
            <input name="file[]" type="file" /><br />
            <input name="file[]" type="file" /><br />
            <input name="file[]" type="file" /><br />
            <input name="submit" type="submit" value="Загрузить" />
            </form>';
            
        }
        nav('?');
    break;
    
}
require_once '../includes/tail.php';
?>