Просмотр файла forum/index.php

Размер файла: 37.07Kb
  1. <?
  2. include('../core/core.php');
  3. include(BASEDIR.INC.'func.php');
  4. include(BASEDIR.INC.'session.php');
  5. include(BASEDIR.INC.'session_user.php');
  6. $mode = htmlspecialchars($_GET['mode']);
  7. include(BASEDIR.INC.'head.php');
  8. $id = abs(htmlspecialchars($_GET['id']));
  9. $themes = abs(htmlspecialchars($_GET['themes']));
  10.  
  11. /*
  12. ------------------------------------------------------
  13. Начало работы, инклудим главные данные
  14. ------------------------------------------------------
  15. */
  16. echo'<style>#txt {border-left: 8px solid #e2e2e2; padding-left: 4px; margin-left: 4px; text-indent: 2mm; font-size: 0.9em; color: #272727;}</style>';
  17. $menu = 'Новые: <a href="/forum/?mode=new_themes">темы</a> | <a href="/forum/?mode=new_topic">сообщения</a>';
  18. $t_menu = '<a href="?mode=index">Форум</a> / <a href="?mode='.$mode.'&id='.$id.'">Обновить</a> / <a href="?mode=themes_add&id='.$id.'">Создать тему</a>';
  19. $g_menu = '<a href="?mode=index">Форум</a> / <a href="?mode='.$mode.'&id='.$id.'">Обновить</a>';
  20. echo '<div class="razdel">Форум</div>';
  21. switch ($mode):
  22. /*
  23. ------------------------------------------------------
  24. Выбор гланой темы
  25. ------------------------------------------------------
  26. */
  27. case 'index':
  28. show_title('Форум');
  29. echo'<div class="menu">';
  30. echo $menu;
  31. echo'</div>';
  32. $sql = mysql_query('SELECT * FROM `forum` ORDER BY `id` DESC');
  33. while($row = mysql_fetch_assoc($sql))
  34. {
  35. echo'<div class="menu"><img src="/images/Forum.gif" alt=""> <a href="/forum/?mode=themes&id='.$row['id'].'">'.$row['themes'].'</a> ['.index_to('forum_themes','forum',$row['id']).'/'.index_to('forum_topic','themes',$row['id']).']<hr>';
  36. echo'Тема: ';if($row['pod_themes'] == NULL){echo'Темы ещё не созданы';} else {echo $row['pod_themes'];}echo'<br />
  37. Сообщение: ';if($row['login'] == NULL){echo'Нет';} else {echo '<a href="/users/profile.php?user='.$row['login'].'">'.$row['login'].'</a> ('.$row['data'].')';}
  38. echo'</div>';
  39. }
  40. echo'<div class="menu">';
  41. echo'Всего сообщений ('.index('forum_topic').')<br />
  42. Всего тем ('.index('forum_themes').')';
  43. if(is_admin(array(101))){echo'<br /><a href="/forum/?mode=forum">Управление</a>';}
  44. echo'</div>';
  45. break;
  46. /*
  47. ------------------------------------------------------
  48. Выбор темы
  49. ------------------------------------------------------
  50. */
  51. case 'themes':
  52. if($id == NULL){echo'Тема не выбрана!</div>';} else {
  53. echo $t_menu;
  54. $t = mysql_query("select * from `forum` where `id` = '".$id."'");
  55. $t = mysql_fetch_assoc($t);
  56. if($t['id'] == !NULL){
  57. echo'<div class="menu"><strong>'.$t['themes'].'</strong></div>';
  58. show_title($t['themes']);
  59. define('TOPAGE',10);
  60. $page=(int)$_GET['page'];
  61. $q=mysql_result(mysql_query("SELECT COUNT(*) FROM `forum_themes` WHERE forum = '$id'"),0);
  62. $total = intval(($q - 1) / TOPAGE) + 1;
  63. if(empty($page) or $page < 0) $page = 1;
  64. if($page > $total) $page = $total;
  65. $start = $page * TOPAGE -TOPAGE;
  66.  
  67. $g=mysql_query("SELECT * FROM `forum_themes` WHERE forum = '$id' ORDER BY `id` DESC LIMIT $start,".TOPAGE."");
  68. while($u=mysql_fetch_array($g)){
  69.  
  70. $t=mysql_result(mysql_query("SELECT COUNT(*) FROM `forum_topic` WHERE topic = '".$u['id']."'"),0);
  71. $tot = intval(($t - 1) / 10) + 1;
  72. 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="">';}}
  73. if($u['krep'] == 1){
  74. echo'<div class="menu"> '.$img.' <a href="/forum/?mode=topic&themes='.$id.'&id='.$u['id'].'&page='.$tot.'">'.$u['themes'].'</a> ['.index_to('forum_topic','topic',$u['id']).'] </div>';
  75. echo'<div class="menu">';
  76. echo''.$u['pod_themes'].'<br />
  77. Посл. соб: <a href="/users/profile.php?user='.$u['login'].'"><strong>'.$u['login'].'</strong></a>';
  78. echo'';}
  79. if($u['krep'] == 0){
  80. echo'<div class="menu"> '.$img.' <a href="/forum/?mode=topic&themes='.$id.'&id='.$u['id'].'&page='.$tot.'">'.$u['themes'].'</a> ['.index_to('forum_topic','topic',$u['id']).']</div>
  81. <div class="menu">';
  82. echo''.$u['pod_themes'].'<br />
  83. Посл. соб: <a href="/users/profile.php?user='.$u['login'].'"><strong>'.$u['login'].'</strong></a>';
  84. echo'</div>';}
  85. }
  86. if ($page != $total) $nextpage = ' <a href="/forum/?mode=themes&id='.$id.'&page='. ($page + 1) .'">Далее</a>';
  87. if($page - 1 > 0) $pageback = '<a href="/forum/?mode=themes&id='.$id.'&page='. ($page - 1) .'">Назад</a> ';
  88. echo'</div>'.$pageback.' '.$nextpage.'';
  89. } else {echo'<div class="menu">Темы не существует!</div>'; }
  90. }
  91. break;
  92. /*
  93. ------------------------------------------------------
  94. Вывод всех постов,написание нового постаы
  95. ------------------------------------------------------
  96. */
  97. case 'topic':
  98. $t = mysql_query("select * from `forum_themes` where `id` = '".$id."'");
  99. $t = mysql_fetch_assoc($t);
  100. $z = mysql_query("select * from `forum` where `id` = '".$themes."'");
  101. $z = mysql_fetch_assoc($z);
  102. if($t['id'] == !NULL){
  103. echo $g_menu;
  104. show_title($t['themes']);
  105. echo'<div class="menu"><img src="/images/menu.gif" alt=""><strong>'.$z['themes'].'</strong> / <strong>'.$t['themes'].'</strong>';
  106. if(is_admin()){echo'<a href="/forum/?mode=menu_themes&id='.$id.'"> [i]</a>';}
  107. if($t['mail_login'] == $_COOKIE['login'] && $t['status'] == 'on'){ echo' <a href="/forum/?mode=closed&id='.$id.'">Закрыть тему</a>'; }
  108. if(is_admin()){if($t['status'] == 'off'){echo' <a href="/forum/?mode=open&id='.$id.'">Открыть тему</a>';}}
  109. echo'</div>';
  110. define('TOPAGE',10);
  111. $page=(int)$_GET['page'];
  112. $q=mysql_result(mysql_query("SELECT COUNT(*) FROM `forum_topic` WHERE topic = '$id'"),0);
  113. $total = intval(($q - 1) / TOPAGE) + 1;
  114. if(empty($page) or $page < 0) $page = 1;
  115. if($page > $total) $page = $total;
  116. $start = $page * TOPAGE -TOPAGE;
  117.  
  118. $g=mysql_query("SELECT * FROM `forum_topic` WHERE topic = '$id' ORDER BY `id` LIMIT $start,".TOPAGE."");
  119. while($u=mysql_fetch_array($g)){
  120. echo'<div class="menu">';
  121. $p = mysql_query('SELECT * FROM session_user WHERE user = "'.$u['login'].'"');
  122. if(mysql_num_rows($p) != 0){ $on ='[<font color="green">On</font>]'; } else { $on ='[<font color="red">Off</font>]'; }
  123. $li =mysql_query("SELECT * FROM users WHERE `login`='".$u['login']."';");
  124. $li = mysql_fetch_assoc($li);
  125. if($li['avatar_mini'] == NULL){ $avatar ='/images/noavatar.gif'; } else {$avatar = ''.$li['avatar_mini'].'';}
  126. echo'<div style="overflow: hidden"><div style="float: left"><img src="'.$avatar.'"></div> <a href="/users/profile.php?user='.$u['login'].'">'.$u['login'].'</a><br />
  127. '.$u['data'].' '.$on.'</div><hr>';
  128. if($u['privat'] == !NULL){
  129. if($_COOKIE['login'] == $u['privat'] || $_COOKIE['login'] == $u['login']){
  130. echo''.$u['message'].'';
  131. } else { echo'Приватное сообщение, видит только адресат...'; }
  132. } else {
  133. echo''.$u['message'].'';
  134. }
  135. echo'<div align="right">';
  136. if(is_user()) {
  137. if($u['login'] == $_COOKIE['login']){} else {
  138. 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>]'; } }
  139. if(is_admin() || $u['time'] >= time() && $u['login'] == $_COOKIE['login']){ echo'[<a href="/forum/?mode=edit_topic&id='.$u['id'].'">изм</a>]'; }
  140. if(is_admin()){echo'[<a href="/forum/?mode=topic_dell&id='.$u['id'].'">удал</a>]';}
  141. }
  142. echo'</div></div>';
  143. }
  144. if ($page != $total) $nextpage = ' <a href="/forum/?mode=topic&themes='.$themes.'&id='.$id.'&page='. ($page + 1) .'">Далее</a>';
  145. if($page - 1 > 0) $pageback = '<a href="/forum/?mode=topic&themes='.$themes.'&id='.$id.'&page='. ($page - 1) .'">Назад</a> ';
  146. if($t['status'] == 'on'){
  147. echo'<div class="menu">';
  148. if(is_user()){
  149. echo'<form action="/forum/?mode=add_topic&themes='.$themes.'&id='.$id.'" name="1" method="post">';
  150. echo'Сообщение: (<a href="/pages/smiles.php">смайлы</a> / <a href="/pages/bb.php">теги</a>)<br />
  151. <TEXTAREA NAME="message" ROWS=4 COLS=25 input type="TEXTAREA" style="width: 95%; "></TEXTAREA><br />';
  152. echo'<input type="submit" name="submit" id="submit" value="Написать">
  153. </form>';
  154. echo'<form method="post" action="/forum/?mode=upload&themes='.$themes.'&id='.$id.'" enctype="multipart/form-data">
  155. Выберите файл :<br>
  156. <input name="filename" type="file"><br>
  157. <input type="submit" name="submit" value="Загрузить">
  158. </form>';
  159. } else {
  160. echo'Вы не авторизованы, чтобы добавить сообщение, необходимо
  161. <a href="/pages/user.php/forum/?mode=index">Авторизоваться</a> или в начале <a href="/pages/user.php/forum/?mode=reg">Зарегистрироваться</a>'; }
  162. } else {echo'</div><div class="menu"><img src="/images/forum/error.gif"> <strong>Данная тема закрыта для обсуждения!</strong></div>'; }
  163. echo'</div>'.$pageback.' '.$nextpage.'';
  164. } else {echo'<div class="menu">Темы не существует!</div>'; }
  165.  
  166. break;
  167. /*
  168. ------------------------------------------------------
  169. Закрытие темы пользователем.
  170. ------------------------------------------------------
  171. */
  172. case 'closed':
  173. show_title('Закрытие темы');
  174. echo'<div class="menu">';
  175. $t = mysql_query("select * from `forum_themes` where `id` = '".$id."'");
  176. $t = mysql_fetch_assoc($t);
  177. if($t['login'] == $_COOKIE['login']){
  178. if(is_user()){
  179.  
  180. mysql_query('UPDATE `forum_themes` SET `status`="off" WHERE `id` = "'.$id.'"');
  181. header("Location: /forum/?mode=themes&id=".$t['forum']."");
  182. } else {echo'Вы должны быть авторизованы!';}
  183. } else {echo'Не вы создавали тему, не вам ее закрывать!';}
  184. echo'</div>';
  185. break;
  186. /*
  187. ------------------------------------------------------
  188. Открытие темы пользователем.
  189. ------------------------------------------------------
  190. */
  191. case 'open':
  192. show_title('Открытие темы');
  193. echo'<div class="menu">';
  194. $t = mysql_query("select * from `forum_themes` where `id` = '".$id."'");
  195. $t = mysql_fetch_assoc($t);
  196. if(is_admin()){
  197. mysql_query('UPDATE `forum_themes` SET `status`="on" WHERE `id` = "'.$id.'"');
  198. header("Location: /forum/?mode=themes&id=".$t['forum']."");
  199. } else {echo'Вы должны быть авторизованы!';}
  200. echo'</div>';
  201. break;
  202.  
  203. /*
  204. ------------------------------------------------------
  205. Загрузка,прикрепление файла
  206. ------------------------------------------------------
  207. */
  208. case 'upload':
  209. show_title('Прикрепление файлов');
  210. echo'<div class="menu">';
  211. if(is_user()){
  212. $file = basename($_FILES['filename']['name']);
  213. $filename = '../obmen/forum/'.$file.'';
  214. if($file == '.htaccess' || $file == 'index.php'){echo'Ошибка! Файл входит в состав запрещеных!';} else {
  215. if (file_exists($filename)) { echo'Файл уже существует!'; } else {
  216. $siize = basename($_FILES['filename']['size']);
  217. $a = $siize / 1024;
  218. $otvet = round($a, 2);
  219. if($otvet > 2048){echo ("Размер файла превышает 2 Mб");exit;}
  220. // Проверяем загружен ли файл
  221. if(is_uploaded_file($_FILES["filename"]["tmp_name"]))
  222. {
  223. // Если файл загружен успешно, перемещаем его
  224. // из временной директории в конечную
  225. move_uploaded_file($_FILES["filename"]["tmp_name"], "../obmen/forum/".$_FILES["filename"]["name"]);
  226. $login = $_COOKIE['login'];
  227. $data = date("d.m.Y / H:i");
  228. $message = "<u>Прикрепленый файл</u><br /><a href='/forum/down.php?file=".$file."'>".$file."</a> [".$otvet." kb]";
  229. mysql_query('INSERT INTO `forum_topic`(`themes`, `topic`, `login`, `message`, `data`,`time`) VALUES ("'.$themes.'","'.$id.'","'.$login.'","'.$message.'","'.$data.'","'.$time.'")');
  230. mysql_query('UPDATE `forum_themes` SET `login`="'.$login.'", `pod_themes`="'.$data.'" WHERE `id` = "'.$id.'"');
  231. $q=mysql_result(mysql_query("SELECT COUNT(*) FROM `forum_topic` WHERE topic = '$id'"),0);
  232. $total = intval(($q - 1) / 10) + 1;
  233. echo'<div class="menu">Файл успешно загружен!<br /><a href="/forum/?mode=topic&themes='.$themes.'&id='.$id.'&page='.$total.'">Назад в тему</a></div>';
  234. } else {echo("Ошибка загрузки файла");}}}
  235. } else {echo'Вы должны быть авторизованы!';}
  236. echo'</div>';
  237. break;
  238. /*
  239. ------------------------------------------------------
  240. Создание нового поста
  241. ------------------------------------------------------
  242. */
  243. case 'add_topic':
  244. show_title('Новое сообщение');
  245. $message = check($_POST['message']);
  246. if(!empty($message)){
  247. if(is_user()){
  248. $s = $_SESSION['antiflood'] - time();
  249. if($_SESSION['antiflood'] >= time()){echo'Антифлуд! Разрешается отправлять сообщения раз в 30 секунд!<br />
  250. Осталось: >'.formattime($s).'</div>';
  251. }else{
  252. $login = $_COOKIE['login'];
  253. $data = date("d.m.Y / H:i");
  254. $message = antimat($message);
  255. $message = smiles($message);
  256. $message = bb($message);
  257. $message = no_br($message);
  258. $time = time() + (60 * 15);
  259. mysql_query('INSERT INTO `forum_topic`(`themes`, `topic`, `login`, `message`, `data`,`time`) VALUES ("'.$themes.'","'.$id.'","'.$login.'","'.$message.'","'.$data.'","'.$time.'")');
  260. mysql_query('UPDATE `forum_themes` SET `login`="'.$login.'", `pod_themes`="'.$data.'" WHERE `id` = "'.$id.'"');
  261. $q=mysql_result(mysql_query("SELECT COUNT(*) FROM `forum_topic` WHERE topic = '".$id."'"),0);
  262. $total = intval(($q - 1) / 10) + 1;
  263. header("Location: /forum/?mode=topic&themes=".$themes."&id=".$id."&page=".$total."");
  264. $_SESSION['antiflood'] = time() + 30;
  265. echo activ($_COOKIE['login']);
  266. echo rating_plus($_COOKIE['login'],1);
  267. }
  268. } else {echo'Вы не авторизованы, для создания новой темы, необходимо
  269. <a href="/user/">Авторизоваться</a> или в начале <a href="/user/reg.php">Зарегистрироваться</a>';}
  270. } else {echo'Вы ничего не ввели!</div>'; }
  271. break;
  272. /*
  273. ------------------------------------------------------
  274. Новая тема
  275. ------------------------------------------------------
  276. */
  277. case 'themes_add':
  278. show_title('Новая тема');
  279. echo'<div class="menu">';
  280. if($id == NULL){echo'Тема не выбрана!</div>';} else {
  281. if(is_user()){
  282. $t = mysql_query("select * from `forum` where `id` = '".$id."'");
  283. $t = mysql_fetch_assoc($t);
  284. echo'<strong>'.$t['themes'].'</strong><br /><br />';
  285. echo'<form action="/forum/?mode=add_themes&id='.$id.'" method="post">';
  286. echo'<strong>Заполните все поля</strong><br />';
  287. echo'
  288. Название новой темы:<br />
  289. <input type="text" name="name" value="" size="20" maxlength="35" /><br />
  290. Текст первого поста:<br />
  291. <TEXTAREA NAME="message" ROWS=4 COLS=25 input type="TEXTAREA" style="width: 95%; "></TEXTAREA>';
  292. echo'<input type="submit" name="submit" id="submit" value="Создать">
  293. </form>';
  294. echo'</div>';
  295. } else {echo'Вы не авторизованы, для создания новой темы, необходимо
  296. <a href="/pages/user.php/forum/?mode=index">Авторизоваться</a> или в начале <a href="/pages/user.php/forum/?mode=reg">Зарегистрироваться</a></div>';}
  297. }
  298. break;
  299. case 'add_themes':
  300. show_title('Новая тема');
  301. $name = htmlspecialchars($_POST['name']);
  302. $message = htmlspecialchars($_POST['message']);
  303. if(!empty($message) && !empty($name)){
  304. if(is_user()){
  305. $login = $_COOKIE['login'];
  306. $data = date("d.m.Y / H:i");
  307. $message = no_br($message);
  308. $message = antimat($message);
  309. $message = smiles($message);
  310. $message = bb($message);
  311. mysql_query('UPDATE `forum` SET `login`="'.$login.'", `pod_themes`="'.$name.'",`data`="'.$data.'" WHERE `id` = "'.$id.'"');
  312. mysql_query('INSERT INTO `forum_themes`(`forum`, `themes`, `login`, `pod_themes`, `status`, `krep`,`mail_login`) VALUES ("'.$id.'","'.$name.'","'.$login.'","'.$data.'","on","0","'.$login.'")');
  313. $sql = mysql_query('SELECT * FROM `forum_topic` ORDER BY `topic` DESC LIMIT 1'); $sql = mysql_fetch_assoc($sql); $next = $sql['topic'] + 1;
  314. $time = time() + (60 * 15);
  315. mysql_query('INSERT INTO `forum_topic`(`themes`, `topic`, `login`, `message`, `data`, `time`) VALUES ("'.$id.'","'.$next.'","'.$login.'","'.$message.'","'.$data.'","'.$time.'")');
  316. echo activ($_COOKIE['login']);
  317. echo rating_plus($_COOKIE['login'],1);
  318. header("Location: /forum/?mode=topic&themes=".$id."&id=".$next."");
  319. } else {echo'Вы не авторизованы, для создания новой темы, необходимо
  320. <a href="/pages/user.php/forum/?mode=index">Авторизоваться</a> или в начале <a href="/pages/user.php/forum/?mode=reg">Зарегистрироваться</a></div>';}
  321. } else {echo'Вы ничего не ввели!</div>'; }
  322. break;
  323. /*
  324. ------------------------------------------------------
  325. Настройка темы
  326. ------------------------------------------------------
  327. */
  328. case 'menu_themes':
  329. show_title('Настройки темы');
  330. echo'<div class="menu">';
  331. if(is_admin()){
  332. $t = mysql_query("select * from `forum_themes` where `id` = '".$id."'");
  333. $t = mysql_fetch_assoc($t);
  334. echo'<strong>'.$t['themes'].'</strong><br /><br />';
  335. echo'<form action="/forum/?mode=edit_1&id='.$id.'" method="post">';
  336. echo'<strong>Изменяем тему</strong><br /><br />
  337. Название темы:<br />
  338. <input type="text" name="name" value="'.$t['themes'].'" size="20" maxlength="35" /><br />
  339. Парамет темы 1<br />
  340. <select name="krep">';
  341. if($t['krep'] == 0){echo'<option value="0">Откреплена</option><option value="1">Закреплена</option>';} else {echo'<option value="1">Закреплена</option><option value="0">Откреплена</option>';}
  342. echo'</select><br />
  343. Парамет темы 2<br />
  344. <select name="open">';
  345. if($t['status'] == 'on'){echo'<option value="on">Открыта</option><option value="off">Закрыта</option>';} else {echo'<option value="off">Закрыта</option><option value="on">Открыта</option>';}
  346. echo'</select><br />';
  347. echo'<input type="submit" name="submit" id="submit" value="Изменить">
  348. </form>';
  349. echo'<form action="/forum/?mode=edit_2&id='.$id.'" method="post">';
  350. echo'<select name="per">';
  351. $sql = mysql_query('SELECT * FROM `forum`');
  352. while($u=mysql_fetch_array($sql)){
  353. echo'<option value="'.$u['id'].'">'.$u['themes'].'</option>';
  354. }
  355. echo'</select><br />';
  356. echo'<input type="submit" name="submit_1" id="submit" value="Переместить">
  357. </form>';
  358. echo'<hr>
  359. <a href="?mode=forum_del_them&id='.$id.'">Удалить тему</a>
  360. ';
  361. echo'</div>';
  362. } else {echo'Менять настройки темы можно только админ составу!';}
  363. echo'</div>';
  364. break;
  365. case 'edit_1':
  366. show_title('Настройки темы');
  367. if(is_admin()){
  368. $name = htmlspecialchars($_POST['name']);
  369. $open = htmlspecialchars($_POST['open']);
  370. $krep = htmlspecialchars($_POST['krep']);
  371. mysql_query('UPDATE `forum_themes` SET `themes`="'.$name.'", `status`="'.$open.'",`krep`="'.$krep.'" WHERE `id` = "'.$id.'"');
  372. echo'Данные изменены!</div>';
  373. } else {echo'Менять настройки темы можно только админ составу!';}
  374. break;
  375. case 'edit_2':
  376. show_title('Настройки темы');
  377. if(is_admin()){
  378. $per = htmlspecialchars($_POST['per']);
  379. mysql_query('UPDATE `forum_themes` SET `forum`="'.$per.'" WHERE `id` = "'.$id.'"');
  380. $t = mysql_query("select * from `forum_topic` where `topic` = '".$id."'");
  381. while($u=mysql_fetch_array($t)){
  382. mysql_query('UPDATE `forum_topic` SET `themes`="'.$per.'" WHERE `id` = "'.$u['id'].'"');
  383. }
  384. echo'Данные изменены!</div>';
  385. } else {echo'Менять настройки темы можно только админ составу!';}
  386. break;
  387. /*
  388. ------------------------------------------------------
  389. Удаление поста
  390. ------------------------------------------------------
  391. */
  392. case 'topic_dell':
  393. if(is_admin()){
  394. if($id == !NULL){
  395. mysql_query('DELETE FROM `forum_topic` WHERE `id` = "'.$id.'"');
  396. $ba = $_SERVER['HTTP_REFERER'];
  397. header("Location: ".$ba."");
  398. } else {echo'Сообщение не выбрано!</div>';}
  399. } else {echo'Удалять темы можно только админ составу!';}
  400. break;
  401. /*
  402. ------------------------------------------------------
  403. Редактирование поста
  404. ------------------------------------------------------
  405. */
  406. case 'edit_topic':
  407. show_title('Изменения поста');
  408. echo'<div class="menu">';
  409. $t = mysql_query("select * from `forum_topic` where `id` = '".$id."'");
  410. $t = mysql_fetch_assoc($t);
  411. if(is_admin() || $t['login'] == $_COOKIE['login'] && $t['time'] >= time()){
  412. if($id == NULL){ echo'Сообщение не выбрано!</div>'; } else {
  413. echo'<strong>Изменяем пост</strong><br />';
  414. echo'<form action="/forum/?mode=topic_edit&id='.$id.'" method="post">';
  415. echo'<TEXTAREA NAME="message" ROWS=4 COLS=25 input type="TEXTAREA" style="width: 95%; ">'.nosmiles($t['message']).'</TEXTAREA>';
  416. echo'<input type="submit" name="submit_1" id="submit" value="Изменить">
  417. </form>';
  418. }
  419. }else { echo'15 Минут уже прошло! Редактировать сообщение невозможно!'; }
  420. echo'</div>';
  421. break;
  422. case 'topic_edit':
  423. show_title('Изменения поста');
  424. $message = htmlspecialchars($_POST['message']);
  425. if($message == ''){echo'Вы ничего не ввели!'; } else {
  426. if(is_user()){
  427. $message = antimat($message);
  428. $message = smiles($message);
  429. $message = bb($message);
  430. $data = date("d.m.Y / H:i");
  431. $text = ''.$message.'<br /><small><font color=red>Изменено <strong>'.$_COOKIE['login'].'</strong> '.$data.'</font></small>';
  432. mysql_query('UPDATE `forum_topic` SET `message`="'.$text.'" WHERE `id` = "'.$id.'"');
  433. $t = mysql_query("select * from `forum_topic` where `id` = '".$id."'");
  434. $t = mysql_fetch_assoc($t);
  435. $q=mysql_result(mysql_query("SELECT COUNT(*) FROM `forum_topic` WHERE topic = '$id'"),0);
  436. $total = intval(($q - 1) / 10) + 1;
  437. header("Location: /forum/?mode=topic&themes=".$t['themes']."&id=".$t['topic']."&page=".$total."");
  438. } else {echo'Для начало надо зарегистрироватся!';}
  439. }
  440. echo'</div>';
  441. break;
  442. /*
  443. ------------------------------------------------------
  444. Цитирование поста
  445. ------------------------------------------------------
  446. */
  447. case 'c_topic':
  448. show_title('Цитирование поста');
  449. echo'<div class="menu">';
  450. if($id == NULL){ echo'Сообщение не выбрано!'; } else {
  451. $t = mysql_query("select * from `forum_topic` where `id` = '".$id."'");
  452. $t = mysql_fetch_assoc($t);
  453. $z = mysql_query("select * from `forum_themes` where `id` = '".$t['topic']."'");
  454. $z = mysql_fetch_assoc($z);
  455. if($z['status'] == 'on'){
  456. if($t['login'] == $_COOKIE['login']){ echo'Зачем цитировать свои же сообщения?'; } else {
  457. echo'Текст сообщения<br />';
  458. echo'<div id=txt>'.$t['message'].'</div>';
  459. echo'<form action="/forum/?mode=topic_c&id='.$id.'" method="post">';
  460. echo'<TEXTAREA NAME="message" ROWS=4 COLS=25 input type="TEXTAREA" style="width: 95%; "></TEXTAREA><br />';
  461. echo'<input type="checkbox" name="ck1"> Оповестить по привату<br />
  462. <input type="checkbox" name="ck2"> Приватно<br />';
  463. echo'<input type="submit" name="submit_1" id="submit" value="Цитировать">
  464. </form>';
  465. }
  466. } else {echo'Тема закрыта!'; }
  467. }
  468. echo'</div>';
  469. break;
  470. case 'topic_c':
  471. show_title('Цитирование поста');
  472. if(is_user()){
  473. $message = htmlspecialchars($_POST['message']);
  474. if($message == ''){echo'Вы ничего не ввели!'; } else {
  475. $t = mysql_query("select * from `forum_topic` where `id` = '".$id."'");
  476. $t = mysql_fetch_assoc($t);
  477. $login = $_COOKIE['login'];
  478. $data = date("d.m.Y / H:i");
  479. $message = no_br($message);
  480. $message = antimat($message);
  481. $message = smiles($message);
  482. $message = bb($message);
  483. $text = '<div id=txt>'.$t['message'].'</div>'.$message.'';
  484. $time = time() + (60 * 15);
  485. if(isset($_POST['ck2'])){$privat = $t['login'];} else { $privat = NULL; }
  486. mysql_query('INSERT INTO `forum_topic`(`themes`, `topic`, `login`, `message`, `data`,`time`,`privat`) VALUES ("'.$t['themes'].'","'.$t['topic'].'","'.$login.'","'.$text.'","'.$data.'","'.$time.'","'.$privat.'")');
  487. mysql_query('UPDATE `forum_themes` SET `login`="'.$login.'", `pod_themes`="'.$data.'" WHERE `id` = "'.$t['topic'].'"');
  488. $_SESSION['antiflood'] = time() + 30;
  489. echo activ($_COOKIE['login']);
  490. echo rating_plus($_COOKIE['login'],1);
  491. $q=mysql_result(mysql_query("SELECT COUNT(*) FROM `forum_topic` WHERE topic = '$id'"),0);
  492. $total = intval(($q - 1) / 10) + 1;
  493. header("Location: /forum/?mode=topic&themes=".$t['themes']."&id=".$t['topic']."&page=".$total."");
  494. if(isset($_POST['ck1'])){
  495. $i = $_COOKIE['login'];
  496. $log = $t['login'];
  497. $data = date("d.m.Y H:i:s");
  498. $y = mysql_query("select * from `forum_themes` where `id` = '".$t['themes']."'");
  499. $y = mysql_fetch_assoc($y);
  500. $msg = 'Пользователь <a href="/users/profile.php&user='.$i.'">'.$i.'</a> ответил на ваше сообщение в теме <a href="/forum/?mode=topic&themes='.$t['themes'].'&id='.$t['topic'].'&page='.$total.'">'.$y['themes'].'</a>';
  501. mysql_query("INSERT INTO `send_mail`(`my_login`, `send_login`, `msg`, `data`) VALUES ('$i','$log','$msg','$data')");
  502. mysql_query("UPDATE `users` SET `my_mail`=`my_mail` + 1 WHERE login = '".$log."'");
  503. }
  504. }
  505. } else {echo'Для начало надо зарегистрироватся!';}
  506. break;
  507. /*
  508. ------------------------------------------------------
  509. Ответ на пост
  510. ------------------------------------------------------
  511. */
  512. case 'otvet_topic':
  513. show_title('Ответ');
  514. echo'<div class="menu">';
  515. if($id == NULL){ echo'Сообщение не выбрано!'; } else {
  516. $t = mysql_query("select * from `forum_topic` where `id` = '".$id."'");
  517. $t = mysql_fetch_assoc($t);
  518. $z = mysql_query("select * from `forum_themes` where `id` = '".$t['topic']."'");
  519. $z = mysql_fetch_assoc($z);
  520. if($z['status'] == 'on'){
  521. if($t['login'] == $_COOKIE['login']){ echo'Зачем отвечать на свои же сообщения?'; } else {
  522. echo'Текст сообщения<br />';
  523. echo'<div id=txt>'.$t['message'].'</div>';
  524. echo'<form action="/forum/?mode=topic_otvet&id='.$id.'" method="post">';
  525. echo'<TEXTAREA NAME="message" ROWS=4 COLS=25 input type="TEXTAREA" style="width: 95%; "></TEXTAREA><br />';
  526. echo'<input type="checkbox" name="ck1"> Оповестить по привату<br />
  527. <input type="checkbox" name="ck2"> Приватно<br />';
  528. echo'<input type="submit" name="submit_1" id="submit" value="Ответить">
  529. </form>';
  530. }
  531. } else {echo'Тема закрыта!'; }
  532. }
  533. echo'</div>';
  534. break;
  535. case 'topic_otvet':
  536. show_title('Ответ');
  537. if(is_user()){
  538. $message = htmlspecialchars($_POST['message']);
  539. if($message == ''){echo'Вы ничего не ввели!'; } else {
  540. $t = mysql_query("select * from `forum_topic` where `id` = '".$id."'");
  541. $t = mysql_fetch_assoc($t);
  542. $login = $_COOKIE['login'];
  543. $data = date("d.m.Y / H:i");
  544. $message = no_br($message);
  545. $message = antimat($message);
  546. $message = smiles($message);
  547. $message = bb($message);
  548. $text = '<strong>'.$t['login'].'</strong>, '.$message.'';
  549. $time = time() + (60 * 15);
  550. if(isset($_POST['ck2'])){$privat = $t['login'];} else { $privat = NULL; }
  551. mysql_query('INSERT INTO `forum_topic`(`themes`, `topic`, `login`, `message`, `data`,`time`,`privat`) VALUES ("'.$t['themes'].'","'.$t['topic'].'","'.$login.'","'.$text.'","'.$data.'","'.$time.'","'.$privat.'")');
  552. mysql_query('UPDATE `forum_themes` SET `login`="'.$login.'", `pod_themes`="'.$data.'" WHERE `id` = "'.$t['topic'].'"');
  553. $_SESSION['antiflood'] = time() + 30;
  554. echo activ($_COOKIE['login']);
  555. echo rating_plus($_COOKIE['login'],1);
  556. $q=mysql_result(mysql_query("SELECT COUNT(*) FROM `forum_topic` WHERE topic = '".$id."'"),0);
  557. $total = intval(($q - 1) / 10) + 1;
  558. header("Location: /forum/?mode=topic&themes=".$t['themes']."&id=".$t['topic']."&page=".$total."");
  559. //оповещаем по привату//
  560. if(isset($_POST['ck1'])){
  561. $i = $_COOKIE['login'];
  562. $log = $t['login'];
  563. $data = date("d.m.Y H:i:s");
  564. $y = mysql_query("select * from `forum_themes` where `id` = '".$t['themes']."'");
  565. $y = mysql_fetch_assoc($y);
  566. $msg = 'Пользователь <a href="/users/profile.php&user='.$i.'">'.$i.'</a> ответил на ваше сообщение в теме <a href="/forum/?mode=topic&themes='.$t['themes'].'&id='.$t['topic'].'&page='.$total.'">'.$y['themes'].'</a>';
  567. mysql_query("INSERT INTO `send_mail`(`my_login`, `send_login`, `msg`, `data`) VALUES ('$i','$log','$msg','$data')");
  568. mysql_query("UPDATE `users` SET `my_mail`=`my_mail` + 1 WHERE login = '".$log."'");
  569. }
  570. }
  571. } else {echo'Для начало надо зарегистрироватся!';}
  572. break;
  573. /*
  574. ------------------------------------------------------
  575. Новые посты
  576. ------------------------------------------------------
  577. */
  578. case 'new_topic':
  579. show_title('Новые сообщения');
  580. echo'Список последних сообщений</div>';
  581. $t = mysql_query("select * from `forum_topic` ORDER BY `id` DESC LIMIT 10");
  582. while($u=mysql_fetch_array($t)){
  583. $z = mysql_query("select * from `forum_themes` where `id` = '".$u['topic']."'");
  584. $z = mysql_fetch_assoc($z);
  585.  
  586. $q=mysql_result(mysql_query("SELECT COUNT(*) FROM `forum_topic` WHERE topic = '".$u['topic']."'"),0);
  587. $total = intval(($q - 1) / 10) + 1;
  588. 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="">';}
  589. echo' <a href="/forum/?mode=topic&themes='.$u['themes'].'&id='.$z['id'].'&page='.$total.'">'.$z['themes'].'</a> </div><div class="menu">';
  590.  
  591. if($u['privat'] == !NULL){
  592. if($_COOKIE['login'] == $u['privat'] || $_COOKIE['login'] == $u['login']){
  593. echo''.$u['message'].'';
  594. } else { echo'Приватное сообщение, видит только адресат...'; }
  595. } else {
  596. echo''.$u['message'].'';
  597. }
  598. echo'<br />Написал: <a href="/users/profile.php?user='.$u['login'].'">'.$u['login'].'</a> ('.$u['data'].')';
  599. echo'</div>';
  600. }
  601. break;
  602. /*
  603. ------------------------------------------------------
  604. Новые темы
  605. ------------------------------------------------------
  606. */
  607. case 'new_themes':
  608. show_title('Новые темы');
  609. echo' Список последних тем</div>';
  610. $t = mysql_query("select * from `forum_themes` ORDER BY `id` DESC LIMIT 10");
  611. while($u=mysql_fetch_array($t)){
  612. 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="">';}}
  613. if($u['krep'] == 1){
  614. echo'<div class="menu"> '.$img.' <a href="/forum/?mode=topic&themes='.$id.'&id='.$u['id'].'&page='.$tot.'">'.$u['themes'].'</a> ['.index_to('forum_topic','topic',$u['id']).']</div>
  615. <div class="menu">';
  616. echo''.$u['pod_themes'].'<br />
  617. Посл. соб: <a href="/users/profile.php?user='.$u['login'].'"><strong>'.$u['login'].'</strong></a>';
  618. echo'</div>';}
  619. if($u['krep'] == 0){
  620. echo'<div class="menu"> '.$img.' <a href="/forum/?mode=topic&themes='.$id.'&id='.$u['id'].'&page='.$tot.'">'.$u['themes'].'</a> ['.index_to('forum_topic','topic',$u['id']).']</div>
  621. <div class="menu">';
  622. echo''.$u['pod_themes'].'<br />
  623. Посл. соб: <a href="/users/profile.php?user='.$u['login'].'"><strong>'.$u['login'].'</strong></a>';
  624. echo'</div>';}
  625. }
  626. break;
  627. /*
  628. ------------------------------------------------------
  629. Поиск
  630. ------------------------------------------------------
  631. */
  632. case 'search':
  633. show_title('Поиск');
  634. echo'<div class="menu">';
  635. if(is_user()){
  636. echo'<form action="?mode=set" method="post">
  637. Запрос:<br />
  638. <input name="whot" type="text" maxlength="50" /><br />
  639. Искать:<br />
  640. <input name="isc" type="radio" value="message" checked/> В сообщениях<br />
  641. <input name="isc" type="radio" value="themes" /> В темах<br />
  642. <input name="" type="submit" value="Искать" />
  643. </form>';
  644. } else { echo'Вы не авторизованы, чтобы использовать поиск.'; }
  645. echo'</div>';
  646. break;
  647. case 'set':
  648. show_title('Поиск');
  649. echo'<div class="menu">';
  650. if(is_user()){
  651. $whot = htmlspecialchars($_POST['whot']);
  652. $isc = htmlspecialchars($_POST['isc']);
  653. if(!empty($whot)){
  654. if($isc == 'message'){
  655. $q = mysql_query("SELECT * FROM `forum_topic` WHERE message LIKE '%$whot%';");
  656. if(mysql_num_rows($q) != 0){
  657. while($r = mysql_fetch_assoc($q)){
  658. echo'</div><div class="menu">';
  659. echo '<a href="/users/profile.php?user='.$r['login'].'">'.$r['login'].'</a><hr>'.$r['message'].'';
  660. echo'</div><div class="menu">';
  661. }
  662. } else {echo'Совпадений не найдено!'; }
  663. } else {
  664. $q = mysql_query("SELECT * FROM `forum_themes` WHERE themes LIKE '%$whot%';");
  665. if(mysql_num_rows($q) != 0){
  666. while($r = mysql_fetch_assoc($q)){
  667. echo'</div><div class="menu">';
  668. echo 'Последние сообщение написал: <a href="/users/profile.php?user='.$r['login'].'">'.$r['login'].'</a><hr>'.$r['themes'].'';
  669. echo'</div><div class="menu">';
  670. }
  671. } else {echo'Совпадений не найдено!'; }
  672. }
  673. } else { echo'Что ищем?...'; }
  674. } else { echo'Вы не авторизованы, чтобы использовать поиск.'; }
  675. echo'</div>';
  676. break;
  677. /*
  678. ------------------------------------------------------
  679. Админка
  680. ------------------------------------------------------
  681. */
  682. case 'forum':
  683. show_title('Админка');
  684. if(is_admin(array(101))){
  685. echo' Список форумов: (<a href="/forum/?mode=forum_add">Добавить</a>)</div>';
  686. $t = mysql_query("select * from `forum`");
  687. while($u=mysql_fetch_array($t)){
  688. echo'<div class="menu">'.$u['id'].'. '.$u['themes'].' [<a href="/forum/?mode=forum_dell&id='.$u['id'].'">удал</a>][<a href="/forum/?mode=forum_edit&id='.$u['id'].'">изм</a>]</div>';
  689. }
  690. } else {echo'Вход разрешен только админ составу!</div>';}
  691. break;
  692. case 'forum_dell':
  693. show_title('Админка');
  694. if(is_admin(array(101))){
  695. if($id == NULL){ echo'Сообщение не выбрано!</div>'; } else {
  696. //----------Удаляем посты-------------//
  697. $z = mysql_query("select * from `forum_topic` where `themes` = '".$id."'");
  698. while($y=mysql_fetch_array($z)){
  699. mysql_query('DELETE FROM `forum_topic` WHERE `id` = "'.$y['id'].'"');
  700. }
  701. //---------Удаляем под темы ---------//
  702. $t = mysql_query("select * from `forum_themes` where `forum` = '".$id."'");
  703. while($u=mysql_fetch_array($t)){
  704. mysql_query('DELETE FROM `forum_themes` WHERE `id` = "'.$u['id'].'"');
  705. }
  706. //--------Удаляем основную тему-----//
  707. mysql_query('DELETE FROM `forum` WHERE `id` = "'.$id.'"');// удаление главной темы
  708. header("Location: /forum/?mode=forum");
  709. }
  710. } else {echo'Вход разрешен только админ составу!</div>';}
  711. break;
  712. case 'forum_edit':
  713. show_title('Админка');
  714. $name = htmlspecialchars($_POST['name']);
  715. if(is_admin(array(101))){
  716. if($name == ''){
  717. $z = mysql_query("select * from `forum` where `id` = '".$id."'");
  718. $z = mysql_fetch_assoc($z);
  719. echo'<form action="/forum/?mode=forum_edit&id='.$id.'" method="post">';
  720. echo'<input name="name" type="text" value="'.$z['themes'].'" size="30" maxlength="50" />';
  721. echo'<input type="submit" name="submit_1" id="submit" value="Изменить!">
  722. </form>';
  723. echo'</div>';
  724. } else {
  725. mysql_query('UPDATE `forum` SET `themes`="'.$name.'" WHERE `id` = "'.$id.'"');
  726. header("Location: /forum/?mode=forum");
  727. }
  728. } else {echo'Вход разрешен только админ составу!</div>';}
  729. break;
  730. case 'forum_add':
  731. show_title('Админка');
  732. if(is_admin(array(101))){
  733. $name = htmlspecialchars($_POST['name']);
  734. if($name == NULL){
  735. echo'<form action="/forum/?mode=forum_add" method="post">';
  736. echo'<input name="name" type="text" value="" size="30" maxlength="50" />';
  737. echo'<input type="submit" name="submit_1" id="submit" value="Добавить!">
  738. </form>';
  739. echo'</div>';
  740. } else {
  741. mysql_query('INSERT INTO `forum`(`themes`) VALUES ("'.$name.'")');
  742. header("Location: /forum/?mode=forum");
  743. }
  744. } else {echo'Вход разрешен только админ составу!</div>';}
  745. break;
  746. case 'forum_del_them':
  747. if(is_admin(array())){
  748. mysql_query('DELETE FROM `forum_topic` WHERE `topic` = "'.$id.'"');
  749. mysql_query('DELETE FROM `forum_themes` WHERE `id` = "'.$id.'"');
  750. header ('location: ?mode=index');
  751. } else {echo'Вход разрешен только админ составу!</div>';}
  752. break;
  753. default:
  754. header ('location: ?mode=index');
  755. endswitch;
  756. echo'<div class="menu"><a href="/pages/prav.php">Правила</a> | <a href="?mode=search">Поиск</a></div>';
  757. echo'<div class="menu"><a href="/">На главную</a></div>';
  758. include(BASEDIR.INC.'foot.php');
  759. ?>