Файл: forum/index.php
Строк: 634
<?
include('../core/core.php');
include(MAINDIR.'style/head.php');
$id = abs(intval($_GET['id']));
$themes = abs(intval($_GET['themes']));
$t_menu = '<a href="?mode=index">Форум</a> / <a href="?mode='.$mode.'&id='.$id.'">Обновить</a> / <a href="?mode=themes_add&id='.$id.'">Создать тему</a>';
$logcoo = check($_COOKIE['login']);
# переход в конец темы
if(check($_GET['end']) == 'end'){
$countz = DB::run() -> query("SELECT * FROM `forum_topic` WHERE `topic` =?",array($id)) -> rowCount();
$totale = intval(($countz - 1) / 10) + 1;
header("Location: /forum/?mode=topic&themes=".$themes."&id=".$id."&page=".$totale."");
}
echo'<style>#txt {border-left: 8px solid #e2e2e2; padding-left: 4px; margin-left: 4px; text-indent: 2mm; font-size: 0.9em; color: #272727;}
.hide {
color : #465584;
background : #eef2f7;
border: 1px dotted #81bef7;
font-size: x-small;
padding: 3px;
}
.d {
background-color : #f1f2f1;
border-style : dotted;
border-width : 1px;
border-color : #b8c1b7;
padding : 10px;
padding-left : 30px;
background-repeat : repeat-y;
font-size : 11px;
display : block;
overflow : auto;
}</style>';
switch ($mode):
/*
------------------------------------------------------
Выбор гланой темы
------------------------------------------------------
*/
case 'index':
title('Форум');
echo'<div class="title">Список разделов</div>';
$count_f = DB::run() -> query("SELECT * FROM `forum`");
if($count_f -> rowCount() > 0) {
$forums = DB::run()->query("SELECT * FROM `forum` ORDER BY `id` DESC");
$forums = $forums-> fetchAll();
foreach($forums AS $row){
echo'<div class="menu"><img src="/images/Forum.gif" alt=""> <a href="/forum/?mode=themes&id='.$row['id'].'">'.$row['themes'].'</a> ['.count_all('forum_themes','forum',$row['id']).'/'.count_all('forum_topic','themes',$row['id']).']<hr>';
echo'Тема: ';if($row['pod_themes'] == NULL){echo'Темы ещё не созданы';} else {echo $row['pod_themes'];}echo'<br />
Сообщение: ';if($row['login'] == NULL){echo'Нет';} else {echo '<a href="/users/profile.php?user='.$row['login'].'">'.$row['login'].'</a> ('.$row['data'].')';}
echo'</div>';
}
} else {echo'<div class="menu">Разделы не созданы!</div>';}
echo'<div class="menu">';
echo'
» <a href="/forum/?mode=new_topic">Последние сообщения</a><br />
» <a href="/forum/?mode=new_themes">Последние темы</a><br />';
if(is_admin()){echo'» <a href="?mode=mpanel">Управление форумом</a><br />';}
echo'» <a href="/">На главную</a>';
echo'</div>';
break;
/*
------------------------------------------------------
Выбор темы
------------------------------------------------------
*/
case 'themes':
title('Форум');
echo'<div class="title">Список тем</div>';
if($id == NULL){echo'<div class="menu">Тема не выбрана!</div>';} else {
echo'<div class="menu_2">'.$t_menu.'</div>';
define('TOPAGE',10); $num = TOPAGE;
$links = '?mode=themes&page=';
$page = intval($_GET['page']);
$posts = DB::run() -> query("SELECT * FROM `forum_themes` WHERE `forum`=?",array($id)) -> rowCount();
$total = intval(($posts - 1) / $num) + 1;
if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
$start = $page * $num - $num;
$themesz = DB::run()->query("SELECT * FROM `forum_themes` WHERE `forum`=? ORDER BY `id` DESC LIMIT $start,".TOPAGE."",array($id));
$themesz = $themesz -> fetchAll();
foreach($themesz AS $u){
if($u['krep'] == 1){ $img = '<img src="/images/forum/lock.gif" alt="">'; } else {if($u['status'] == 'on'){$img = '<img src="/images/forum/topics.gif" alt="">';} else {$img = '<img src="/images/forum/closed.gif" alt="">';}}
if($u['krep'] == 1){
echo'<div class="menu"> '.$img.' <a href="/forum/?mode=topic&themes='.$id.'&id='.$u['id'].'&end=end">'.$u['themes'].'</a> ['.count_all('forum_topic','topic',$u['id']).'] </div>';
echo'<div class="menu">';
echo''.$u['pod_themes'].'<br />
Посл. соб: <a href="/profile/'.$u['login'].'"><strong>'.$u['login'].'</strong></a>';
echo'</div>';}
if($u['krep'] == 0){
echo'<div class="menu"> '.$img.' <a href="/forum/?mode=topic&themes='.$id.'&id='.$u['id'].'&end=end">'.$u['themes'].'</a> ['.count_all('forum_topic','topic',$u['id']).']</div>
<div class="menu">';
echo''.$u['pod_themes'].'<br />
Посл. соб: <a href="/profile/'.$u['login'].'"><strong>'.$u['login'].'</strong></a>';
echo'</div>';}
}
if ($page != 1) $pervpage = '<a href= '.$links.'1><<</a> <a href= '.$links.''. ($page - 1) .'><</a> ';
if ($page != $total) $nextpage = ' <a href= '.$links.''. ($page + 1) .'>></a> <a href= '.$links.'' .$total. '>>></a>';
if($page - 2 > 0) $page2left = ' <a href= '.$links.''. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = '<a href= '.$links.''. ($page - 1) .'>'. ($page - 1) .'</a> | ';
if($page + 2 <= $total) $page2right = ' | <a href= '.$links.''. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href= '.$links.''. ($page + 1) .'>'. ($page + 1) .'</a>';
echo '<div class="menu_2">'.$pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage.'</div>';
}
break;
/*
------------------------------------------------------
Вывод всех постов,написание нового поста
------------------------------------------------------
*/
case 'topic':
$t = DB::run() -> queryFetch("select * from `forum_themes` where `id`=?",array($id));
$z = DB::run() -> queryFetch("select * from `forum` where `id`=?",array($themes));
if($t['id'] == !NULL){
echo $g_menu;
title($t['themes']);
echo'<div class="title">Форум - '.$t['themes'].'</div>';
echo'<div class="menu"><img src="/images/menu.png" alt=""><strong>'.$z['themes'].'</strong> / <strong>'.$t['themes'].'</strong>';
if(is_admin()){echo'<a href="/forum/?mode=menu_themes&id='.$id.'"> [i]</a>';}
if($t['mail_login'] == $logcoo && $t['status'] == 'on'){ echo' <a href="/forum/?mode=closed&id='.$id.'">Закрыть тему</a>'; }
if(is_admin()){if($t['status'] == 'off'){echo' <a href="/forum/?mode=open&id='.$id.'">Открыть тему</a>';}}
echo'</div>';
define('TOPAGE',10); $num = TOPAGE;
$links = '?mode=topic&themes='.$themes.'&id='.$id.'&page=';
$page = intval($_GET['page']);
$posts = DB::run() -> query("SELECT * FROM `forum_topic` WHERE `topic`=?",array($id)) -> rowCount();
$total = intval(($posts - 1) / $num) + 1;
if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
$start = $page * $num - $num;
$themesz = DB::run()->query("SELECT * FROM `forum_topic` WHERE `topic`=? ORDER BY `id` LIMIT $start,".TOPAGE."",array($id));
$themesz = $themesz -> fetchAll();
foreach($themesz AS $u){
# Определяем иконку
$query = DB::run() -> queryFetch("SELECT * FROM `users` WHERE `login`=?",array($u['login']));
# если он из админ состава
if($query['status'] == 101 || $query['status'] == 102 || $query['status'] == 103 || $query['status'] == 104){
# определяем его пол и выводим иконку
if($query['pol'] == 1){$img = '<img src="/images/1.png">';}
if($query['pol'] == 0){$img = '<img src="/images/2.png">';}
}
# Если он обычный юзер
if($query['status'] == 105){
if($query['pol'] == 1){$img = '<img src="/images/4.png">';}
if($query['pol'] == 0){$img = '<img src="/images/3.png">';}
}
echo'<div class="menu_2">'.$img.' <a href="/profile/'.$u['login'].'">'.$u['login'].'</a> '.online($u['login']).' ('.$u['data'].') </a></div>';
echo'<div class="menu">';
if($u['privat'] == !NULL){
if($logcoo == $u['privat'] || $logcoo == $u['login']){
echo''.$u['message'].'';
if(!empty($u['edit'])){echo $u['edit'];}
} else { echo'Приватное сообщение, видит только адресат...'; }
} else {
echo''.$u['message'].'';
if(!empty($u['edit'])){echo $u['edit'];}
}
echo'<div align="right">';
if(is_user()) {
if($u['login'] == $logcoo){} else { echo'[<a href="/pages/spam.php?mode=forum&id='.$u['id'].'">Спам</a>]';
if($t['status'] == 'on'){echo'[<a href="/forum/?mode=otvet_topic&id='.$u['id'].'">отв</a>][<a href="/forum/?mode=c_topic&id='.$u['id'].'">цит</a>]'; } }
if(is_admin() || $u['time'] >= time() && $u['login'] == $logcoo){ echo'[<a href="/forum/?mode=edit_topic&id='.$u['id'].'">изм</a>]'; }
if(is_admin()){echo'[<a href="/forum/?mode=topic_dell&id='.$u['id'].'">удал</a>]';}
}
echo'</div></div>';
}
if ($page != 1) $pervpage = '<a href= '.$links.'1><<</a> <a href= '.$links.''. ($page - 1) .'><</a> ';
if ($page != $total) $nextpage = ' <a href= '.$links.''. ($page + 1) .'>></a> <a href= '.$links.'' .$total. '>>></a>';
if($page - 2 > 0) $page2left = ' <a href= '.$links.''. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = '<a href= '.$links.''. ($page - 1) .'>'. ($page - 1) .'</a> | ';
if($page + 2 <= $total) $page2right = ' | <a href= '.$links.''. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href= '.$links.''. ($page + 1) .'>'. ($page + 1) .'</a>';
echo '<div class="menu_2">'.$pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage.'</div>';
if($t['status'] == 'on'){
echo'<div class="menu">';
if(is_user()){
echo'<form action="/forum/?mode=add_topic&themes='.$themes.'&id='.$id.'" name="1" method="post">';
echo'Сообщение: (<a href="/pages/smiles.php">смайлы</a> / <a href="/pages/bb.php">теги</a>)<br />
<TEXTAREA NAME="message" ROWS=4 COLS=25 input type="TEXTAREA" style="width: 95%; "></TEXTAREA><br />';
echo'<input type="submit" name="submit" id="submit" value="Написать">
</form>';
echo'<form method="post" action="/forum/?mode=upload&themes='.$themes.'&id='.$id.'" enctype="multipart/form-data">
Выберите файл :<br>
<input name="filename" type="file"><br>
<input type="submit" name="submit" value="Загрузить">
</form>';
} else {
echo'Вы не авторизованы, чтобы добавить сообщение, необходимо
<a href="/pages/user.php/forum/?mode=index">Авторизоваться</a> или в начале <a href="/pages/user.php/forum/?mode=reg">Зарегистрироваться</a>'; }
} else {echo'</div><div class="menu"><img src="/images/forum/error.gif"> <strong>Данная тема закрыта для обсуждения!</strong></div>'; }
echo'</div>';
} else {echo'<div class="menu">Темы не существует!</div>'; }
break;
/*
------------------------------------------------------
Закрытие темы пользователем.
------------------------------------------------------
*/
case 'closed':
title('Закрытие темы');
echo'<div class="title">Закрытие темы</div>';
echo'<div class="menu">';
$t = DB::run() -> queryFetch("select * from `forum_themes` where `id` =? LIMIT 1",array($id));
if($t['login'] == $logcoo){
if(is_user()){
DB::run() -> query("UPDATE `forum_themes` SET `status`=? WHERE `id` =?",array('off',$id));
header("Location: /forum/?mode=themes&id=".$t['forum']."");
} else {echo'Вы должны быть авторизованы!';}
} else {echo'Не вы создавали тему, не вам ее закрывать!';}
echo'</div>';
break;
/*
------------------------------------------------------
Открытие темы пользователем.
------------------------------------------------------
*/
case 'open':
title('Открытие темы');
echo'<div class="title">Открытие темы</div>';
echo'<div class="menu">';
$t = DB::run() -> queryFetch("select * from `forum_themes` where `id` =? LIMIT 1",array($id));
if(is_admin()){
DB::run() -> query("UPDATE `forum_themes` SET `status`=? WHERE `id` =?",array('oт',$id));
header("Location: /forum/?mode=themes&id=".$t['forum']."");
} else {echo'Только Администраторы сайта могут открывать темы!';}
echo'</div>';
break;
/*
------------------------------------------------------
Загрузка,прикрепление файла
------------------------------------------------------
*/
case 'upload':
$set = DB::run() -> queryFetch("SELECT * FROM `setting` WHERE `id`=? LIMIT 1",array(1));
title('Прикрепление файла');
echo'<div class="title">Прикрепление файла</div>';
echo'<div class="menu">';
if(is_user()){
$file = basename($_FILES['filename']['name']);
# тип
$tuupp = basename($_FILES['filename']['type']);
if($file != 'htaccess' || $tuupp != 'htaccess' || $file != 'index.php'){
# Размер
$siize = $_FILES['filename']['size'];
$a = $siize / 1024;
$otvet = round($a, 2);
if($set['forum'] > $otvet){
if(is_uploaded_file($_FILES["filename"]["tmp_name"])){
$name= ''.mt_rand(1,99999999999).'.'.$tuupp.'';
move_uploaded_file($_FILES["filename"]["tmp_name"], "../obmen/forum/".$name);
$login = $logcoo;
$data = times();
$message = "<u>Прикрепленый файл</u><br /><a href='/forum/down.php?files=".$name."'>".$file."</a> [".$otvet." kb]";
DB::run() -> query("INSERT INTO `forum_topic`(`themes`, `topic`, `login`, `message`, `data`, `time`) VALUES (?,?,?,?,?,?)",array($themes,$id,$login,$message,$data,$time));
DB::run() -> query("UPDATE `forum_themes` SET `login`=?, `pod_themes`=?,`time`=? WHERE `id` =?",array($login,$data,time(),$id));
echo'<div class="menu">Файл успешно загружен!<br /><a href="/forum/?mode=topic&themes='.$themes.'&id='.$id.'&end=end">Назад в тему</a></div>';
} else {echo('Ошибка загрузки файла');}
} else {echo'Размер файла превышает '.$set['forum'].' кб.';}
} else {echo'Файл входит в состав запрещеных!';}
} else {echo'Вы должны быть авторизованы!';}
echo'</div>';
break;
/*
------------------------------------------------------
Создание нового поста
------------------------------------------------------
*/
case 'add_topic':
$set = DB::run() -> queryFetch("SELECT * FROM `setting` WHERE `id`=? LIMIT 1",array(1));
title('Новое сообщение');
echo'<div class="title">Новое сообщение</div>';
$message = check($_POST['message']);
if(!empty($message)){
if(is_user()){
$s = $_SESSION['antiflood'] - time();
if($_SESSION['antiflood'] >= time()){echo'Антифлуд! Разрешается отправлять сообщения раз в '.$set['antiflood'].' секунд!<br />
Осталось: >'.formattime($s).'</div>';
}else{
$login = $logcoo;
$data = times();
$message = no_br($message);
$message = bb($message);
$message = antimat($message);
$message = smiles($message);
$time = time() + (60 * 15);
DB::run() -> query("INSERT INTO `forum_topic`(`themes`, `topic`, `login`, `message`, `data`, `time`) VALUES (?,?,?,?,?,?)",array($themes,$id,$login,$message,$data,$time));
DB::run() -> query("UPDATE `forum_themes` SET `login`=?, `pod_themes`=?,`time`=? WHERE `id` =?",array($login,$data,time(),$id));
//$q = DB::run() -> query("SELECT * FROM `forum_topic` WHERE `topic`=?",array($id)) -> rowCount();
//$total = intval(($q - 1) / 10) + 1;
header("Location: /forum/?mode=topic&themes=".$themes."&id=".$id."&end=end");
$_SESSION['antiflood'] = time() + $set['antiflood'];
user_live($logcoo,1,1,0);
}
} else {echo'Вы не авторизованы, для создания новой темы, необходимо
<a href="/user/">Авторизоваться</a> или в начале <a href="/user/reg.php">Зарегистрироваться</a>';}
} else {echo'Вы ничего не ввели!</div>'; }
break;
/*
------------------------------------------------------
Новая тема
------------------------------------------------------
*/
case 'themes_add':
title('Новая тема');
echo'<div class="title">Новая тема</div><div class="menu">';
if($id == NULL){echo'Тема не выбрана!</div>';} else {
if(is_user()){
$t = DB::run() -> queryFetch("select * from `forum` where `id`=? LIMIT 1",array($id));
echo'<strong>'.$t['themes'].'</strong><hr>';
echo'<form action="?mode=add_themes&id='.$id.'" method="post">';
echo'<strong>Заполните все поля</strong><br />';
echo'
Название новой темы:<br />
<input type="text" name="name" value="" size="20" maxlength="35" /><br />
Текст первого поста:<br />
<TEXTAREA NAME="message" ROWS=4 COLS=25 input type="TEXTAREA" style="width: 95%; "></TEXTAREA>';
echo'<input type="submit" name="submit" id="submit" value="Создать">
</form>';
echo'</div>';
} else {echo'Вы не авторизованы, для создания новой темы, необходимо
<a href="/users/login.php">Авторизоваться</a> или в начале <a href="/users/reg.php">Зарегистрироваться</a></div>';}
}
break;
case 'add_themes':
title('Новая тема');
echo'<div class="title">Новая тема</div><div class="menu">';
$name = check($_POST['name']);
$message = check($_POST['message']);
if(!empty($message) && !empty($name)){
if(is_user()){
$login = check($_COOKIE['login']);
$data = times();
$message = no_br($message);
$message = bb($message);
$message = antimat($message);
$message = smiles($message);
DB::run() -> query("UPDATE `forum` SET `login`=?, `pod_themes`=?,`data`=? WHERE `id`=?",array($login,$name,$data,$id));
$sql = DB::run() -> queryFetch("SELECT * FROM `forum_themes` ORDER BY `id` DESC LIMIT 1"); $next = $sql['id'] + 1;
DB::run() -> query("INSERT INTO `forum_themes`(`id`,`forum`, `themes`, `login`, `pod_themes`, `status`, `krep`,`mail_login`,`time`) VALUES (?,?,?,?,?,?,?,?,?)",array($next,$id,$name,$login,$data,'on',0,$login,time()));
$time = time() + (60 * 15);
DB::run() -> query("INSERT INTO `forum_topic`(`themes`, `topic`, `login`, `message`, `data`, `time`) VALUES (?,?,?,?,?,?)",array($id,$next,$login,$message,$data,$time));
header("Location: /forum/?mode=topic&themes=".$id."&id=".$next."");
exps(1,$login);
} else {echo'Вы не авторизованы, для создания новой темы, необходимо
<a href="/pages/user.php/forum/?mode=index">Авторизоваться</a> или в начале <a href="/pages/user.php/forum/?mode=reg">Зарегистрироваться</a></div>';}
} else {echo'Вы ничего не ввели!</div>'; }
break;
/*
------------------------------------------------------
Настройка темы
------------------------------------------------------
*/
case 'menu_themes':
title('Настройки темы');
echo'<div class="title">Настройки темы</div>';
echo'<div class="menu">';
if(is_admin()){
$t = DB::run() -> queryFetch("select * from `forum_themes` where `id` =? LIMIT 1",array($id));
echo'<strong>'.$t['themes'].'</strong><br /><br />';
echo'<form action="/forum/?mode=edit_1&id='.$id.'" method="post">';
echo'<strong>Изменяем тему</strong><br /><br />
Название темы:<br />
<input type="text" name="name" value="'.$t['themes'].'" size="20" maxlength="35" /><br />
Парамет темы 1<br />
<select name="krep">';
if($t['krep'] == 0){echo'<option value="0">Откреплена</option><option value="1">Закреплена</option>';} else {echo'<option value="1">Закреплена</option><option value="0">Откреплена</option>';}
echo'</select><br />
Парамет темы 2<br />
<select name="open">';
if($t['status'] == 'on'){echo'<option value="on">Открыта</option><option value="off">Закрыта</option>';} else {echo'<option value="off">Закрыта</option><option value="on">Открыта</option>';}
echo'</select><br />';
echo'<input type="submit" name="submit" id="submit" value="Изменить">
</form>';
echo'<form action="/forum/?mode=edit_2&id='.$id.'" method="post">';
echo'<select name="per">';
$forez = DB::run()->query("SELECT * FROM `forum`");
$forez = $forez -> fetchAll();
foreach($forez AS $f){
echo'<option value="'.$f['id'].'">'.$f['themes'].'</option>';
}
echo'</select><br />';
echo'<input type="submit" name="submit_1" id="submit" value="Переместить">
</form>';
echo'<hr>
<a href="?mode=forum_del_them&id='.$id.'">Удалить тему</a>
';
echo'</div>';
} else {echo'Менять настройки темы можно только админ составу!';}
echo'</div>';
break;
case 'edit_1':
title('Настройки темы');
echo'<div class="title">Настройки темы</div>';
if(is_admin()){
$name = check($_POST['name']);
$open = check($_POST['open']);
$krep = check($_POST['krep']);
DB::run() -> query("UPDATE `forum_themes` SET `themes`=?, `status`=?,`krep`=? WHERE `id` =?",array($name,$open,$krep,$id));
echo'Данные изменены!</div>';
} else {echo'Менять настройки темы можно только админ составу!';}
break;
case 'edit_2':
title('Настройки темы');
echo'<div class="title">Настройки темы</div>';
if(is_admin()){
$per = check($_POST['per']);
DB::run() -> query("UPDATE `forum_themes` SET `forum`=? WHERE `id` =?",array($per,$id));
$while = DB::run()->query("select * from `forum_topic` where `topic` =?`",array($id));
while($while = $while -> fetch()){
DB::run() -> query("UPDATE `forum_topic` SET `themes`=? WHERE `id` =?",array($per,$while['id']));
}
echo'Данные изменены!</div>';
} else {echo'Менять настройки темы можно только админ составу!';}
break;
/*
------------------------------------------------------
Удаление поста
------------------------------------------------------
*/
case 'topic_dell':
title('Удаление поста');
echo'<div class="title">Удаление поста</div>';
if(is_admin()){
if($id == !NULL){
DB::run() -> query("DELETE FROM `forum_topic` WHERE `id` =?",array($id));
header("Location: ".$_SERVER['HTTP_REFERER']."");
} else {echo'Сообщение не выбрано!</div>';}
} else {echo'Удалять темы можно только админ составу!';}
break;
/*
------------------------------------------------------
Редактирование поста
------------------------------------------------------
*/
case 'edit_topic':
title('Редактирование поста');
echo'<div class="title">Редактирование поста</div>';
echo'<div class="menu">';
$t = DB::run() -> queryFetch("select * from `forum_topic` where `id` =? LIMIT 1",array($id));
if(is_admin() || $t['login'] == $logcoo && $t['time'] >= time()){
if($id == NULL){ echo'Сообщение не выбрано!</div>'; } else {
echo'<strong>Изменяем пост</strong><br />';
echo'<form action="/forum/?mode=topic_edit&id='.$id.'" method="post">';
echo'<TEXTAREA NAME="message" ROWS=4 COLS=25 input type="TEXTAREA" style="width: 95%; ">'.nosmiles($t['message']).'</TEXTAREA>';
echo'<input type="submit" name="submit_1" id="submit" value="Изменить">
</form>';
}
}else { echo'15 Минут уже прошло! Редактировать сообщение невозможно!'; }
echo'</div>';
break;
case 'topic_edit':
title('Изменения поста');
$message = check($_POST['message']);
if($message == ''){echo'Вы ничего не ввели!'; } else {
if(is_user()){
$message = no_br($message);
$message = bb($message);
$message = antimat($message);
$message = smiles($message);
$data = times();
$text = '<br /><small><font color=red>Изменено <strong>'.$logcoo.'</strong> '.$data.'</font></small>';
DB::run() -> query("UPDATE `forum_topic` SET `message`=?,`edit`=? WHERE `id` =?",array($message,$text,$id));
$t = DB::run() -> queryFetch("select * from `forum_topic` where `id` =? LIMIT 1",array($id));
//$q=mysql_result(mysql_query("SELECT COUNT(*) FROM `forum_topic` WHERE topic = '$id'"),0);
//$total = intval(($q - 1) / 10) + 1;
header("Location: /forum/?mode=topic&themes=".$t['themes']."&id=".$t['topic']."&end=end");
} else {echo'Для начало надо зарегистрироватся!';}
}
echo'</div>';
break;
/*
------------------------------------------------------
Цитирование поста
------------------------------------------------------
*/
case 'c_topic':
title('Цитирование поста');
echo'<div class="title">Цитирование поста</div>';
echo'<div class="menu">';
if($id == NULL){ echo'Сообщение не выбрано!'; } else {
$t = DB::run() -> queryFetch("select * from `forum_topic` where `id` =? LIMIT 1",array($id));
$z = DB::run() -> queryFetch("select * from `forum_themes` where `id` =? LIMIT 1",array($t['topic']));
if($z['status'] == 'on'){
if($t['login'] == $logcoo){ echo'Зачем цитировать свои же сообщения?'; } else {
echo'Текст сообщения<br />';
echo'<div id=txt>'.$t['message'].'</div>';
echo'<form action="/forum/?mode=topic_c&id='.$id.'" method="post">';
echo'<TEXTAREA NAME="message" ROWS=4 COLS=25 input type="TEXTAREA" style="width: 95%; "></TEXTAREA><br />';
echo'<input type="checkbox" name="ck1"> Оповестить по привату<br />
<input type="checkbox" name="ck2"> Приватно<br />';
echo'<input type="submit" name="submit_1" id="submit" value="Цитировать">
</form>';
}
} else {echo'Тема закрыта!'; }
}
echo'</div>';
break;
case 'topic_c':
title('Цитирование поста');
echo'<div class="title">Цитирование поста</div><div class="menu">';
if(is_user()){
$message = check($_POST['message']);
if($message == ''){echo'Вы ничего не ввели!'; } else {
$t = DB::run() -> queryFetch("select * from `forum_topic` where `id` =? LIMIT 1",array($id));
$login = $logcoo;
$data = times();
$message = no_br($message);
$message = bb($message);
$message = antimat($message);
$message = smiles($message);
$text = '<div id=txt>'.$t['message'].'</div>'.$message.'';
$time = time() + (60 * 15);
if(isset($_POST['ck2'])){$privat = $t['login'];} else { $privat = NULL; }
DB::run() -> query("INSERT INTO `forum_topic`(`themes`, `topic`, `login`, `message`, `data`, `time`,`privat`) VALUES (?,?,?,?,?,?,?)",array($t['themes'],$t['topic'],$login,$text,$data,$time,$privat));
DB::run() -> query("UPDATE `forum_themes` SET `login`=?, `pod_themes`=?,`time`=? WHERE `id` =?",array($login,$data,time(),$t['topic']));
$set = DB::run() -> queryFetch("SELECT * FROM `setting` WHERE `id`=? LIMIT 1",array(1));
$_SESSION['antiflood'] = time() + $set['antiflood'];
user_live($logcoo,1,1,0);
header("Location: /forum/?mode=topic&themes=".$t['themes']."&id=".$t['topic']."&end=end");
if(isset($_POST['ck1'])){
$i = $logcoo;
$log = $t['login'];
$data = times();
$y = DB::run() -> queryFetch("select * from `forum_themes` where `id` =? LIMIT 1",array($t['topic']));
$q = DB::run() -> queryFetch("select * from `forum_topic` where `topic` =? LIMIT 1",array($id));
$total = intval(($q - 1) / 10) + 1;
$msg = 'Пользователь <a href="/profile/'.$i.'">'.$i.'</a> ответил на ваше сообщение в теме <a href="/forum/?mode=topic&themes='.$t['themes'].'&id='.$t['topic'].'&page='.$total.'">'.$y['themes'].'</a>';
send_mail('System',$log,$msg);
}
}
} else {echo'Для начало надо зарегистрироватся!';}
echo'</div>';
break;
/*
------------------------------------------------------
Ответ на пост
------------------------------------------------------
*/
case 'otvet_topic':
title('Ответ на пост');
echo'<div class="title">Ответ на пост</div>';
echo'<div class="menu">';
if($id == NULL){ echo'Сообщение не выбрано!'; } else {
$t = DB::run() -> queryFetch("select * from `forum_topic` where `id` =? LIMIT 1",array($id));
$z = DB::run() -> queryFetch("select * from `forum_themes` where `id` =? LIMIT 1",array($t['topic']));
if($z['status'] == 'on'){
if($t['login'] == $logcoo){ echo'Зачем отвечать на свои же сообщения?'; } else {
echo'Текст сообщения<br />';
echo'<div id=txt>'.$t['message'].'</div>';
echo'<form action="/forum/?mode=topic_otvet&id='.$id.'" method="post">';
echo'<TEXTAREA NAME="message" ROWS=4 COLS=25 input type="TEXTAREA" style="width: 95%; "></TEXTAREA><br />';
echo'<input type="checkbox" name="ck1"> Оповестить по привату<br />
<input type="checkbox" name="ck2"> Приватно<br />';
echo'<input type="submit" name="submit_1" id="submit" value="Ответить">
</form>';
}
} else {echo'Тема закрыта!'; }
}
echo'</div>';
break;
case 'topic_otvet':
title('Ответ на пост');
echo'<div class="title">Ответ на пост</div>';
if(is_user()){
$message = check($_POST['message']);if($message == ''){echo'Вы ничего не ввели!'; } else {
$t = DB::run() -> queryFetch("select * from `forum_topic` where `id` =? LIMIT 1",array($id));
$login = $logcoo;
$data = date("d.m.Y / H:i");
$message = no_br($message);
$message = bb($message);
$message = antimat($message);
$message = smiles($message);
$text = '<strong>'.$t['login'].'</strong>, '.$message.'';
$time = time() + (60 * 15);
if(isset($_POST['ck2'])){$privat = $t['login'];} else { $privat = NULL; }
DB::run() -> query("INSERT INTO `forum_topic`(`themes`, `topic`, `login`, `message`, `data`, `time`,`privat`) VALUES (?,?,?,?,?,?,?)",array($t['themes'],$t['topic'],$login,$text,$data,$time,$privat));
DB::run() -> query("UPDATE `forum_themes` SET `login`=?, `pod_themes`=?,`time`=? WHERE `id` =?",array($login,$data,time(),$t['topic']));
$set = DB::run() -> queryFetch("SELECT * FROM `setting` WHERE `id`=? LIMIT 1",array(1));
$_SESSION['antiflood'] = time() + $set['antiflood'];
user_live($logcoo,1,1,0);
header("Location: /forum/?mode=topic&themes=".$t['themes']."&id=".$t['topic']."&end=end");
//оповещаем по привату//
if(isset($_POST['ck1'])){
$i = $logcoo;
$log = $t['login'];
$data = times();
$y = DB::run() -> queryFetch("select * from `forum_themes` where `id` =? LIMIT 1",array($t['topic']));
$q = DB::run() -> queryFetch("select * from `forum_topic` where `topic` =? LIMIT 1",array($id));
$total = intval(($q - 1) / 10) + 1;
$msg = 'Пользователь <a href="/profile/'.$i.'">'.$i.'</a> ответил на ваше сообщение в теме <a href="/forum/?mode=topic&themes='.$t['themes'].'&id='.$t['topic'].'&page='.$total.'">'.$y['themes'].'</a>';
send_mail('System',$log,$msg);
}
}
} else {echo'Для начало надо зарегистрироватся!';}
break;
/*
------------------------------------------------------
Новые посты
------------------------------------------------------
*/
case 'new_topic':
title('Новые сообщения');
echo'<div class="title">Новые сообщения</div>';
$while = DB::run()->query("select * from `forum_topic` ORDER BY `id` DESC LIMIT 10");
while($while = $while -> fetch()){
$z = DB::run() -> queryFetch("select * from `forum_themes` where `id` =? LIMIT 1",array($while['topic']));
$q = DB::run() -> queryFetch("select * from `forum_topic` where `topic` =? LIMIT 1",array($while['topic']));
$total = intval(($q - 1) / 10) + 1;
echo'<div class="menu">'; if($z['status'] == 'on'){echo'<img src="/images/forum/topics.gif" alt="">';} else {echo'<img src="/images/forum/closed.gif" alt="">';}
echo' <a href="/forum/?mode=topic&themes='.$while['themes'].'&id='.$z['id'].'&page='.$total.'">'.$z['themes'].'</a> </div><div class="menu">';
if($while['privat'] == !NULL){
if($logcoo == $while['privat'] || $logcoo == $while['login']){
echo''.$while['message'].'';
} else { echo'Приватное сообщение, видит только адресат...'; }
} else {
echo''.$while['message'].'';
}
echo'<br />Написал: <a href="/profile/'.$while['login'].'">'.$while['login'].'</a> ('.$u['data'].')';
echo'</div>';
}
break;
/*
------------------------------------------------------
Новые темы
------------------------------------------------------
*/
case 'new_themes':
title('Новые темы');
echo'<div class="title">Новые темы</div>';
$while = DB::run()->query("select * from `forum_themes` ORDER BY `id` DESC LIMIT 10");
while($while = $while -> fetch()){
if($while['krep'] == 1){ $img = '<img src="/images/forum/lock.gif" alt="">'; } else {if($while['status'] == 'on'){$img = '<img src="/images/forum/topics.gif" alt="">';} else {$img = '<img src="/images/forum/closed.gif" alt="">';}}
if($while['krep'] == 1){
echo'<div class="menu"> '.$img.' <a href="/forum/?mode=topic&themes='.$id.'&id='.$while['id'].'&page='.$tot.'">'.$while['themes'].'</a> ['.count_all('forum_topic','topic',$while['id']).']</div>
<div class="menu">';
echo''.$while['pod_themes'].'<br />
Посл. соб: <a href="/users/profile.php?user='.$while['login'].'"><strong>'.$while['login'].'</strong></a>';
echo'</div>';}
if($while['krep'] == 0){
echo'<div class="menu"> '.$img.' <a href="/forum/?mode=topic&themes='.$id.'&id='.$while['id'].'&page='.$tot.'">'.$while['themes'].'</a> ['.count_all('forum_topic','topic',$while['id']).']</div>
<div class="menu">';
echo''.$while['pod_themes'].'<br />
Посл. соб: <a href="/users/profile.php?user='.$while['login'].'"><strong>'.$while['login'].'</strong></a>';
echo'</div>';}
}
break;
/*
------------------------------------------------------
Поиск
------------------------------------------------------
*/
case 'search':
title('Поиск');
echo'<div class="title">Поиск</div>';
echo'<div class="menu">';
if(is_user()){
echo'<form action="?mode=set" method="post">
Запрос:<br />
<input name="whot" type="text" maxlength="50" /><br />
Искать:<br />
<input name="isc" type="radio" value="message" checked/> В сообщениях<br />
<input name="isc" type="radio" value="themes" /> В темах<br />
<input name="" type="submit" value="Искать" />
</form>';
} else { echo'Вы не авторизованы, чтобы использовать поиск.'; }
echo'</div>';
break;
case 'set':
title('Поиск');
echo'<div class="title">Поиск</div>';
echo'<div class="menu">';
if(is_user()){
$whot = check($_POST['whot']);
$isc = check($_POST['isc']);
if(!empty($whot)){
if($isc == 'message'){
$q = DB::run() -> query("SELECT * FROM `forum_topic` WHERE message LIKE %?%",array($whot)) -> rowCount();
if($q != 0){
$while = DB::run() -> query("SELECT * FROM `forum_topic` WHERE message LIKE %?%",array($whot));
while($while = $while -> fetch()){
echo'</div><div class="menu">';
echo '<a href="/users/profile.php?user='.$while['login'].'">'.$while['login'].'</a><hr>'.$while['message'].'';
echo'</div><div class="menu">';
}
} else {echo'Совпадений не найдено!'; }
} else {
$q = DB::run() -> query("SELECT * FROM `forum_themes` WHERE themes LIKE %?%",array($whot)) -> rowCount();
if($q != 0){
$while = DB::run() -> query("SELECT * FROM `forum_themes` WHERE themes LIKE %?%",array($whot));
while($while = $while -> fetch()){
echo'</div><div class="menu">';
echo 'Последние сообщение написал: <a href="/users/profile.php?user='.$while['login'].'">'.$while['login'].'</a><hr>'.$while['themes'].'';
echo'</div><div class="menu">';
}
} else {echo'Совпадений не найдено!'; }
}
} else { echo'Что ищем?...'; }
} else { echo'Вы не авторизованы, чтобы использовать поиск.'; }
echo'</div>';
break;
/*
------------------------------------------------------
Мои темы
------------------------------------------------------
*/
case 'my_themes':
$login = check($_GET['login']);
if($login == NULL){$login = $logcoo; title('Мои темы');} else { $login = $login; title('Темы '.$login.'');}
echo'<div class="title">Мои темы</div>';
if(is_user()){
define('TOPAGE',10); $num = TOPAGE;
$links = '?mode=my_themes&page=';
$page = intval($_GET['page']);
$posts = DB::run() -> query("SELECT * FROM `forum_themes` WHERE `mail_login`=?",array($login)) -> rowCount();
$total = intval(($posts - 1) / $num) + 1;
if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
$start = $page * $num - $num;
$themesz = DB::run()->query("SELECT * FROM `forum_themes` WHERE `mail_login`=? ORDER BY `id` DESC LIMIT $start,".TOPAGE."",array($login));
$themesz = $themesz -> fetchAll();
foreach($themesz AS $u){
echo'<div class="menu">';
if($u['krep'] == 1){ $img = '<img src="/images/forum/lock.gif" alt="">'; } else {if($u['status'] == 'on'){$img = '<img src="/images/forum/topics.gif" alt="">';} else {$img = '<img src="/images/forum/closed.gif" alt="">';}}
echo $img.' <a href="?mode=topic&themes='.$u['forum'].'&id='.$u['id'].'&page='.$total.'">'.$u['themes'].'</a> ['.count_all('forum_topic','topic',$u['id']).']<br />
<a href="/users/profile.php?user='.$u['mail_login'].'">'.$u['mail_login'].'</a> / <a href="/users/profile.php?user='.$u['login'].'">'.$u['login'].'</a> ('.$u['pod_themes'].')';
echo'</div>';
}
if ($page != 1) $pervpage = '<a href= '.$links.'1><<</a> <a href= '.$links.''. ($page - 1) .'><</a> ';
if ($page != $total) $nextpage = ' <a href= '.$links.''. ($page + 1) .'>></a> <a href= '.$links.'' .$total. '>>></a>';
if($page - 2 > 0) $page2left = ' <a href= '.$links.''. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = '<a href= '.$links.''. ($page - 1) .'>'. ($page - 1) .'</a> | ';
if($page + 2 <= $total) $page2right = ' | <a href= '.$links.''. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href= '.$links.''. ($page + 1) .'>'. ($page + 1) .'</a>';
echo '<div class="menu_2">'.$pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage.'</div>';
} else { echo'<div class="menu">Вы не авторизованы!</div>'; }
break;
/*
------------------------------------------------------
Мои сообщения
------------------------------------------------------
*/
case 'my_topic':
$login = check($_GET['login']);
if($login == NULL){$login = $logcoo; title('Мои сообщения');} else { $login = $login; title('Сообщения '.$login.'');}
echo'<div class="title">Мои сообщения</div>';
if(is_user()){
define('TOPAGE',10); $num = TOPAGE;
$links = '?mode=my_topic&page=';
$page = intval($_GET['page']);
$posts = DB::run() -> query("SELECT * FROM `forum_topic` WHERE `login`=?",array($login)) -> rowCount();
$total = intval(($posts - 1) / $num) + 1;
if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
$start = $page * $num - $num;
$themesz = DB::run()->query("SELECT * FROM `forum_topic` WHERE `login`=? ORDER BY `id` DESC LIMIT $start,".TOPAGE."",array($login));
$themesz = $themesz -> fetchAll();
foreach($themesz AS $u){
echo'<div class="menu">';
$login = $u['login'];
$them = DB::run() -> queryFetch("SELECT * FROM forum WHERE `id`=? ",array($u['themes']));
$top = DB::run() -> queryFetch("SELECT * FROM forum_themes WHERE `id`=?",array($u['topic']));
echo'<a href="/profile/'.$u['login'].'">'.$u['login'].'</a><br />
<strong>'.status($u['login']).'</strong><br />
<a href="?mode=themes&id='.$u['themes'].'">'.$them['themes'].'</a> > <a href="?mode=topic&themes='.$u['themes'].'&id='.$u['topic'].'">'.$top['themes'].'</a><hr>';
if($u['privat'] == NULL){ echo $u['message'];} else {
if($u['privat'] == $logcoo){ echo $u['message'];} else {
echo'Приватное сообщение, видит только адресат...';
}
}
echo'</div>';
}
if ($page != 1) $pervpage = '<a href= '.$links.'1><<</a> <a href= '.$links.''. ($page - 1) .'><</a> ';
if ($page != $total) $nextpage = ' <a href= '.$links.''. ($page + 1) .'>></a> <a href= '.$links.'' .$total. '>>></a>';
if($page - 2 > 0) $page2left = ' <a href= '.$links.''. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = '<a href= '.$links.''. ($page - 1) .'>'. ($page - 1) .'</a> | ';
if($page + 2 <= $total) $page2right = ' | <a href= '.$links.''. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href= '.$links.''. ($page + 1) .'>'. ($page + 1) .'</a>';
echo '<div class="menu_2">'.$pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage.'</div>';
} else { echo'<div class="menu">Вы не авторизованы!</div>'; }
break;
###################################################
case 'mpanel':
title('Управление форумом');
echo'<div class="title">Управление форумом</div>';
if(is_admin(array(101))){
echo'<div class="menu"> Список форумов: (<a href="?mode=forum_add">Добавить</a>)</div>';
$forum = DB::run()->query("SELECT * FROM `forum`");
$forum = $forum -> fetchAll();
foreach($forum AS $u){
echo'<div class="menu_2">'.$u['id'].'. '.$u['themes'].' [<a href="?mode=forum_dell&id='.$u['id'].'">удал</a>][<a href="?mode=forum_edit&id='.$u['id'].'">изм</a>]</div>';
}
} else {echo'Вход разрешен только админ составу!</div>';}
break;
case 'forum_add':
title('Управление форумом');
echo'<div class="title">Управление форумом</div><div class="menu">';
if(is_admin(array(101))){
$name = check($_POST['name']);
if($name == NULL){
echo'<form action="?mode=forum_add" method="post">';
echo'<input name="name" type="text" value="" size="30" maxlength="50" />';
echo'<input type="submit" name="submit_1" id="submit" value="Добавить!">
</form>';
} else {
$count_f = DB::run() -> query("SELECT * FROM `forum` WHERE `themes`=?",array($name));
if($count_f -> rowCount() == 0) {
DB::run() -> query("INSERT INTO `forum`(`themes`) VALUES (?)",array($name));
header("Location: /forum/?mode=mpanel");
} else {echo'Такая тема уже создана!';}
}
} else {echo'Вход разрешен только админ составу!';}
echo'</div>';
break;
case 'forum_dell':
title('Управление форумом');
echo'<div class="title">Управление форумом</div><div class="menu">';
if(is_admin(array(101))){
if($id == NULL){ echo'Сообщение не выбрано!</div>'; } else {
//----------Удаляем посты-------------//
$while = DB::$dbh->query("select * from `forum_topic` where `themes` =?",array($id));
while($while = $while -> fetch()){
DB::run() -> query("DELETE FROM `forum_topic` WHERE `id` =?",array($while['id']));
}
//---------Удаляем под темы ---------//
$wh = DB::$dbh->query("select * from `forum_themes` where `forum` =?",array($id));
while($wh = $wh -> fetch()){
DB::run() -> query("DELETE FROM `forum_themes` WHERE `id` =?",array($wh['id']));
}
//--------Удаляем основную тему-----//
mysql_query('DELETE FROM `forum` WHERE `id` = "'.$id.'"');// удаление главной темы
DB::run() -> query("DELETE FROM `forum` WHERE `id`=?",array($id));
header("Location: /forum/?mode=mpanel");
echo'</div>';
}
} else {echo'Вход разрешен только админ составу!</div>';}
break;
case 'forum_edit':
title('Управление форумом');
echo'<div class="title">Управление форумом</div><div class="menu">';
$name = check($_POST['name']);
if(is_admin(array(101))){
if($name == NULL){
$z = DB::run() -> queryFetch("select * from `forum` where `id` =? LIMIT 1",array($id));
echo'<form action="/forum/?mode=forum_edit&id='.$id.'" method="post">';
echo'<input name="name" type="text" value="'.$z['themes'].'" size="30" maxlength="50" />';
echo'<input type="submit" name="submit_1" id="submit" value="Изменить!">
</form>';
echo'</div>';
} else {
DB::run() -> query("UPDATE `forum` SET `themes`=? WHERE `id` =?",array($name,$id));
header("Location: /forum/?mode=mpanel");
}
} else {echo'Вход разрешен только админ составу!</div>';}
break;
case 'forum_del_them':
if(is_admin(array())){
DB::run() -> query("DELETE FROM `forum_topic` WHERE `topic`=?",array($id));
DB::run() -> query("DELETE FROM `forum_themes` WHERE `id`=?",array($id));
header ('location: ?mode=index');
} else {echo'Вход разрешен только админ составу!</div>';}
default:
header ('location: ?mode=index');
endswitch;
include(MAINDIR.'style/foot.php');
?>