<?php
// by mides, wmclub.mobi
require('../config.php');
require('../includes/sys.php');
require('../includes/start.php');
switch($_GET['act']){
###############################################################################
## Главная страница ##
###############################################################################
default:
$id = intval($_REQUEST['id']);
$topic = mysql_fetch_assoc(mysql_query("SELECT `id_cat`, `id_subcat`, `title`, `id_user`, `closed` FROM `forum_topics` WHERE `id` = '$id'"));
if($topic['title']){
$title = $topic['title'].' - Форум';
require('../includes/header.php');
tp($topic['title']);
$all_msg = mysql_result(mysql_query("SELECT COUNT(`id`) FROM `forum_msg` WHERE `id_topic` = '$id'"), 0);
$pages = ceil($all_msg/$config['onpage']);
if(intval($_REQUEST['page'])){
$page = intval($_REQUEST['page']);
}else{
$page = 1;
}
$from = ($page-1)*$config['onpage'];
$r_msg = mysql_query("SELECT `id`, `id_user`, `text`, `time` FROM `forum_msg` WHERE `id_topic` = '$id' ORDER BY `time` LIMIT $from, $config[onpage]");
while($msg = mysql_fetch_assoc($r_msg)){
echo '<a href="../pages/profile.php?u='.$msg['id_user'].'">'.login($msg['id_user']).'</a> '.on($msg['id_user'], date('d.m.y, H:i', $msg['time'])).' <a href="?act=msg_reply&id='.$msg['id'].'">Отв</a>';
if($msg['id_user'] == $u['id'] or $u['user_access'] > 0){
if($msg['time'] + 360 > time() or $u['user_access'] > 0){
echo '|<a href="?act=msg_edit&id='.$msg['id'].'">Ред</a>|<a href="?act=msg_del&id='.$msg['id'].'">Уд</a>';
}
}
echo '<br />';
echo bb($msg['text']).'<hr />';
}
if($u['id']){
if($topic['id_user'] == $u['id'] or $u['user_access'] > 0){
if(empty($topic['closed'])){
echo '<a href="?act=close&id='.$id.'">Закр</a><br />';
}else{
echo '<a href="?act=open&id='.$id.'">Откр</a><br />';
}
}
echo '<hr />';
}
if($u['id']){
if(empty($topic['closed']) or $u['user_access'] > 0){
echo '<form action="?act=msg_add&id='.$id.'" method="post" name="form">
Сообщение(max500):<br /><textarea name="text" cols="" rows="3"></textarea>
<input name="submit" type="submit" value="Ok" />
</form>';
}else{
echo 'Выбранная тема закрыта для обсуждения!';
}
}
echo '<hr />';
navig($page, '?id='.$id.'&', $pages);
echo '<a href="index.php?act=subcat&id='.$topic['id_subcat'].'">Назад</a><br />
<a href="index.php?act=cat&id='.$topic['id_cat'].'">Назад в раздел</a><br />
<a href="../">На главную</a><br />
</div>';
}else{
require('../includes/header.php');
$title = 'Форум';
error('Выбранная тема не существует!');
nav('./');
}
break;
###############################################################################
## Добавление сообщения ##
###############################################################################
case 'msg_add':
$title = 'Форум';
require('../includes/header.php');
$id = intval($_REQUEST['id']);
if($u['id']){
if($_SESSION['spam'] < time()){
$topic = mysql_fetch_assoc(mysql_query("SELECT `id_cat`, `id_subcat`, `closed` FROM `forum_topics` WHERE `id` = '$id'"));
if($topic['id_cat']){
if(empty($topic['closed']) or $u['user_access'] > 0){
if(!empty($_POST['text'])){
$text = check($_POST['text']);
mb_internal_encoding('UTF-8');
if(mb_strlen($text) <= 500){
mysql_query("UPDATE `forum_topics` SET `last_time` = '".time()."' WHERE `id` = '$id'");
mysql_query("INSERT INTO `forum_msg` SET `id_cat` = '$topic[id_cat]', `id_subcat` = '$topic[id_subcat]', `id_topic` = '$id', `id_user` = '$u[id]', `text` = '$text', `time` = '".time()."'") or die(mysql_error());
mysql_query("UPDATE `users` SET `user_points` = (user_points+1) WHERE `id` = '$u[id]'");
$_SESSION['spam'] = $config['antispam'] + time();
info('Сообщение успешно добавлено!');
$t_msg = mysql_result(mysql_query("SELECT COUNT(`id`) FROM `forum_msg` WHERE `id_topic` = '$id'"), 0);
$last_page = ceil($t_msg/$config['onpage']);
nav('?id='.$id.'&page='.$last_page);
echo '<meta http-equiv="refresh" content="0;URL=?id='.$id.'&page='.$last_page.'" />';
}else{
error('Текст не может содержать больше 1000 символов!');
nav('?id='.$id);
}
}else{
error('Вы не заполнили поля!');
nav('?id='.$id);
}
}else{
error('Выбранная тема закрыта для обсуждения!');
nav('?id='.$id);
}
}else{
error('Выбранная тема существует!');
nav('./');
}
}else{
error('Вы не можете писать чаще, чем раз в '.$config['antispam'].' сек.!');
nav('?id='.$id);
}
}else{
error('Вы не <a href="../pages/login.php">авторизованы</a> для создания новой темы :(');
nav('?id='.$id);
}
break;
###############################################################################
## Форма ответа на сообщение ##
###############################################################################
case 'msg_reply':
$title = 'Форум';
require('../includes/header.php');
$id = intval($_REQUEST['id']);
if($u['id']){
if($_SESSION['spam'] < time()){
$msg = mysql_fetch_assoc(mysql_query("SELECT `id_topic`, `id_user` FROM `forum_msg` WHERE `id` = '$id'"));
if($msg['id_topic']){
$topic = mysql_fetch_assoc(mysql_query("SELECT `closed` FROM `forum_topics` WHERE `id` = '$msg[id_topic]'"));
if(empty($topic['closed']) or $u['user_access'] > 0){
tp('Ответ на сообщение');
echo '<form action="?act=msg_reply_do&id='.$id.'" method="post" name="form">
Сообщение(max500):<br /><textarea name="text" cols="" rows="5">[b]'.login($msg['id_user']).'[/b], </textarea>
<input name="submit" type="submit" value="Ok" /></form>';
nav('?id='.$msg['id_topic']);
}else{
error('Выбранная тема закрыта для обсуждения!');
nav('?id='.$msg['id_topic']);
}
}else{
error('Сообщение, на которое вы хотите ответить не существует!');
nav('./');
}
}else{
error('Вы не можете писать чаще, чем раз в '.$config['antispam'].' сек.!');
nav('?id='.$msg['id_topic']);
}
}else{
error('Вы не <a href="../pages/login.php">авторизованы</a> для ответа на сообщение :(');
nav('?id='.$msg['id_topic']);
}
break;
###############################################################################
## Ответ на сообщение ##
###############################################################################
case 'msg_reply_do':
$title = 'Форум';
require('../includes/header.php');
$id = intval($_REQUEST['id']);
$msg = mysql_fetch_assoc(mysql_query("SELECT `id_cat`, `id_subcat`, `id_topic`, `id_user` FROM `forum_msg` WHERE `id` = '$id'"));
if($u['id']){
if($_SESSION['spam'] < time()){
if($msg['id_topic']){
$topic = mysql_fetch_assoc(mysql_query("SELECT `closed` FROM `forum_topics` WHERE `id` = '$msg[id_topic]'"));
if(empty($topic['closed'])){
if(!empty($_POST['text'])){
mb_internal_encoding('UTF-8');
if(mb_strlen($text) <= 500){
$text = check($_POST['text']);
mysql_query("UPDATE `forum_topics` SET `last_time` = '".time()."' WHERE `id` = '$msg[id_topic]'");
mysql_query("INSERT INTO `forum_msg` SET `id_cat` = '$msg[id_cat]', `id_subcat` = '$msg[id_subcat]', `id_topic` = '$msg[id_topic]', `id_user` = '$u[id]', `text` = '$text', `time` = '".time()."'");
mysql_query("UPDATE `users` SET `user_points` = (user_points+1) WHERE `id` = '$u[id]'");
$_SESSION['spam'] = $config['antispam'] + time();
info('Ответ успешно добавлен.');
$t_msg = mysql_result(mysql_query("SELECT COUNT(`id`) FROM `forum_msg` WHERE `id_topic` = '$msg[id_topic]'"), 0);
$last_page = ceil($t_msg/$config['onpage']);
nav('?id='.$msg['id_topic'].'&page='.$last_page);
echo '<meta http-equiv="refresh" content="0;URL=?id='.$msg['id_topic'].'&page='.$last_page.'" />';
}else{
error('Слишком длинный текст. Не более 500 символов.');
nav('?act=msg_reply&id='.$id);
}
}else{
error('Вы не заполнили поле!');
nav('?act=msg_reply&id='.$id);
}
}else{
error('Выбранная тема закрыта для обсуждения!');
nav('?id='.$msg['id_topic']);
}
}else{
error('Сообщение, на которое вы хотите ответить не существует!');
nav('./');
}
}else{
error('Вы не можете писать чаще, чем раз в '.$config['antispam'].' сек.!');
nav('?id='.$msg['id_topic']);
}
}else{
error('Вы не <a href="../pages/login.php">авторизованы</a> для ответа на сообщение :(');
nav('?id='.$msg['id_topic']);
}
break;
###############################################################################
## Форма редактирования сообщения ##
###############################################################################
case 'msg_edit':
$title = 'Форум';
require('../includes/header.php');
$id = intval($_REQUEST['id']);
if($u['id']){
$msg = mysql_fetch_assoc(mysql_query("SELECT `id`, `id_topic`, `id_user`, `text`, `time` FROM `forum_msg` WHERE `id` = '$id'"));
if(isset($msg['id'])){
if($msg['id_user'] == $u['id'] or $u['user_access'] > 0){
if($msg['time'] + 360 > time() or $u['user_access'] > 0){
$topic = mysql_fetch_assoc(mysql_query("SELECT `closed` FROM `forum_topics` WHERE `id` = '$msg[id_topic]'"));
if(empty($topic['closed']) or $u['user_access'] > 0){
tp('Редактирование сообщения');
echo '<form action="?act=msg_edit_do&id='.$id.'" method="post" name="form">
Сообщение(max500):<br /><textarea name="text" cols="" rows="5">'.$msg['text'].'</textarea>
<input name="submit" type="submit" value="Ok" /></form>';
nav('?id='.$msg['id_topic']);
}else{
error('Выбранная тема закрыта для обсуждения!');
nav('?id='.$msg['id_topic']);
}
}else{
error('Вы уже не можете отредактировать это сообщение!');
nav('?id='.$msg['id_topic']);
}
}else{
error('Выбранное сообщение не принадлежит вам!');
nav('?id='.$msg['id_topic']);
}
}else{
error('Сообщение не существует!');
nav('./');
}
}else{
error('Вы не <a href="../pages/login.php">авторизованы</a> для ответа на сообщение :(');
nav('?id='.$msg['id_topic']);
}
break;
###############################################################################
## Редактирование сообщения ##
###############################################################################
case 'msg_edit_do':
$title = 'Форум';
require('../includes/header.php');
$id = intval($_REQUEST['id']);
if($u['id']){
$msg = mysql_fetch_assoc(mysql_query("SELECT `id`, `id_topic`, `id_user`, `text`, `time` FROM `forum_msg` WHERE `id` = '$id'"));
if(isset($msg['id'])){
if($msg['id_user'] == $u['id'] or $u['user_access'] > 0){
if($msg['time'] + 360 > time() or $u['user_access'] > 0){
$topic = mysql_fetch_assoc(mysql_query("SELECT `closed` FROM `forum_topics` WHERE `id` = '$msg[id_topic]'"));
if(empty($topic['closed']) or $u['user_access'] > 0){
$text = check($_POST['text']);
mysql_query("UPDATE `forum_msg` SET `text` = '$text' WHERE `id` = '$id'");
info('Cообщение успешно отредактировано!');
nav('?id='.$msg['id_topic']);
}else{
error('Выбранная тема закрыта для обсуждения!');
nav('?id='.$msg['id_topic']);
}
}else{
error('Вы уже не можете отредактировать это сообщение!');
nav('?id='.$msg['id_topic']);
}
}else{
error('Выбранное сообщение не принадлежит вам!');
nav('?id='.$msg['id_topic']);
}
}else{
error('Сообщение не существует!');
nav('./');
}
}else{
error('Вы не <a href="../pages/login.php">авторизованы</a> для ответа на сообщение :(');
nav('?id='.$msg['id_topic']);
}
break;
###############################################################################
## Удаление сообщения ##
###############################################################################
case 'msg_del':
$title = 'Форум';
require('../includes/header.php');
$id = intval($_REQUEST['id']);
if($u['id']){
$msg = mysql_fetch_assoc(mysql_query("SELECT `id`, `id_topic`, `id_user`, `time` FROM `forum_msg` WHERE `id` = '$id'"));
if(isset($msg['id'])){
if($msg['id_user'] == $u['id'] or $u['user_access'] > 0){
if($msg['time'] + 360 > time() or $u['user_access'] > 0){
$topic = mysql_fetch_assoc(mysql_query("SELECT `closed` FROM `forum_topics` WHERE `id` = '$msg[id_topic]'"));
if(empty($topic['closed']) or $u['user_access'] > 0){
mysql_query("UPDATE `users` SET `user_points` = (user_points-1) WHERE `id` = '$msg[id_user]'");
mysql_query("DELETE FROM `forum_msg` WHERE `id` = '$id'");
info('Cообщение успешно удалено!');
nav('?id='.$msg['id_topic']);
}else{
error('Выбранная тема закрыта для обсуждения!');
nav('?id='.$msg['id_topic']);
}
}else{
error('Вы уже не можете удалить это сообщение!');
nav('?id='.$msg['id_topic']);
}
}else{
error('Выбранное сообщение не принадлежит вам!');
nav('?id='.$msg['id_topic']);
}
}else{
error('Сообщение не существует!');
nav('./');
}
}else{
error('Вы не <a href="../pages/login.php">авторизованы</a> для ответа на сообщение :(');
nav('?id='.$msg['id_topic']);
}
break;
###############################################################################
## Закрытие темы ##
###############################################################################
case 'close':
$title = 'Форум';
require('../includes/header.php');
$id = intval($_REQUEST['id']);
if($u['id']){
$topic = mysql_fetch_assoc(mysql_query("SELECT `id`, `id_user`, `closed` FROM `forum_topics` WHERE `id` = '$id'"));
if(isset($topic['id'])){
if($topic['id_user'] == $u['id'] or $u['user_access'] > 0){
if(empty($topic['closed'])){
mysql_query("UPDATE `forum_topics` SET `closed` = 1 WHERE `id` = '$id'");
info('Тема успешно закрыта');
nav('?id='.$id);
echo '<meta http-equiv="refresh" content="0;URL=?id='.$id.'" />';
}else{
error('Выбранная уже закрыта!');
}
}else{
error('У вас нет доступа!');
}
}else{
error('Тема не существует!');
nav('./');
}
}else{
error('Вы не <a href="../pages/login.php">авторизованы</a> для закрытия темы :(');
nav('?id='.$msg['id_topic']);
}
break;
###############################################################################
## Открытие темы ##
###############################################################################
case 'open':
$title = 'Форум';
require('../includes/header.php');
$id = intval($_REQUEST['id']);
if($u['id']){
$topic = mysql_fetch_assoc(mysql_query("SELECT `id`, `id_user`, `closed` FROM `forum_topics` WHERE `id` = '$id'"));
if(isset($topic['id'])){
if($topic['id_user'] == $u['id'] or $u['user_access'] > 0){
if(!empty($topic['closed'])){
mysql_query("UPDATE `forum_topics` SET `closed` = 0 WHERE `id` = '$id'");
info('Тема успешно открыта!');
nav('?id='.$id);
echo '<meta http-equiv="refresh" content="0;URL=?id='.$id.'" />';
}else{
error('Выбранная уже открыта!');
}
}else{
error('У вас нет доступа!');
}
}else{
error('Тема не существует!');
nav('./');
}
}else{
error('Вы не <a href="../pages/login.php">авторизованы</a> для открытия темы :(');
nav('?id='.$msg['id_topic']);
}
break;
}
require('../includes/tail.php');
?>