include './system/common.php';
include './system/functions.php';
include './system/user.php';
if(!$user) {
header('location: /');
exit;}
$act = isset($_GET['act']) ? $_GET['act'] : null;
switch($act) {
default:
$title = 'Форум';
include './system/h.php';
echo '
'.$title.'
';
echo' '.$_SESSION['mes'].' ';
$_SESSION['mes']=NULL; //Удаляем сесию
$max = 10;
$count = mysql_result(mysql_query('SELECT COUNT(*) FROM `forum_sub`'),0);
$pages = ceil($count/$max);
$page = _string(_num($_GET['page']));
if($page > $pages) $page = $pages;
if($page < 1) $page = 1;
$start = $page * $max - $max;
if($count > 0) {
$q = mysql_query('SELECT * FROM `forum_sub` WHERE `id` != "7" ORDER BY `id` ASC LIMIT '.$start.', '.$max.'');
while($row = mysql_fetch_array($q)) {
echo '
';
}
echo ' '.pages('/forum/'.$id.'/?').'
';
}else{
echo ' Нет разделов
';
}
if($user['access'] >= '2'){//Создавать может админ и создатель
echo'
';
}
break;
case 'sub':
$id = _string(_num($_GET['id']));
$sub = mysql_fetch_array(mysql_query('SELECT * FROM `forum_sub` WHERE `id` = "'.$id.'" '));
$title = ''.$sub['name'].'';
include './system/h.php';
echo ''.$title.'
';
echo' '.$_SESSION['mes'].' ';
$_SESSION['mes']=NULL; //Удаляем сесию
$max = 10;
$count = mysql_result(mysql_query('SELECT COUNT(*) FROM `forum_topic` WHERE `sub` = "'.$id.'" '),0);
$pages = ceil($count/$max);
$page = _string(_num($_GET['page']));
if($page > $pages) $page = $pages;
if($page < 1) $page = 1;
$start = $page * $max - $max;
if(!$id) {//Переадресация если нет такого раздела
header('Location: /forum/');
exit;}
if($_GET['notified'] == true && $id == '1') { //Убираем уведомление с главной
mysql_query('UPDATE `users` SET `notified` = "1" ');
header('Location: /forum/sub/1');
exit;}
if($count > 0) {
$q = mysql_query('SELECT * FROM `forum_topic` WHERE `sub` = "'.$id.'" ORDER BY `stick` DESC, `id` DESC LIMIT '.$start.', '.$max.'');
while($row = mysql_fetch_array($q)) {
echo '
';
}
echo ''.pages('/forum/sub/'.$id.'/?').'
';
}else{
echo ' Нет топиков
';
}
if($user['access'] >= $sub['access']){ //Доступно для тех у кого достаточно прав
echo'
'.($user['level'] >= '3' ? '':'
Нужен 3-й уровень
').'
';
}
echo'
';
break;
case 'topic':
$id = _string(_num($_GET['id']));
$topic = mysql_fetch_array(mysql_query('SELECT * FROM `forum_topic` WHERE `id` = "'.$id.'" '));
$sub = mysql_fetch_array(mysql_query('SELECT * FROM `forum_sub` WHERE `id` = "'.$topic['sub'].'" '));
$us = mysql_fetch_array(mysql_query('SELECT * FROM `users` WHERE `id` = "'.$topic['user'].'" '));
$title = ''.$topic['name'].'';
include './system/h.php';
echo ''.$title.'
';
if(!$id) {
header('Location: /');
exit;}
echo' '.$_SESSION['mes'].' ';
$_SESSION['mes']=NULL; //Удаляем сесию
if($user['access'] >= 2) {//Доступно для админа и создателя
if($_GET['stick'] == true) {
mysql_query('UPDATE `forum_topic` SET `stick` = "'.($topic['stick'] == 0 ? 1:0).'" WHERE `id` = "'.$topic['id'].'"');
header('location: /forum/topic/'.$topic['id'].'/');
}
if($_GET['close'] == true) {
mysql_query('UPDATE `forum_topic` SET `close` = "'.($topic['close'] == 0 ? 1:0).'" WHERE `id` = "'.$topic['id'].'"');
header('location: /forum/topic/'.$topic['id'].'/');
}
if($_GET['delete'] == true) {
$q = mysql_query('SELECT * FROM `forum_comments` WHERE `topic` = "'.$topic['id'].'"');
while($row = mysql_fetch_array($q)) {
mysql_query('DELETE FROM `forum_comments` WHERE `id` = "'.$row['id'].'"');
}
header('location: /forum/sub/'.$topic['sub'].'/');
mysql_query('DELETE FROM `forum_topic` WHERE `id` = "'.$topic['id'].'"');
}
echo'
';
}
$q = mysql_query('SELECT * FROM `forum_topic` WHERE `id` = "'.$id.'" ORDER BY `id` DESC LIMIT 1');
while($row = mysql_fetch_array($q)) {
echo'
';
}
/////////////////////////////////// Коментарии
//////////////////////////////////
$count = mysql_result(mysql_query('SELECT COUNT(*) FROM `forum_comments` WHERE `topic` = "'.$topic['id'].'"'),0);
echo'
Комментарии: '.$count.'
';
echo'';
if($topic['close'] == 0) {//Написать коментарий
$text = _string($_POST['text']);
$to = _string(_num($_GET['to']));
if($to) {
$_to = mysql_query('SELECT * FROM `users` WHERE `id` = "'.$to.'"');
$_to = mysql_fetch_array($_to);
if(!$_to OR $_to['id'] == $user['id']) {
header('location: /forum/topic/'.$id.'/?page='.$page);
exit;
}
}
if($_to) {
$text = str_replace($_to['login'].', ', '', $text);
}
if($text) {
mysql_query('INSERT INTO `forum_comments` (`topic`,`user`,`to`,`text`,`time`) VALUES ("'.$topic['id'].'", "'.$user['id'].'", "'.$_to['id'].'", "'.$text.'", "'.time().'")');
header('location: /forum/topic/'.$topic['id'].'/?page='.$pages);
}
echo'';
}else{
echo'Топик закрыт';
}
echo'
';
if($count > 0) {//Вывод коментариев
$max = 10;
$pages = ceil($count/$max);
$page = _string(_num($_GET['page']));
if($page > $pages) {$page = $pages;}
if($page < 1) {$page = 1;}
$start = $page * $max - $max;
$q = mysql_query('SELECT * FROM `forum_comments` WHERE `topic` = "'.$topic['id'].'" ORDER BY `id` LIMIT '.$start.', '.$max.'');
while($row = mysql_fetch_array($q)) {
$comment_user = mysql_query('SELECT * FROM `users` WHERE `id` = "'.$row['user'].'"');
$comment_user = mysql_fetch_array($comment_user);
echo'
'.nick($comment_user['id']).'';
if($user['id'] != $comment_user['id']){
echo'
(»)';
}
if($user['access'] >= 2) {//Доступно для админа и создателя
$comment = _string(_num($_GET['comment']));
if($comment) {
mysql_query('DELETE FROM `forum_comments` WHERE `id` = "'.$comment.'"');
header('location: /forum/topic/'.$topic['id'].'/?page='.$page);}
echo'
[x]';
}
echo'
'._times(time() - $row['time']).'';
if($row['to']) {
$__to = mysql_query('SELECT * FROM `users` WHERE `id` = "'.$row['to'].'"');
$__to = mysql_fetch_array($__to);
if($__to['id'] == $user['id']) {
echo'
';
}
echo' '.$__to['login'].', ';
if($__to['id'] == $user['id']) {
echo' ';
}
}
echo'
'.bbcode(smile($row['text'])).'
';
}
echo''.pages('/forum/topic/'.$topic['id'].'/?').'';
}else{
echo' Нет коментариев
';
}
echo'
';
break;
case 'add_sub':
$id = _string(_num($_GET['id']));
$title = 'Создать раздел';
include './system/h.php';
echo ''.$title.'
';
if($user['access'] < 2) {//Пепенаправляем если не админ или не создатель
$_SESSION['mes'] = mes('У вас недостаточно прав!');
header('location: /forum/');
exit;}
$name = _string($_POST['name']);
$access = _string(_num($_POST['access']));
if(isset($_REQUEST['submit']) && $user['access'] >= 2){
if(empty($name) or mb_strlen($name,'UTF-8') < 1){
header("Location: ?");
$_SESSION['mes'] = mes('Введите название!');
header('location: /forum/add_sub/');
exit;}
mysql_query('INSERT INTO `forum_sub` (`name`, `access`) VALUES ("'.$name.'", "'.$access.'")');
$sub_id = mysql_insert_id();
$_SESSION['mes'] = mes('Раздел успешно добавлен!');
header('location: /forum/sub/'.$sub_id.'/');
exit;
}
echo' '.$_SESSION['mes'].' ';
$_SESSION['mes']=NULL; //Удаляем сесию
echo'
';
echo'
';
break;
case 'edit_sub':
$id = _string(_num($_GET['id']));
$sub = mysql_fetch_array(mysql_query('SELECT * FROM `forum_sub` WHERE `id` = "'.$id.'" '));
$title = 'Изменить раздел';
include './system/h.php';
echo ''.$title.'
';
if($user['access'] < 2) {//Пепенаправляем если не админ или не создатель
$_SESSION['mes'] = mes('У вас недостаточно прав!');
header('location: /forum/');
exit;}
$name = _string($_POST['name']);
$access = _string(_num($_POST['access']));
if(isset($_REQUEST['submit']) && $user['access'] >= 2){
mysql_query('UPDATE `forum_sub` SET `name` = "'.$name.'", `access` = "'.$access.'" WHERE `id` = "'.$sub['id'].'"');
$_SESSION['mes'] = mes('Раздел успешно отредактирован!');
header('location: /forum/edit_sub/'.$sub['id'].'/');
exit;
}
echo' '.$_SESSION['mes'].' ';
$_SESSION['mes']=NULL; //Удаляем сесию
echo'
';
echo'
';
break;
case 'del_sub':
$id = _string(_num($_GET['id']));
$sub = mysql_fetch_array(mysql_query('SELECT * FROM `forum_sub` WHERE `id` = "'.$id.'" '));
$title = 'Изменить раздел';
include './system/h.php';
echo ''.$title.'
';
if($user['access'] < 2) {//Пепенаправляем если не админ или не создатель
$_SESSION['mes'] = mes('У вас недостаточно прав!');
header('location: /forum/');
exit;}
if($_GET['delete'] == true) {
$q = mysql_query('SELECT * FROM `forum_topic` WHERE `sub` = "'.$sub['id'].'"');
while($row = mysql_fetch_array($q)) {
mysql_query('DELETE FROM `forum_comments` WHERE `topic` = "'.$row['id'].'"');
}
mysql_query('DELETE FROM `forum_topic` WHERE `sub` = "'.$sub['id'].'"');
mysql_query('DELETE FROM `forum_sub` WHERE `id` = "'.$sub['id'].'"');
$_SESSION['mes'] = mes('Раздел удален!');
header('location: /forum/');
exit;
}
echo'
Вы дейстаительно хотите удалить раздел: "'.$sub['name'].'"?
';
break;
case 'add_topic':
$id = _string(_num($_GET['id']));
$sub = mysql_fetch_array(mysql_query('SELECT * FROM `forum_sub` WHERE `id` = "'.$id.'" '));
if($user['access'] < $sub['access']) {//Пепенаправляем, если должность меньше админа
$_SESSION['mes'] = mes('У вас недостаточно прав!');
header('location: /forum/sub/'.$sub['id'].'/');
exit;}
$title = 'Создать топик';
include './system/h.php';
echo ''.$title.'
';
$name = $_POST['name'];
$text = _string($_POST['text']);
if(isset($_REQUEST['submit']) && $user['level'] >= 3){
$antiflood = mysql_fetch_array(mysql_query('SELECT * FROM `forum_topic` WHERE `user` = \''.$user['id'].'\' ORDER BY `time` DESC LIMIT 1'));
if(empty($name) or mb_strlen($name,'UTF-8') < 1 AND empty($text) or mb_strlen($text,'UTF-8') < 1){
header("Location: ?");
$_SESSION['mes'] = mes('Одно из полей не заполнено!');
header('location: /forum/add_topic/'.$sub['id'].'/');
exit;}
if(time() - $antiflood['time'] < 1){
header("Location: ?");
$_SESSION['mes'] = mes('Нельзя создавать топики так часто!');
exit;}
if($sub['id'] == '1') { //Добавляем уведомление с главной
mysql_query('UPDATE `users` SET `notified` = "0" ');
}
mysql_query('INSERT INTO `forum_topic` (`sub`,
`name`,
`user`,
`text`,
`time`) VALUES ("'.$sub['id'].'",
"'.$name.'",
"'.$user['id'].'",
"'.$text.'",
"'.time().'")');
$topic_id = mysql_insert_id();
$_SESSION['mes'] = mes('Топик успешно создан!');
header('location: /forum/topic/'.$topic_id.'/');
exit;
}
echo' '.$_SESSION['mes'].' ';
$_SESSION['mes']=NULL; //Удаляем сесию
echo'
';
echo'
';
break;
case 'edit_topic':
$id = _string(_num($_GET['id']));
$topic = mysql_fetch_array(mysql_query('SELECT * FROM `forum_topic` WHERE `id` = "'.$id.'" '));
$sub = mysql_fetch_array(mysql_query('SELECT * FROM `forum_sub` WHERE `id` = "'.$topic['sub'].'" '));
$title = 'Изменить топик';
include './system/h.php';
echo ''.$title.'
';
if($user['access'] < '2') {//Пепенаправляем, если должность меньше админа
$_SESSION['mes'] = mes('У вас недостаточно прав!');
header('location: /forum/sub/'.$sub['id'].'/');
exit;}
$name = _string($_POST['name']);
$text = _string($_POST['text']);
if(isset($_REQUEST['submit']) && $user['level'] >= 3){
if(empty($name) or mb_strlen($name,'UTF-8') < 1 AND empty($text) or mb_strlen($text,'UTF-8') < 1){
header("Location: ?");
$_SESSION['mes'] = mes('Одно из полей не заполнено!');
header('location: /forum/add_topic/'.$sub['id'].'/');
exit;}
mysql_query('UPDATE `forum_topic` SET `name` = "'.$name.'", `text` = "'.$text.'" WHERE `id` = "'.$topic['id'].'"');
$_SESSION['mes'] = mes('Топик успешно отредактирован!');
header('location: /forum/edit_topic/'.$topic['id'].'/');
exit;
}
echo' '.$_SESSION['mes'].' ';
$_SESSION['mes']=NULL; //Удаляем сесию
echo'
';
echo'
';
break;
case 'del_topic':
$id = _string(_num($_GET['id']));
$topic = mysql_fetch_array(mysql_query('SELECT * FROM `forum_topic` WHERE `id` = "'.$id.'" '));
$sub = mysql_fetch_array(mysql_query('SELECT * FROM `forum_sub` WHERE `id` = "'.$topic['sub'].'" '));
$title = 'Изменить топик';
include './system/h.php';
echo ''.$title.'
';
if($user['access'] < '2') {//Пепенаправляем, если не админ и выше
$_SESSION['mes'] = mes('У вас недостаточно прав!');
header('location: /forum/sub/'.$sub['id'].'/');
exit;}
if($_GET['delete'] == true) {
$q = mysql_query('SELECT * FROM `forum_comments` WHERE `topic` = "'.$topic['id'].'"');
while($row = mysql_fetch_array($q)) {
mysql_query('DELETE FROM `forum_comments` WHERE `id` = "'.$row['id'].'"');
}
header('location: /forum/sub/'.$topic['sub'].'/');
mysql_query('DELETE FROM `forum_topic` WHERE `id` = "'.$topic['id'].'"');
$_SESSION['mes'] = mes('Топик удален!');
exit;
}
echo'
Вы дейстаительно хотите удалить топик: "'.$topic['name'].'"?
';
break;
}
include './system/f.php';
?>