Файл: 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');
?>