Файл: php-zona.ru/modules/forum/topic.php
Строк: 287
<?php
$title = 'Тема на форуме';
include_once($_SERVER["DOCUMENT_ROOT"].'/style/head.php');
$_GET['id'] = abs(intval($_GET['id']));
if($db->query("SELECT `id` FROM `forum_topic` WHERE `id`='".$_GET['id']."'")->num_rows==0){
    error('Темы не существует!');
}
$antiflood = $db->query("SELECT `forum_post` FROM `antiflood` WHERE `id`='1'")->fetch_assoc();
$topic = $db->query("SELECT * FROM `forum_topic` WHERE `id`='".$_GET['id']."'")->fetch_assoc();
switch($_GET['act']){
    default:
    if(isset($_POST['ok'])){
        mode('user');
        if($topic['closed']==1){
            error('Тема закрыта.  Вы не можете писать и редактировать посты.');
        }
        $_POST['text'] = guard($db->real_escape_string($_POST['text']));
        if(empty($_POST['text'])){
            error('Введите текст комментария!');
        }elseif(mb_strlen($_POST['text'])<2 or mb_strlen($_POST['text'])>4000){
            error('Текст комментария должен быть не менее 2 и не более 4000 символов!');
        }
        $tim = time()-$antiflood['forum_post'];
        if($db->query("SELECT `id` FROM `forum_post` WHERE `id_us`='".$user['id']."' AND `time`>='".$tim."'")->num_rows!=0){
            error('Посты можно оставлять раз в '.$antiflood['forum_post'].' секунд.');
        }
        $db->query("INSERT INTO `forum_post` SET `id_topic`='".$_GET['id']."', `id_pkat`='".$topic['pkat']."', `id_kat`='".$topic['kat']."', `id_us`='".$user['id']."', `time`='".time()."', `text`='".$_POST['text']."'");
        $db->query("UPDATE `forum_topic` SET `up`='".time()."' WHERE `id`='".$_GET['id']."'");
        if($user['id']!=$topic['id_us']){
            $db->query("INSERT INTO `notifications` SET `id_us`='".$topic['id_us']."', `time`='".time()."', `section`='forum', `sender`='".$user['id']."', `text`='написал в вашей [url=http://".$_SERVER["HTTP_HOST"]."/forum/topic/".$_GET['id']."]теме[/url]'");
        }
        $kp = $db->query("SELECT `id` FROM `forum_post` WHERE `id_topic`='".$_GET['id']."'")->num_rows;
        $d = $kp/10;
        if(!is_int($d)){
            $d = intval($d+1);
        }
        header('location:/forum/topic/'.$topic['id'].'?&page='.$d);
    }
    ?>
    <div class="title">Тема <?=$topic['name']?></div>
    <div class="text">
        <?
        if($user['level']>=1 or $user['id']==$topic['id_us']){
            if($topic['closed']==0){
                ?>
                <a href="/forum/topic/<?=$_GET['id']?>?act=close">Закрыть</a>
                <?
            }else{
                $a = $db->query("SELECT `level` FROM `users` WHERE `id`='".$topic['close_us']."'")->fetch_assoc();
                if($a['level']<=$user['level']){
                    ?>
                    <a href="/forum/topic/<?=$_GET['id']?>?act=open">Открыть</a>
                    <?
                }
            }
            if($user['level']>=1){
                if($topic['top']==0){
                    ?><a href="/forum/topic/<?=$_GET['id']?>?act=top">Закрепить</a> <?
                }else{
                    ?><a href="/forum/topic/<?=$_GET['id']?>?act=detop">Открепить</a> <?
                }
            }
            ?>| <a href="/forum/topic/<?=$_GET['id']?>?act=editt">Редактировать</a><?
        }
        if($user['level']>=1){
            ?>
            | <a href="/forum/topic/<?=$_GET['id']?>?act=delt">Удалить</a><br/>
            <?
        }
        ?>
        <?if(empty($_GET['page']) or $_GET['page']==1){?>
        <br/>
        <?=nick($topic['id_us'])?><br/>
        <?=times($topic['time'])?><br/>
        <?=output($topic['text'])?>
        <?}?>
    </div>
    <?
    $nav=new navig("SELECT * FROM `forum_post` WHERE `id_topic`='".$_GET['id']."'");
    $q = $db->query("SELECT * FROM `forum_post` WHERE `id_topic`='".$_GET['id']."' LIMIT ".$nav->start.", ".$nav->nstr."");
    while($p = $q->fetch_assoc()){
        ?>
        <div class="section">
            <?=nick($p['id_us'])?><br/>
            <?=times($p['time'])?><br/>
            <?if($p['quote']!=0){
                $quote = $db->query("SELECT  * FROM `forum_post` WHERE `id`='".$p['quote']."'")->fetch_assoc();
                ?>
            <div class="quote">
                <?if($quote['del']==1 AND $user['level']<1){?>
                    <?=nick($quote['id_us'])?><br/>
                    <?=times($quote['time'])?><br/>
                    <b>Сообщение удалено!</b>
                <?}else{?>
                    <?=nick($quote['id_us'])?><br/>
                    <?=times($quote['time'])?><br/>
                    <?=output($quote['text'])?>
                <?}?>
            </div>
            <?}?>
            <?if($p['del']==1 AND $user['level']<1){?>
                <b>Сообщение удалено!</b><br/>
            <?}else{?>
                <?=output($p['text'])?><br/>
            <?}?>
            [<font color="green"><?=$p['plus']?></font> / <font color="red"><?=$p['minus']?></font>]
            <?if(isset($user['id']) AND $user['id']!=$p['id_us'] AND $db->query("SELECT `id` FROM `forum_post_rating` WHERE `id_post`='".$p['id']."' AND `id_us`='".$user['id']."'")->num_rows==0){
                ?>
                <a href="/forum/topic/<?=$_GET['id']?>?act=plus&idp=<?=$p['id']?>&page=<?=$_GET['page']?>">+</a> | <a href="/forum/topic/<?=$_GET['id']?>?act=minus&idp=<?=$p['id']?>&page=<?=$_GET['page']?>">-</a>
                <?
            }?>
            <br/>
            <?if($p['id_us']!=$user['id'] AND isset($user['id']) AND $topic['closed']==0){?>
            <a href="/forum/topic/<?=$_GET['id']?>?act=reply&idp=<?=$p['id']?>">[Отв.]</a> <a href="/forum/topic/<?=$_GET['id']?>?act=quote&idp=<?=$p['id']?>">[Цит.]</a> <a href="/forum/topic/<?=$_GET['id']?>?act=complaint&idp=<?=$p['id']?>">[Жал.]</a>
            <?}?>
            <?if($p['id_us']==$user['id'] or $user['level']>=1 AND $topic['closed']==0){?>
            <a href="/forum/topic/<?=$_GET['id']?>?act=edit&idp=<?=$p['id']?>">[Ред.]</a>
            <?}?>
            <?if($user['level']>=1){?>
                <?if($p['del']==0){?>
                    <a href="/forum/topic/<?=$_GET['id']?>?act=del&idp=<?=$p['id']?>">[Уд.]</a>
                <?}?>
                <?if($p['del']==1){?>
                    <a href="/forum/topic/<?=$_GET['id']?>?act=reestablish&idp=<?=$p['id']?>">[Вост.]</a>
                <?}?>
            <?}?>
            <?if($db->query("SELECT `id` FROM `forum_post_edit` WHERE `id_post`='".$p['id']."'")->num_rows!=0){
                $ed = $db->query("SELECT * FROM `forum_post_edit` WHERE `id_post`='".$p['id']."' ORDER BY `id` DESC LIMIT 1")->fetch_assoc();
                ?>
                <hr>
                Сообщение последний раз редактировалось <?=nick($ed['id_us'])?> <?=times($ed['time'])?>
            <?}?>
            <?if($p['del']==1 AND $user['id']>=1){
                $d = $db->query("SELECT * FROM `forum_post_del` WHERE `id_post`='".$p['id']."' ORDER BY `id` DESC LIMIT 1")->fetch_assoc();?>
                <hr>
                Сообщение было удалено <?=nick($d['id_adm'])?> <?=times($d['time'])?>
            <?}?>
            <?if($db->query("SELECT `id` FROM `forum_post_reestablish` WHERE `id_post`='".$p['id']."'")->num_rows!=0){
                $ree = $db->query("SELECT * FROM `forum_post_reestablish` WHERE `id_post`='".$p['id']."'")->fetch_assoc();?>
                <hr>
                Сообщение было восстановлено <?=nick($ree['id_adm'])?> <?=times($ree['time'])?>
            <?}?>
            <?if($db->query("SELECT `id` FROM `forum_files_post` WHERE `id_post`='".$p['id']."'")->num_rows!=0){
                $qw = $db->query("SELECT * FROM `forum_files_post` WHERE `id_post`='".$p['id']."'");
                ?><br/>Файлы:<br/><?
                while($f = $qw->fetch_assoc()){
                ?>
                <a href="/files/forum/post/<?=$f['file']?>"><?=$f['file']?></a><br/>
                <?}
            }?>
        </div>
        <?
    }
    ?>
    <div class="nvgstr">
    <?
    $nav->panel();
    ?>
    </div>
    <?if(isset($user['id'])){
        if($topic['closed']==0){?>
            <div class="text">
                <a href="/others/bb">BB-коды</a> <a href="/others/smile">Смайлы</a> <br/>
                <form action="" method="POST">
                    <textarea name="text"></textarea><br/>
                    <input type="submit" name="ok">
                </form>
            </div>
            <?
        }
    }else{
        ?>
        <div class="error">Комментарии могут оставлять только авторизованные пользователи!</div>
        <?
    }
    if($topic['closed']!=0){
        ?>
        <div class="section">
            Тема была закрыта <?=nick($topic['closed_us'])?> <?=times($topic['closed_time'])?><br/>
            По причине:<br/>
            <?=output($topic['closed_reason'])?>
        </div>
        <?
    }
    break;
    case 'reply':
    mode('user');
    $_GET['idp'] = abs(intval($_GET['idp']));
    if($db->query("SELECT `id` FROM `forum_post` WHERE `id`='".$_GET['idp']."'")->num_rows==0){
        error('Поста не существует!');
    }
    $p = $db->query("SELECT `id_us` FROM `forum_post` WHERE `id`='".$_GET['idp']."'")->fetch_assoc();
    $us = $db->query("SELECT `nick` FROM `users` WHERE `id`='".$p['id_us']."'")->fetch_assoc();
    if($p['id_us']==$user['id']){
        error('Самому с собой разговаривать не нормально...');
    }
    if($topic['closed']==1){
        error('Тема закрыта.  Вы не можете писать и редактировать посты.');
    }
    if(isset($_POST['ok'])){
        $_POST['text'] = guard($db->real_escape_string($_POST['text']));
        if(empty($_POST['text'])){
            error('Введите текст ответа!');
        }elseif(mb_strlen($_POST['text'])<2 or mb_strlen($_POST['text'])>4000){
            error('Текст комментария должен быть не менее 2 и не более 4000 символов!');
        }
        if($db->query("SELECT `id` FROM `forum_post` WHERE `id_us`='".$user['id']."' AND `time`>=".time()-$antiflood['forum_post']."")->num_rows!=0){
            error('Посты можно оставлять раз в '.$antiflood['forum_post'].' секунд.');
        }
        $db->query("INSERT INTO `forum_post` SET `id_topic`='".$topic['id']."', `id_pkat`='".$topic['pkat']."', `id_kat`='".$topic['kat']."', `id_us`='".$user['id']."', `time`='".time()."', `text`='".$_POST['text']."'");
        $db->query("INSERT INTO `notifications` SET `id_us`='".$p['id_us']."', `time`='".time()."', `section`='forum', `sender`='".$user['id']."', `text`='ответил вам в комментариях к [url=http://".$_SERVER["HTTP_HOST"]."/forum/topic/".$_GET['id']."]теме[/url]'");
        if($user['id']!=$topic['id_us']){
            $db->query("INSERT INTO `notifications` SET `id_us`='".$topic['id_us']."', `time`='".time()."', `section`='forum', `sender`='".$user['id']."', `text`='написал в вашей [url=http://".$_SERVER["HTTP_HOST"]."/forum/topic/".$_GET['id']."]теме[/url]'");
        }
        $db->query("UPDATE `forum_topic` SET `up`='".time()."' WHERE `id`='".$_GET['id']."'");
        $kp = $db->query("SELECT `id` FROM `forum_post` WHERE `id_topic`='".$_GET['id']."'")->num_rows;
        $d = $kp/10;
        if(!is_int($d)){
            $d = intval($d+1);
        }
        header('location:/forum/topic/'.$topic['id'].'?&page='.$d);
    }
    ?>
    <div class="title">Ответ на пост</div>
    <div class="text">
        <a href="/others/bb">BB-коды</a> <a href="/others/smile">Смайлы</a><br/>
        <form action="" method="POST">
            Ваше сообщение:<br/>
            <textarea name="text">[b]<?=$us['nick']?>[/b], </textarea><br/>
            <input type="submit" name="ok" value="Ответить">
        </form>
    </div>
    <?
    break;
    case 'quote':
    mode('user');
    $_GET['idp'] = abs(intval($_GET['idp']));
    if($db->query("SELECT `id` FROM `forum_post` WHERE `id`='".$_GET['idp']."'")->num_rows==0){
        error('Поста не существует!');
    }
    $p = $db->query("SELECT * FROM `forum_post` WHERE `id`='".$_GET['idp']."'")->fetch_assoc();
    if($p['id_us']==$user['id']){
        error('Самому с собой разговаривать не нормально...');
    }
    if($topic['closed']==1){
        error('Тема закрыта.  Вы не можете писать и редактировать посты.');
    }
    if(isset($_POST['ok'])){
        $_POST['text'] = guard($db->real_escape_string($_POST['text']));
        if(empty($_POST['text'])){
            error('Введите текст ответа!');
        }elseif(mb_strlen($_POST['text'])<2 or mb_strlen($_POST['text'])>4000){
            error('Текст комментария должен быть не менее 2 и не более 4000 символов!');
        }
        if($db->query("SELECT `id` FROM `forum_post` WHERE `id_us`='".$user['id']."' AND `time`>=".time()-$antiflood['forum_post']."")->num_rows!=0){
            error('Посты можно оставлять раз в '.$antiflood['forum_post'].' секунд.');
        }
        $db->query("INSERT INTO `forum_post` SET `id_topic`='".$_GET['id']."', `id_pkat`='".$topic['pkat']."', `id_kat`='".$topic['kat']."', `id_us`='".$user['id']."', `time`='".time()."', `text`='".$_POST['text']."', `quote`='".$_GET['idp']."'");
        $db->query("INSERT INTO `notifications` SET `id_us`='".$p['id_us']."', `time`='".time()."', `section`='forum', `sender`='".$user['id']."', `text`='процитировал ваш пост в теме [url=http://".$_SERVER["HTTP_HOST"]."/forum/topic/".$_GET['id']."]теме[/url]'");
        if($user['id']!=$topic['id_us']){
            $db->query("INSERT INTO `notifications` SET `id_us`='".$topic['id_us']."', `time`='".time()."', `section`='forum', `sender`='".$user['id']."', `text`='написал в вашей [url=http://".$_SERVER["HTTP_HOST"]."/forum/topic/".$_GET['id']."]теме[/url]'");
        }
        $db->query("UPDATE `forum_topic` SET `up`='".time()."' WHERE `id`='".$_GET['id']."'");
        $kp = $db->query("SELECT `id` FROM `forum_post` WHERE `id_topic`='".$_GET['id']."'")->num_rows;
        $d = $kp/10;
        if(!is_int($d)){
            $d = intval($d+1);
        }
        header('location:/forum/topic/'.$topic['id'].'?&page='.$d);
    }
    ?>
    <div class="title">Цитирование поста</div>
    <div class="text">
        <div class="quote">
            <?=nick($p['id_us'])?><br/>
            <?=times($p['time'])?><br/>
            <?=output($p['text'])?><br/>
        </div>
        <a href="/others/bb">BB-коды</a> <a href="/others/smile">Смайлы</a><br/>
        <form action="" method="POST">
            Ваше сообщение:<br/>
            <textarea name="text"></textarea><br/>
            <input type="submit" name="ok">
        </form>
    </div>
    <?
    break;
    case 'edit':
    mode('user');
    $_GET['idp'] = abs(intval($_GET['idp']));
    if($db->query("SELECT `id` FROM `forum_post` WHERE `id`='".$_GET['idp']."'")->num_rows==0){
        error('Поста не существует!');
    }
    $post = $db->query("SELECT * FROM `forum_post` WHERE `id`='".$_GET['idp']."'")->fetch_assoc();
    if($user['id']!=$post['id_us'] AND $user['level']<1){
        error('У вас нет прав для просмотра данной страницы!');
    }
    if($topic['closed']==1 AND $user['level']<1){
        error('Тема закрыта.  Вы не можете писать и редактировать посты.');
    }
    if(isset($_POST['ok'])){
        $_POST['text'] = guard($db->real_escape_string($_POST['text']));
        if(empty($_POST['text'])){
            error('Введите текст ответа!');
        }elseif(mb_strlen($_POST['text'])<2 or mb_strlen($_POST['text'])>4000){
            error('Текст комментария должен быть не менее 2 и не более 4000 символов!');
        }
        $db->query("UPDATE `forum_post` SET `text`='".$_POST['text']."' WHERE `id`='".$_GET['idp']."'");
        $db->query("INSERT INTO `forum_post_edit` SET `id_post`='".$_GET['idp']."', `id_us`='".$user['id']."', `time`='".time()."'");
        if($post['id_us']!=$user['id']){
            $db->query("INSERT INTO `notifications` SET `id_us`='".$post['id_us']."', `time`='".time()."', `section`='forum', `sender`='".$user['id']."', `text`='отредактировал ваш пост в [url=http://".$_SERVER["HTTP_HOST"]."/forum/topic/".$_GET['id']."]теме[/url]'");
        }
        success('Комментарий успешно отредактирован!');
    }
    if(isset($_POST['okf'])){
    if($_POST['imp']==imp){
        $_POST['import'] = guard($db->real_escape_string($_POST['import']));
        if (!@fopen($_POST['import'], 'r')){
            error('Файла не существует!');
        }
        $gh = get_headers($_POST['import'], 1);
        $maxsize = 100; // Максимальный размер файла,в мегабайтах
        $size = $gh['Content-Length']; // Вес файла
        if ($size > (1048576 * $maxsize)){
            error('Допустимый размер загружаемого файла '.$maxsize.' мб.');
        }
        $info_url = pathinfo($_POST['import']);
        $filetype = array(
            'jpg',
            'gif',
            'png',
            'jpeg',
            '3gp',
            'mp4',
            'mp3',
            'flv',
            'zip',
            'rar');
        /* Если тип файла не подходит */
        if (!in_array($info_url['extension'], $filetype))
        {
            error('Тип файла не подходит!');
        }
        $file = $_SERVER["HTTP_HOST"].'_'.rand(0,99).'_'.time().'.'.$info_url['extension'];
        if (!copy($_POST['import'], '../../files/forum/post/'.$file.'')){
            error('Ошибка в копировании на сервер!');
        }
        $db->query("INSERT INTO `forum_files_post` SET `id_post`='".$_GET['idp']."', `file`='".$file."'");
           success('Файл успешно загружен.');
    }else{
        $size = $_FILES['file']['size'];
        $max = 100;
        $filetype = array(
            'jpg',
            'gif',
            'png',
            'jpeg',
            '3gp',
            'mp4',
            'mp3',
            'flv',
            'zip',
            'rar');
        $upfiletype = substr($_FILES['file']['name'], strrpos($_FILES['file']['name'], ".") + 1);
        if(!@file_exists($_FILES['file']['tmp_name']) AND $_POST['imp']!=imp){
            error('Выберите файл!');
        }elseif($size > (1048576 * $max)){
            error('Вес файла должен быть не более '.$max.' мб.');
        }elseif(!in_array($upfiletype, $filetype)){
            error('Файл данного формата загржать запрещено!');
        }
        $file = $_SERVER["HTTP_HOST"].'_'.rand(0,999999).'_'.$_FILES['file']['name'];
        move_uploaded_file($_FILES['file']['tmp_name'], "../../files/forum/post/".$file."");
        $db->query("INSERT INTO `forum_files_post` SET `id_post`='".$_GET['idp']."', `file`='".$file."'");
        success('Файл успешно загружен.');
    }
}    
    $post = $db->query("SELECT * FROM `forum_post` WHERE `id`='".$_GET['idp']."'")->fetch_assoc();
    ?>
    <div class="title">Редактирование поста</div>
    <div class="text">
        <a href="/others/bb">BB-коды</a> <a href="/others/smile">Смайлы</a><br/>
        <form action="" method="POST">
            Содержание:<br/>
            <textarea name="text"><?=$post['text']?></textarea><br/>
            <input type="submit" name="ok" value="Сохранить">
        </form>
    </div>
    <div class="title">Файлы [<?=$db->query("SELECT `id` FROM `forum_files_post` WHERE `id_post`='".$_GET['idp']."'")->num_rows?>]</div>
    <?
    $q = $db->query("SELECT * FROM `forum_files_post` WHERE `id_post`='".$_GET['idp']."'");
    while($f = $q->fetch_assoc()){
        ?>
        <div class="section"><a href="/files/forum/post/<?=$f['file']?>"><?=$f['file']?></a> <a href="/forum/topic/<?=$_GET['id']?>?act=delfile&idf=<?=$f['id']?>">[Уд.]</a></div>
        <?
    }
    if($db->query("SELECT `id` FROM `forum_files_post` WHERE `id_post`='".$_GET['idp']."'")->num_rows==0){
            ?><div class="error">Прикрепленных файлов нет!</div><?
        }
        ?>
        <div class="text">
            <form action="" method="POST" enctype="multipart/form-data">
                Выберите файл:<br/>
                <input type="file" name="file"><br/>
                <input type="radio" name="imp" value="imp"> Импорт:<br/>
                Файл:<br/>
                <input type="text" name="import" value="http://"><br/>
                <input type="submit" name="okf" value="Прикрепить">
            </form>
        </div>
        <?
    break;
    case 'del':
    level(1);
    $_GET['idp'] = abs(intval($_GET['idp']));
    if($db->query("SELECT `id` FROM `forum_post` WHERE `id`='".$_GET['idp']."'")->num_rows==0){
        error('Поста не существует!');
    }
    if($db->query("SELECT `id` FROM `forum_post` WHERE `id`='".$_GET['idp']."' AND `del`='1'")->num_rows!=0){
        error('Пост уже удален!');
    }
    $p = $db->query("SELECT `id_us` FROM `forum_post` WHERE `id`='".$_GET['idp']."'")->fetch_assoc();
    $u = $db->query("SELECT `level` FROM `users` WHERE `id`='".$p['id_us']."'")->fetch_assoc();
    if($user['level']<=$t['level']){
        error('У вас нет прав для удаления данного поста!');
    }
    $db->query("UPDATE `forum_post` SET `del`='1' WHERE `id`='".$_GET['idp']."'");
    $db->query("INSERT INTO `forum_post_del` SET `id_post`='".$_GET['idp']."', `id_adm`='".$user['id']."', `time`='".time()."'");
    $kp = $db->query("SELECT `id` FROM `forum_post` WHERE `id_topic`='".$_GET['id']."'")->num_rows;
    $x = $_GET['idp']/10+1;
    $db->query("INSERT INTO `notifications` SET `id_us`='".$p['id_us']."', `time`='".time()."', `section`='forum', `sender`='".$user['id']."', `text`='удалил ваш пост в [url=http://".$_SERVER["HTTP_HOST"]."/forum/topic/".$_GET['id']."?&page=".$x."]теме[/url]'");
    $d = $kp/10;
    if(!is_int($d)){
        $d = intval($d+1);
    }
    header('location:/forum/topic/'.$topic['id'].'?&page='.$d);
    break;
    case 'reestablish':
    level(1);
    $_GET['idp'] = abs(intval($_GET['idp']));
    if($db->query("SELECT `id` FROM `forum_post` WHERE `id`='".$_GET['idp']."'")->num_rows==0){
        error('Поста не существует!');
    }
    if($db->query("SELECT `id` FROM `forum_post` WHERE `id`='".$_GET['idp']."' AND `del`='0'")->num_rows!=0){
        error('Пост не был удален или был восстановлен!');
    }
    $p = $db->query("SELECT `id_us` FROM `forum_post` WHERE `id`='".$_GET['idp']."'")->fetch_assoc();
    $d = $db->query("SELECT `id_adm` FROM `forum_post_del` WHERE `id_post`='".$_GET['idp']."' ORDER BY `id` DESC LIMIT 1")->fetch_assoc();
    $a = $db->query("SELECT `level` FROM `users` WHERE `id`='".$d['id_adm']."'")->fetch_assoc();
    if($user['level']<$a['level']){
        error('У вас нет прав для восстановления даного поста!');
    }
    $db->query("UPDATE `forum_post` SET `del`='0' WHERE `id`='".$_GET['idp']."'");
    $db->query("DELETE FROM `forum_post_del` WHERE `id_post`='".$_GET['idp']."'");
    $db->query("INSERT INTO `forum_post_reestablish` SET `id_post`='".$_GET['idp']."', `id_adm`='".$user['id']."', `time`='".time()."'");
    $x = $_GET['idp']/10+1;
    $db->query("INSERT INTO `notifications` SET `id_us`='".$p['id_us']."', `time`='".time()."', `section`='forum', `sender`='".$user['id']."', `text`='восстановил ваш пост в [url=http://".$_SERVER["HTTP_HOST"]."/forum/topic/".$_GET['id']."?&page=".$x."]теме[/url]'");
    $d = $kp/10;
    if(!is_int($d)){
        $d = intval($d+1);
    }
    header('location:/forum/topic/'.$topic['id'].'?&page='.$d);
    break;
    case 'complaint':
    mode('user');
    $_GET['idp'] = abs(intval($_GET['idp']));
    if($db->query("SELECT `id` FROM `forum_post` WHERE `id`='".$_GET['idp']."'")->num_rows==0){
        error('Поста не существует!');
    }
    $db->query("INSERT INTO `forum_complaint` SET `id_us`='".$user['id']."', `id_post`='".$_GET['idp']."', `id_topic`='".$_GET['id']."', `time`='".time()."'");
    success('Жалоба успешно отправлена, ожидайте модерации.');
    break;
    case 'close':
    mode('user');
    if($user['level']<1 AND $user['id']!=$topic['id_us']){
        error('У вас нет прав для просмотра данной страницы!');
    }
    if(isset($_POST['ok'])){
        $_POST['reason'] = guard($db->real_escape_string($_POST['reason']));
        if(empty($_POST['reason'])){
            error('Введите причину закрытия темы!');
        }elseif(mb_strlen($_POST['reason'])<5 or mb_strlen($_POST['reason'])>500){
            error('Причина закрытия темы дожна содержать в себе не менее 5 и не более 500 символов!');
        }
        $u = $db->query("SELECT `level` FROM `users` WHERE `id`='".$topic['id_us']."'")->fetch_assoc();
        if($u['level']>=$user['level']){
            error('Вы не можете закрывать темы пользователей, которые выше вас по рангу!');
        }
        $db->query("UPDATE `forum_topic` SET `closed`='1', `closed_reason`='".$_POST['reason']."', `closed_us`='".$user['id']."', `closed_time`='".time()."' WHERE `id`='".$_GET['id']."'");
        if($user['id']!=$topic['id_us']){
            $db->query("INSERT INTO `notifications` SET `id_us`='".$topic['id_us']."', `time`='".time()."', `section`='forum', `sender`='".$user['id']."', `text`='закрыл вашу [url=http://".$_SERVER["HTTP_HOST"]."/forum/topic/".$_GET['id']."]тему[/url]'");
            header('location:/forum/topic/'.$_GET['id']);
        }
    }
    ?>
    <div class="text">
        <form action="" method="POST">
            <a href="/others/bb">BB-коды</a> <a href="/others/smile">Смайлы</a><br/>
            Причина закрытия:<br/>
            <textarea name="reason"></textarea><br/>
            <input type="submit" name="ok" value="Закрыть">
        </form>
    </div>
    <?
    break;
    case 'open':
    mode('user');
    if($topic['id_us']!=$user['id'] AND $user['level']<1){
        error('У вас нет прав для просмотра данной страницы!');
    }
    $a = $db->query("SELECT `level` FROM `users` WHERE `id`='".$topc['close_us']."'")->fetch_assoc();
    if($a['level']>$user['level']){
        error('Тема бла закрыта пользователем, который выше вас по рангу!');
    }
    $db->query("UPDATE `forum_topic` SET `closed`='0', `closed_reason`='".$_POST['reason']."', `closed_us`='".$user['id']."', `closed_time`='".time()."' WHERE `id`='".$_GET['id']."'");
        if($user['id']!=$topic['id_us']){
            $db->query("INSERT INTO `notifications` SET `id_us`='".$topic['id_us']."', `time`='".time()."', `section`='forum', `sender`='".$user['id']."', `text`='открыл вашу [url=http://".$_SERVER["HTTP_HOST"]."/forum/topic/".$_GET['id']."]тему[/url]'");
            header('location:/forum/topic/'.$_GET['id']);
        }
    break;
    case 'delt':
    level(1);
    if($db->query("SELECT `id` FROM `forum_topic` WHERE `id`='".$_GET['id']."'")->num_rows==0){
        error('Темы не существует!');
    }
    $u = $db->query("SELECT `level` FROM `users` WHERE `id`='".$topic['id_us']."'")->fetch_assoc();
    if($u['level']>$user['level']){
        error('У вас нет прав для удаления этой темы.');
    }
    $db->query("DELETE FROM `forum_topic` WHERE `id`='".$_GET['id']."'");
    $db->query("DELETE FROM `forum_post` WHERE `id_topic`='".$_GET['id']."'");
    if($topic['id_us']!=$user['id']){
        $db->query("INSERT INTO `notifications` SET `id_us`='".$topic['id_us']."', `time`='".time()."', `section`='forum', `sender`='".$user['id']."', `text`='удалил вашу тему (".$topic['name'].")'");
    }
    success('Тема успешно удалена!');
    break;
    case 'editt':
    if($db->query("SELECT `id` FROM `forum_topic` WHERE `id`='".$_GET['id']."'")->num_rows==0){
        error('Темы не существует!');
    }
    if($user['level']<1 AND $user['id']!=$topic['id_us']){
        error('У вас нет прав для просмотра данной страницы!');
    }
    if(isset($_POST['ok'])){
        $_POST['name'] = guard($db->real_escape_string($_POST['name']));
        $_POST['text'] = guard($db->real_escape_string($_POST['text']));
        if(empty($_POST['name'])) {
            error('Введите название!');
        }elseif(mb_strlen($_POST['name'])<2 or mb_strlen($_POST['name'])>255) {
            error('Название темы должно быть не менее 2 и не более 255 символов!');
        }elseif (empty($_POST['text'])) {
            error('Введите содержание темы!');
        }elseif(mb_strlen($_POST['text'])<10 or mb_strlen($_POST['text'])>4000) {
            error('Содержание темы должно быть не менее 10 и не более 4000 символов!');
        }
        $db->query("UPDATE `forum_topic` SET `name`='".$_POST['name']."', `text`='".$_POST['text']."' WHERE `id`='".$_GET['id']."'");
        success('Тема успешно изменена!');
    }
    $t = $db->query("SELECT `name`, `text` FROM `forum_topic` WHERE `id`='".$_GET['id']."'")->fetch_assoc();
    ?>
    <div class="text">
        <form action="" method="POST">
            <a href="/others/bb">BB-коды</a> <a href="/others/smile">Смайлы</a><br/>
            Название:<br/>
            <input type="text" name="name" value="<?=$t['name']?>"><br/>
            Содержание:<br/>
            <textarea name="text"><?=$t['text']?></textarea><br/>
            <input type="submit" name="ok" value="Изменить">
        </form>
    </div>
    <?
    break;
    case 'delfile':
    mode('user');
    $_GET['idf'] = abs(intval($_GET['idf']));
    if($db->query("SELECT `id` FROM `forum_files_post` WHERE `id`='".$_GET['idf']."'")->num_rows==0){
        error('Файла не существует!');
    }
    $file = $db->query("SELECT * FROM `forum_files_post` WHERE `id`='".$_GET['idf']."'")->fetch_assoc();
    $p = $db->query("SELECT `id_us` FROM `forum_post` WHERE `id`='".$file['id_post']."'")->fetch_assoc();
    if($p['id_us']!=$user['id'] AND $user['level']<1){
        error('У вас нет прав для просмотра даной страницы!');
    }
    $db->query("DELETE FROM `forum_files_post` WHERE `id`='".$_GET['idf']."'");
    unlink('../../files/forum/post/'.$file['file']);
    header('location:/forum/topic/'.$_GET['id'].'?act=edit&idp='.$file['id_post']);
    break;
    case 'plus':
    mode('user');
    $_GET['page'] = abs(intval($_GET['page']));
    if($_GET['page']==0){
        $_GET['page'] = 1;
    }
    $_GET['idp'] = abs(intval($_GET['idp']));
    if($db->query("SELECT `id` FROM `forum_post` WHERE `id`='".$_GET['idp']."'")->num_rows==0){
        error('Поста не существует!');
    }
    if($db->query("SELECT `id` FROM `forum_post_rating` WHERE `id_post`='".$_GET['idp']."' AND `id_us`='".$user['id']."'")->num_rows!=0){
        error('Вы уже голосовали!');
    }
    $post = $db->query("SELECT * FROM `forum_post` WHERE `id`='".$_GET['idp']."'")->fetch_assoc();
    if($post['id_us']==$user['id']){
        error('За свой пост голосовать запрещено!');
    }
    $db->query("UPDATE `users` SET `rating`=`rating`+0.01 WHERE `id`='".$post['id_us']."'");
    $db->query("INSERT INTO `forum_post_rating` SET `id_post`='".$_GET['idp']."', `id_us`='".$user['id']."', `type`='1'");
    $db->query("UPDATE `forum_post` SET `plus`=`plus`+1 WHERE `id`='".$_GET['idp']."'");
    $db->query("INSERT INTO `notififcations` WHERE `id_us`='".$post['id_us']."', `time`='".time()."', `section`='rating', `sender`='".$user['id']."', `text`='оценил [b]положительно[/b] ваш пост в [url=http://".$_SERVER["HTTP_HOST"]."/forum/topic/".$post['id_topic']."?&page=".$_GET['page']."]теме[/url]'");
    header('location:/forum/topic/'.$_GET['id'].'?&page='.$_GET['page']);
    break;
    case 'minus':
    mode('user');
    $_GET['page'] = abs(intval($_GET['page']));
    if($_GET['page']==0){
        $_GET['page'] = 1;
    }
    $_GET['idp'] = abs(intval($_GET['idp']));
    if($db->query("SELECT `id` FROM `forum_post` WHERE `id`='".$_GET['idp']."'")->num_rows==0){
        error('Поста не существует!');
    }
    if($db->query("SELECT `id` FROM `forum_post_rating` WHERE `id_post`='".$_GET['idp']."' AND `id_us`='".$user['id']."'")->num_rows!=0){
        error('Вы уже голосовали!');
    }
    $post = $db->query("SELECT * FROM `forum_post` WHERE `id`='".$_GET['idp']."'")->fetch_assoc();
    if($post['id_us']==$user['id']){
        error('За свой пост голосовать запрещено!');
    }
    $db->query("UPDATE `users` SET `rating`=`rating`-0.01 WHERE `id`='".$post['id_us']."'");
    $db->query("INSERT INTO `forum_post_rating` SET `id_post`='".$_GET['idp']."', `id_us`='".$user['id']."', `type`='2'");
    $db->query("UPDATE `forum_post` SET `minus`=`minus`+1 WHERE `id`='".$_GET['idp']."'");
    $db->query("INSERT INTO `notififcations` WHERE `id_us`='".$post['id_us']."', `time`='".time()."', `section`='rating', `sender`='".$user['id']."', `text`='оценил [b]отрицательно[/b] ваш пост в [url=http://".$_SERVER["HTTP_HOST"]."/forum/topic/".$post['id_topic']."?&page=".$_GET['page']."]теме[/url]'");
    header('location:/forum/topic/'.$_GET['id'].'?&page='.$_GET['page']);
    break;
    case 'top':
    level(1);
    $_GET['id'] = abs(intval($_GET['id']));
    if($db->query("SELECT `id` FROM `forum_topic` WHERE `id`='".$_GET['id']."'")->num_rows==0){
        error('Топика не существует!');
    }
    $db->query("UPDATE `forum_topic` SET `top`='1' WHERE `id`='".$_GET['id']."'");
    header('location:/forum/topic/'.$_GET['id']);
    break;
    case 'detop':
    level(1);
    $_GET['id'] = abs(intval($_GET['id']));
    if($db->query("SELECT `id` FROM `forum_topic` WHERE `id`='".$_GET['id']."'")->num_rows==0){
        error('Топика не существует!');
    }
    $db->query("UPDATE `forum_topic` SET `top`='0' WHERE `id`='".$_GET['id']."'");
    header('location:/forum/topic/'.$_GET['id']);
    break;
}
include_once($_SERVER["DOCUMENT_ROOT"].'/style/foot.php');
?>