Файл: php-zona.ru/modules/admin/forum.php
Строк: 212
<?php
$title = 'Управление форумом';
include_once($_SERVER["DOCUMENT_ROOT"].'/style/head.php');
mode('user');
switch($_GET['act']){
    default:
    ?>
    <div class="nvg">
        <a href="/admin/forum/new_section">Создание раздела</a><br/>
        <a href="/admin/forum/new_psection">Создание подраздела</a><br/>
        <a href="/admin/forum/edit_kat">Редактирование разделов</a><br/>
        <a href="/admin/forum/del_cat">Удаление разделов</a><br/>
        <a href="/admin/forum/complaint">Жалобы</a>
    </div>
    <?
    break;
    case 'new_section':
    level(3);
    ?>
    <div class="title">Создание раздела</div>
    <?
    if(isset($_POST['ok'])){
        $_POST['name'] = guard($db->real_escape_string($_POST['name']));
        if(empty($_POST['name'])){
            error('Введите название!');
        }elseif(mb_strlen($_POST['name'])<3 or mb_strlen($_POST['name'])>255){
            error('Название не должно быть менее 3-х и не более 255 символов!');
        }elseif($db->query("SELECT `id` FROM `forum_kat` WHERE `name`='".$_POST['name']."'")->num_rows!=0){
            error('Раздел с таким названием уже существует!');
        }
        $db->query("INSERT INTO `forum_kat` SET `name`='".$_POST['name']."'");
        $idk = $db->insert_id;
        success('Раздел успешно создан!');
        ?>
        <div class="nvg">
            <a href="/forum/kat/<?=$idk?>">Перейти в раздел</a><br/>
            <a href="/forum">Перейти в форум</a><br/>
            <a href="/admin/forum">Админка форума</a>
        </div>
        <?
        include_once($_SERVER["DOCUMENT_ROOT"].'/style/foot.php');
        exit();
    }
    ?>
    <div class="text">
        <form action="" method="POST">
            Название:<br/>
            <input type="text" name="name"><br/>
            <input type="submit" name="ok" value="Создать">
        </form>
    </div>
    <?
    break;
    case 'new_psection':
    level(3);
    ?>
    <div class="title">Создание подраздела</div>
    <?
    if(isset($_GET['id'])){
        $_GET['id'] = abs(intval($_GET['id']));
        if($db->query("SELECT `id` FROM `forum_kat` WHERE `id`='".$_GET['id']."'")->num_rows==0){
            error('Раздела с переданным ID не существует!');
        }
        if(isset($_POST['ok'])){
            $_POST['name'] = guard($db->real_escape_string($_POST['name']));
            if(empty($_POST['name'])){
                error('Введите название!');
            }elseif(mb_strlen($_POST['name'])<3 or mb_strlen($_POST['name'])>255){
                error('Название подраздело должно быть не менее 3-х и неболеее 255 символов!');
            }elseif($db->query("SELECT `id` FROM `forum_pkat` WHERE `kat`='".$_GET['id']."' AND `name`='".$_POST['name']."'")->num_rows!=0){
                error('В данном разделе уже существует подраздел с таким названием!');
            }
            $db->query("INSERT INTO `forum_pkat` SET `kat`='".$_GET['id']."', `name`='".$_POST['name']."'");
            $idpk = $db->insert_id;
            success('Подраздел успешно создан!');
            ?>
            <div class="nvg">
                <a href="/forum/pkat/<?=$idpk?>">В подраздел</a><br/>
                <a href="/forum/kat/<?=$_GET['id']?>">В раздел</a><br/>
                <a href="/forum">Перейти в форум</a><br/>
                <a href="/admin/forum">Админка форума</a>
            </div>
            <?
            include_once($_SERVER["DOCUMENT_ROOT"].'/style/foot.php');
            exit();
        }
        ?>
        <div class="text">
            <form action="" method="POST">
                Навзание:<br/>
                <input type="text" name="name"><br/>
                <input type="submit" name="ok" value="Создать">
            </form>
        </div>
        <?
    }
    ?>
    <div class="text">
        <form action="" method="GET">
            ID раздела:<br/>
            <input type="text" name="id"><br/>
            <input type="submit" name="ok" value="Ввести">
        </form>
    </div>
    <?
    break;
    case 'edit_kat':
    level(3);
    ?>
    <div class="title">Редактирование раздела</div>
    <?
    if(isset($_GET['id'])){
        $_GET['id'] = abs(intval($_GET['id']));
        if($db->query("SELECT `id` FROM `forum_kat` WHERE `id`='".$_GET['id']."'")->num_rows==0){
            error('Раздела не существует!');
        }
        if(isset($_POST['ok'])){
            $_POST['name'] = guard($db->real_escape_string($_POST['name']));
            if(empty($_POST['name'])){
                error('Введите название!');
            }elseif(mb_strlen($_POST['name'])<3 or mb_strlen($_POST['name'])>255){
                error('Название раздела должно быть не менее 3-х и не более 255 символов!');
            }elseif($db->query("SELECT `id` FROM `forum_kat` WHERE `name`='".$_POST['name']."'")->num_rows!=0){
                error('Раздел с таким названием уже существует!');
            }
            $db->query("UPDATE `forum_kat` SET `name`='".$_POST['name']."' WHERE `id`='".$_GET['id']."'");
            success('Раздел успешно изменен!');
        }
        $r = $db->query("SELECT `name` FROM `forum_kat` WHERE `id`='".$_GET['id']."'")->fetch_assoc();
        ?>
        <div class="text">
            <form action="" method="POST">
                Название:<br/>
                <input type="text" name="name" value="<?=$r['name']?>"><br/>
                <input type="submit" name="ok" value="Изменить">
            </form>
        </div>
        <?
        include_once($_SERVER["DOCUMENT_ROOT"].'/style/foot.php');
        exit();
    }
    ?>
    <div class="text">
        <form action="" method="GET">
            <input type="number" name="id"><br/>
            <input typr="submit" name="ok" value="Ввести">
        </form>    
    </div>
    <?
    break;
    case 'edit_pkat':
    level(3);
    ?>
    <div class="title">Редактирование подраздела</div>
    <?
    if(isset($_GET['id'])){
        $_GET['id'] = abs(intval($_GET['id']));
        if($db->query("SELECT `id` FROM `forum_pkat` WHERE `id`='".$_GET['id']."'")->num_rows==0){
            error('Подраздела не существует!');
        }
        $prr=$db->query("SELECT `kat` FROM `forum_pkat` WHERE `id`='".$_GET['id']."'")->fetch_assoc();
        if(isset($_POST['ok'])){
            $_POST['name'] = guard($db->real_escape_string($_POST['name']));
            if(empty($_POST['name'])){
                error('Введите название подраздела!');
            }elseif(mb_strlen($_POST['name'])<3 or mb_strlen($_POST['name'])>255){
                error('Название должно в себе содержать не менее 3 и не более 255 символов!');
            }elseif($db->query("SELECT `id` FROM `forum_pkat` WHERE `name`='".$_POST['name']."' AND `kat`='".$prr['kat']."'")->num_rows!=0){
                error('Подраздел с таким названием в данном разделе уже существует!');
            }
            $db->query("UPDATE `forum_pkat` SET `name`='".$_POST['name']."' WHERE `id`='".$_GET['id']."'");
            success('Подраздел успешно обновлен!');
        }
        $pr = $db->query("SELECT `name` FROM `forum_pkat` WHERE `id`='".$_GET['id']."'")->fetch_assoc();
        ?>
        <div class="text">
            <form action="" method="POST">
                Название:<br/>
                <input type="text" name="name" value="<?=$pr['name']?>"><br/>
                <input type="submit" name="ok" value="Изменить">
            </form>
        </div>
        <?
    }
    ?>
    <div class="text">
        <form action="" method="GET">
            Введите ID подраздела:<br/>
            <input type="number" name="id"><br/>
            <input type="submit" name="ok" value="Ввести">
        </form>
    </div>
    <?
    break;
    
    case 'del_kat':
    level(3);
    ?>
    <div class="title">Удаление раздела</div>
    <?
    if(isset($_GET['id'])){
        $_GET['id'] = abs(intval($_GET['id']));
        if($db->query("SELECT `id` FROM `forum_kat` WHERE `id`='".$_GET['id']."'")->num_rows==0){
            error('Раздела не существует!');
        }
        $db->query("DELETE FROM `forum_kat` WHERE `id`='".$_GET['id']."'");
        $db->query("DELETE FROM `forum_pkat` WHERE `kat`='".$_GET['id']."'");
        $db->query("DELETE FROM `forum_topic` WHERE `kat`='".$_GET['id']."'");
        success('Раздел успешно удален!');
    }
    ?>
    <div class="text">
        <form action="" method="GET">
            Введите ID раздела:<br/>
            <input type="number" name="id"><br/>
            <input type="submit" name="ok" value="Ввести">
        </form>
    </div>
    <?
    break;
    case 'del_pkat':
    level(3);
    ?>
    <div class="title">Удаление подраздела</div>
    <?
    if(isset($_GET['id'])){
        $_GET['id'] = abs(intval($_GET['id']));
        if($db->query("SELECT `id` FROM `forum_pkat` WHERE `id`='".$_GET['id']."'")->num_rows==0){
            error('Подраздела не существует!');
        }
        $db->query("DELETE FROM `forum_pkat` WHERE `id`='".$_GET['id']."'");
        $db->query("DELETE FROM `forum_topic` WHERE `pkat`='".$_GET['id']."'");
        success('Подраздел успешно удален');
    }
    ?>
    <div class="text">
        <form action="" method="GET">
            Введите ID подраздела:<br/>
            <input type="number" name="id"><br/>
            <input type="submit" name="ok" value="Ввести">
        </form>
    </div>
    <?
    break;
    case 'complaint':
    level(1);
    ?><div class="title">Модерация жалоб</div>
    <?
    switch ($_GET['mode']) {
        case 'ok':
            if($db->query("SELECT `id` FROM `forum_complaint` WHERE `id`='".$_GET['id']."' AND `status`='0'")->num_rows==0){
                error('Эта жалоба уже промодерирована!');
            }
            $co = $db->query("SELECT * FROM `forum_complaint` WHERE `id`='".$_GET['id']."'")->fetch_assoc();
            $db->query("UPDATE `forum_complaint` SET `status`='1' WHERE `id`='".$_GET['id']."'");
            $db->query("UPDATE `users` SET `rating`=`rating`+0.01 WHERE `id`='".$co['id_us']."'");
            $db->query("INSERT INTO `notifications` SET `id_us`='".$co['id_us']."', `time`='".time()."', `section`='other', `sender`='".$user['id']."', `text`='одобрил вашу жалобу'");
            $db->query("INSERT INTO `notifications` SET `id_us`='".$co['id_us']."', `time`='".time()."', `section`='rating', `sender`='".$user['id']."', `text`='наградил вас за жалобу (+0.01 рейтинга)'");
            header('location:/admin/forum/complaint');
        break;
        
        case 'no':
        if($db->query("SELECT `id` FROM `forum_complaint` WHERE `id`='".$_GET['id']."' AND `status`='0'")->num_rows==0){
                error('Эта жалоба уже промодерирована!');
            }
            $co = $db->query("SELECT * FROM `forum_complaint` WHERE `id`='".$_GET['id']."'")->fetch_assoc();
            $db->query("UPDATE `forum_complaint` SET `status`='2' WHERE `id`='".$_GET['id']."'");
            $db->query("UPDATE `users` SET `rating`=`rating`-0.01 WHERE `id`='".$co['id_us']."'");
            $db->query("INSERT INTO `notifications` SET `id_us`='".$co['id_us']."', `time`='".time()."', `section`='other', `sender`='".$user['id']."', `text`='отклонил вашу жалобу'");
            $db->query("INSERT INTO `notifications` SET `id_us`='".$co['id_us']."', `time`='".time()."', `section`='rating', `sender`='".$user['id']."', `text`='наказал вас за жалобу (-0.01 рейтинга)'");
            header('location:/admin/forum/complaint');
        break;
        default:
        $nav=new navig("SELECT * FROM `forum_complaint` WHERE `status`='0'");
        $complaint=$db->query("SELECT * FROM `forum_complaint` WHERE `status`='0' ORDER BY `id` DESC LIMIT ".$nav->start.", ".$nav->nstr."");
        while($c=$complaint->fetch_assoc()){
        $p = $db->query("SELECT * FROM `forum_post` WHERE `id`='".$c['id_post']."'")->fetch_assoc();
        $kp = $p['id']/10+1;
        ?>
        <div class="section">
            Жалобу подал - <?=nick($c['id_us'])?> <?=times($c['time'])?><br/>
            Пост:<br/>
            <div class="quote">
                <?=nick($p['id_us'])?><br/>
                <?=times($p['time'])?><br/>
                <?=output($p['text'])?>
            </div>    
            <a href="/forum/topic/<?=$c['id_topic']?>?&page=<?=$kp?>">Перейти к теме</a><br/>
            <a href="/admin/forum/complaint/ok/<?=$c['id']?>">Одобрить</a> <a href="/admin/forum/complaint/no/<?=$c['id']?>">Отклонить</a>
        </div>
        <?
        }
        ?>
        <div class="nvgstr">
        <?
            $nav->panel();
        ?>
        </div>
        <?
        if($db->query("SELECT `id` FROM `forum_complaint` WHERE `status`='0'")->num_rows==0){
            ?>
            <div class="error">Жалоб нет!</div>
            <?
        }
        break;
    }
    break;
}
include_once($_SERVER["DOCUMENT_ROOT"].'/style/foot.php');
?>