Файл: pages/forum/topic.php
Строк: 234
<?php
include ('../../system/mysql.php');
include ('../../system/sys_func.php');
$forum_id = intval($_GET['forum']);
$cat_id = intval($_GET['cat']);
$them_id = intval($_GET['them']);
// Если темы не существует...
if (isset($_GET['forum']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `forum` WHERE `id` = '". intval($_GET['forum']) ."'"),0) != 1 || isset($_GET['cat']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `f_category` WHERE `id` = '". intval($_GET['cat']) ."'"),0) != 1 || isset($_GET['cat']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `f_theme` WHERE `id` = '". intval($_GET['them']) ."'"), 0) != 1) {
$title = 'Форум/Ошибка';
include ('../../system/head.php');
echo '<div class="title"><a href="/pages/forum/">Форум</a> / Ошибка</div>
<div class="err">Такой темы не существует!</div>
<a class="link" href="topics.php?forum='. $forum_id .'&cat='. $cat_id .'">← Назад</a>';
foot();
exit;
}
// Отправляем сообщение
$error = false;
$errort = '';
if (isset($_POST['add'])) {
$msg = htmlspecialchars(mysql_real_escape_string($_POST['msg']));
if (strlen($msg) < 1) {
$error = true;
$errort .= '<div class="err">Длина сообщения должна быть не менее 1-ого символа.</div>';
} elseif (strlen($msg) > 2000) {
$error = true;
$errort .= '<div class="err">Длина сообщения должна быть не более 2000 символов.</div>';
}
if (!$error) {
mysql_query("INSERT INTO `f_post` (`forum_id`, `cat_id`, `them_id`, `id_user`, `msg`, `time`) values('$forum_id', '$cat_id', '$them_id', '$user[id]', '$msg', '". time() ."')");
mysql_query("UPDATE `f_theme` SET `forum_id` = '$forum_id', `cat_id` = '$cat_id', `last_post` = '". time() ."' WHERE `id` = '$them_id'");
header('Location: ?forum='. $forum_id .'&cat='. $cat_id .'&them='. $them_id .'&page=end');
exit;
}
}
// Удаляем комментарий
if (isset($_GET['del_p']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `f_post` WHERE `id` = '". intval($_GET['del_p']) ."'"),0) == 1) {
if ($user['position'] == 'admin' || $user['position'] == 'mod_f') {
$post = mysql_fetch_assoc(mysql_query("SELECT * FROM `f_post` WHERE `id` = '". intval($_GET['del_p']) ."' LIMIT 1"));
mysql_query("DELETE FROM `f_post` WHERE `id` = '".intval($_GET['del_p'])."'");
header('Location: ?forum='. $forum_id .'&cat='. $cat_id .'&them='. $them_id .'&page=end');
exit;
} else {
$title = 'Форум/Ошибка';
include ('../../system/head.php');
echo '<div class="err">У вас недостаточно прав!</div>
<a class="link" href="?forum='. $forum_id .'&cat='. $cat_id .'&them='. $them_id .'&page=end">Назад</a>';
foot();
exit;
}
}
// Скрываем/Восстановляем комментарий
if (isset($_GET['hide']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `f_post` WHERE `id` = '". intval($_GET['hide']) ."'"),0) == 1) {
if ($user['position'] == 'admin' || $user['position'] == 'mod_f') {
$post = mysql_fetch_assoc(mysql_query("SELECT * FROM `f_post` WHERE `id` = '". intval($_GET['hide']) ."' LIMIT 1"));
if ($post['hide'] == NULL) {
mysql_query("UPDATE `f_post` SET `hide` = '$user[login]' WHERE `id` = '". intval($_GET['hide']) ."'");
} else {
mysql_query("UPDATE `f_post` SET `hide` = '' WHERE `id` = '". intval($_GET['hide']) ."'");
}
header('Location: ?forum='. $forum_id .'&cat='. $cat_id .'&them='. $them_id .'&page=end');
exit;
} else {
$title = 'Форум/Ошибка';
include ('../../system/head.php');
echo '<div class="err">У вас недостаточно прав!</div><a class="link" href="?forum='. $forum_id .'&cat='. $cat_id .'&them='. $them_id .'&page=end">Назад</a>';
foot();
exit;
}
}
// Редактирование темы
if (isset($_GET['edit']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `f_theme` WHERE `id` = '". intval($_GET['edit']) ."'"),0)==1) {
$them = mysql_fetch_array(mysql_query("SELECT * FROM `f_theme` WHERE `id` = '". intval($_GET['edit']) ."'"));
if ($user['position'] == 'admin' || $user['position'] == 'mod_f') {
// Удаляем тему
if (isset($_GET['del']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `f_theme` WHERE `id` = '". intval($_GET['del']) ."'"), 0) == 1) {
if ($user['position'] == 'admin' || $user['position'] == 'mod_f') {
if (isset($_POST['yes'])) {
mysql_query("DELETE FROM `f_theme` WHERE `id` = '". intval($_GET['del']) ."'");
mysql_query("DELETE FROM `f_post` WHERE `them_id` = '". intval($_GET['del']) ."'");
header('Location: topics.php?forum='. $forum_id .'&cat='. $cat_id .'');
exit;
}
$title = 'Форум/Удаление темы';
include ('../../system/head.php');
echo '<div class="title"><a href="/pages/forum/">Форум</a> / Удаление темы</div>
<form method="post">
Вы уверены что хотите удалить эту тему со всеми комментариями?<br>
<input type="submit" name="yes" value="Да" /> <a href="?forum='. $forum_id .'&cat='. $cat_id .'&them='. $them_id .'&page=end">Нет</a>
</form>';
foot();
}
}
// Сохраняем изменённые данные
$error = false;
$errort = '';
if (isset($_POST['change'])) {
$name = htmlspecialchars(mysql_real_escape_string($_POST['name']));
$msg = htmlspecialchars(mysql_real_escape_string($_POST['msg']));
if (strlen($name) < 1) {
$error = true;
$errort .= '<div class="err">Длина имени должна быть не менее 1-ого символа.</div>';
} elseif (strlen($name) > 64) {
$error = true;
$errort .= '<div class="err">Длина имени должна быть не более 64-х символов.</div>';
}
if (strlen($msg) < 1) {
$error = true;
$errort .= '<div class="err">Длина сообщения должна быть не менее 1-ого символа.</div>';
} elseif (strlen($msg) > 20000) {
$error = true;
$errort .= '<div class="err">Длина сообщения должна быть не более 20 000 символов.</div>';
}
if (!$error) {
mysql_query("UPDATE `f_theme` SET `name` = '$name', `msg` = '$msg' WHERE `id` = '$them[id]'");
header('Location: topic.php?forum='. $forum_id .'&cat='. $cat_id .'&them='. $them_id);
exit;
}
}
$forum = mysql_fetch_array(mysql_query("SELECT * FROM `forum` WHERE `id` = '$forum_id'"));
$cat = mysql_fetch_array(mysql_query("SELECT * FROM `f_category` WHERE `id` = '". $cat_id ."' AND `forum_id` = '". $forum_id ."'"));
$them = mysql_fetch_array(mysql_query("SELECT * FROM `f_theme` WHERE `id` = '".intval($_GET['them'])."'"));
$title = 'Форум/Редактирование темы';
include ('../../system/head.php');
echo '<div class="title"><a href="/forum/">Форум</a> / <a href="category.php?forum='. $forum['id'] .'">'. $forum['name'] .'</a> / <a href="topics.php?forum='. $cat['id'] .'">'. $cat['name'] .'</a> / <a href="topic.php?forum='. $them['id'] .'">'. $them['name'] .'</a> / Редактирование темы</div>';
echo $errort;
echo '<form method="post" name="message" action="topic.php?forum='. $forum_id .'&cat='. $cat_id .'&them='. $them_id .'&edit='. $them_id .'">
<b>Имя темы</b>:<br><input type="text" name="name" value="'. $them['name'] .'"><br>
<b>Сообщение темы</b>:<br>
<textarea cols="20" rows="2" name="msg">'. $them['msg'] .'</textarea><br>
<input value="Изменить" type="submit" name="change" />
</form>';
echo '<a class="link" href="topic.php?forum='. $forum_id .'&cat='. $cat_id .'&them='. $them_id .'&edit='. $them['id'] .'&del='. $them['id'] .'"><img src="/design/imgs/delete.png"> Удалить тему</a>';
echo '<a class="link" href="topic.php?forum='. $forum_id .'&cat='. $cat_id .'&them='. $them_id .'">← Отмена</a>';
foot();
exit;
} else {
echo '<div class="err">У вас недостаточно прав!</div>
<a class="link" href="topic.php?forum='. $forum_id .'&cat='. $cat_id .'&them='. $them_id .'">← Назад</a>';
foot();
exit;
}
}
// Открываем тему
if (isset($_GET['open'])) {
if ($user['position'] == 'admin' || $user['position'] == 'mod_f'){
mysql_query("UPDATE `f_theme` SET `close` = '0' WHERE `id` = '$them_id' LIMIT 1");
mysql_query("INSERT INTO `f_post` (`forum_id`, `cat_id`, `them_id`, `id_user`, `msg`, `time`) values('$forum_id', '$cat_id', '$them_id', '2', 'Тему открыл <a href="/pages/users/user.php?name=$user[login]">$user[login]</a>.', '". time() ."')");
header('Location: ?forum='. $forum_id .'&cat='. $cat_id .'&them='. $them_id .'&page=end');
exit;
}
} elseif (isset($_GET['close'])) { // Закрываем тему
if ($user['position'] == 'admin' || $user['position'] == 'mod_f'){
mysql_query("UPDATE `f_theme` SET `close` = '1', `who_close` = '$user[login]' WHERE `id` = '$them_id' LIMIT 1");
mysql_query("INSERT INTO `f_post` (`forum_id`, `cat_id`, `them_id`, `id_user`, `msg`, `time`) values('$forum_id', '$cat_id', '$them_id', '2', 'Тему закрыл <a href="/pages/users/user.php?name=". $user['login'] ."">". $user['login'] ."</a>.', '". time() ."')");
header('Location: ?forum='. $forum_id .'&cat='. $cat_id .'&them='. $them_id .'&page=end');
exit;
}
}
// Открепляем тему
if (isset($_GET['undock'])) {
if ($user['position'] == 'admin' || $user['position'] == 'mod_f'){
mysql_query("UPDATE `f_theme` SET `fix` = '0' WHERE `id` = '$them_id' LIMIT 1");
mysql_query("INSERT INTO `f_post` (`forum_id`, `cat_id`, `them_id`, `id_user`, `msg`, `time`) values('$forum_id', '$cat_id', '$them_id', '2', 'Тему открепил <a href="/pages/users/user.php?name=$user[login]">$user[login]</a>.', '". time() ."')");
header('Location: ?forum='. $forum_id .'&cat='. $cat_id .'&them='. $them_id .'&page=end');
exit;
}
} elseif (isset($_GET['fasten'])) { // Закрепляем тему
if ($user['position'] == 'admin' || $user['position'] == 'mod_f'){
mysql_query("UPDATE `f_theme` SET `fix` = '1' WHERE `id` = '$them_id' LIMIT 1");
mysql_query("INSERT INTO `f_post` (`forum_id`, `cat_id`, `them_id`, `id_user`, `msg`, `time`) values('$forum_id', '$cat_id', '$them_id', '2', 'Тему закрепил <a href="/pages/users/user.php?name=$user[login]">$user[login]</a>.', '". time() ."')");
header('Location: ?forum='. $forum_id .'&cat='. $cat_id .'&them='. $them_id .'&page=end');
exit;
}
}
$forum = mysql_fetch_array(mysql_query("SELECT * FROM `forum` WHERE `id` = '$forum_id'"));
$cat = mysql_fetch_array(mysql_query("SELECT * FROM `f_category` WHERE `id` = '". $cat_id ."' AND `forum_id` = '". $forum_id ."'"));
$them = mysql_fetch_array(mysql_query("SELECT * FROM `f_theme` WHERE `id` = '".intval($_GET['them'])."'"));
$title = 'Форум/'. $them['name'];
include ('../../system/head.php');
echo '<div class="title"><a href="index.php">Форум</a> / <a href="category.php?forum='. $forum['id'] .'">'. $forum['name'] .'</a> / <a href="topics.php?forum='. $forum['id'] .'&cat='. $cat['id'] .'">'. $cat['name'] .'</a> / '. $them['name'] .'</div>';
echo $errort;
// Далее идёт вывод информации
$ank = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `id` = '$them[id_user]'"));
echo '<div class="post">
<span class="c_date">'. ptime($them['time']) .'</span>
<table cellpadding="0" cellspacing="0">
<tr>
<td>';
avatar($ank['id']);
echo ' </td><td>';
echo online($ank['id']);
echo '<a href="/pages/users/user.php?name='. $ank['login'] .'">'. $ank['login'] .'</a>';
echo browser($ank['id']);
echo '<br>';
echo position($ank['id']);
echo ' <b>'. output($them['name']) .'</b>';
if ($them['close']==1) {
echo ' <img src="/design/imgs/topic_locked.gif" alt="top" />';
}
echo '</td>
</tr>
</table>';
echo output($them['msg']);
echo '</div>';
if ($them['close'] == 1 && $them['who_close'] != NULL) {
echo '<div class="post">';
$who = mysql_fetch_assoc(mysql_query("SELECT * FROM `users` WHERE `login` = '$them[who_close]' LIMIT 1"));
echo '<span style="color:gray;font-size:small;">Тема закрыта <a href="/pages/users/user.php?name='. $who['login'] .'">'. $who['login'] .'</a></span>
</div>';
}
if ($user['position'] == 'admin' || $user['position'] == 'mod_f') {
echo '<div class="post_sys">';
if ($them['close'] == 0) {
echo '<a href="topic.php?forum='. $forum_id .'&cat='. $cat_id .'&them='. $them_id .'&close">Закрыть</a> | ';
} elseif ($them['close'] == 1) {
echo '<a href="topic.php?forum='. $forum_id .'&cat='. $cat_id .'&them='. $them_id .'&open">Открыть</a> | ';
}
if ($them['fix'] == 0) {
echo '<a href="topic.php?forum='. $forum_id .'&cat='. $cat_id .'&them='. $them_id .'&fasten">Закрепить</a>';
} elseif ($them['fix'] == 1) {
echo '<a href="topic.php?forum='. $forum_id .'&cat='. $cat_id .'&them='. $them_id .'&undock">Открепить</a>';
}
echo '</div>';
}
if ($user['position'] == 'admin' || $user['position'] == 'mod_f') echo '<a class="link" href="?forum='. $forum_id .'&cat='. $cat_id .'&them='. $them_id .'&edit='. $them['id'] .'">Редактировать</a>';
$c_p = mysql_result(mysql_query("SELECT COUNT(*) FROM `f_post` WHERE `forum_id` = '$forum_id' AND `cat_id` = '$cat_id' AND `them_id` = '$them_id'"),0);
$k_page = k_page($c_p, 10);
$page = page($k_page);
$start = 10*$page-10;
if ($c_p == 0) {
echo '<div class="post">';
echo 'Нет комментариев';
echo '</div>';
} else {
echo '<div class="post">';
echo '<b>Комментарии</b> ('. $c_p .')';
echo '</div>';
}
$q = mysql_query("SELECT * FROM `f_post` WHERE `forum_id` = '$forum_id' AND `cat_id` = '$cat_id' AND `them_id` = '$them_id' ORDER BY `time` ASC LIMIT $start, 10");
while ($post = mysql_fetch_assoc($q)) {
$ank = mysql_fetch_assoc(mysql_query("SELECT * FROM `users` WHERE `id` = '$post[id_user]' LIMIT 1"));
if ($post['hide'] == NULL) {
echo '<div class="post">
<span class="c_date">'. ptime($post['time']) .'</span>
<table cellpadding="0" cellspacing="0">
<tr>
<td>';
avatar($ank['id']);
echo ' </td><td>';
echo online($ank['id']);
echo '<a href="/pages/users/user.php?name='. $ank['login'] .'">'. $ank['login'] .'</a>';
echo browser($ank['id']);
echo '<br>';
echo position($ank['id']);
echo '</td>
</tr>
</table>
<div>';
echo output($post['msg']);
echo '</div>';
if ($user['position'] == 'admin' || $user['position'] == 'mod_f') {
echo '<br><a href="?forum='. $forum_id .'&cat='. $cat_id .'&them='. $them_id .'&hide='. $post['id'] .'">Скрыть</a> |
<a href="?forum='. $forum_id .'&cat='. $cat_id .'&them='. $them_id .'&del_p='. $post['id'] .'">Удалить</a>';
}
echo '</div>';
} else {
echo '<div class="post_sys">
<span class="c_date">'. ptime($post['time']) .'</span>
<table cellpadding="0" cellspacing="0">
<tr>
<td>';
avatar($ank['id']);
echo ' </td><td>';
echo online($ank['id']);
echo '<a href="/pages/users/user.php?name='. $ank['login'] .'">'. $ank['login'] .'</a>';
echo browser($ank['id']);
if ($user['position'] == 'admin' || $user['position'] == 'mod_f') {
echo '<br>';
echo position($ank['id']);
echo '<span style="color:darkred;font-size:small;">Комментарий скрыл '. $post['hide'] .'</span>
</td>
</tr>
</table>
<div>';
echo output($post['msg']);
} else {
echo '<br>';
echo position($ank['id']);
echo '<span style="color:darkred;font-size:small;">Комментарий скрыт</span>
</td>
</tr>
</table>
<div>';
}
echo '</div>
<br>';
if ($user['position'] == 'admin' || $user['position'] == 'mod_f') {
echo '<a href="?forum='. $forum_id .'&cat='. $cat_id .'&them='. $them_id .'&hide='. $post['id'] .'">Восстановить</a> |
<a href="?forum='. $forum_id .'&cat='. $cat_id .'&them='. $them_id .'&del_p='. $post['id'] .'">Удалить</a>';
}
echo '</div>';
}
}
if ($k_page > 1) str("?forum='. $forum_id .'&cat='. $cat_id .'&them='. $them_id .'&", $k_page, $page);
if (isset($user)) {
if ($them['close'] == 0) {
echo '<form method="post" name="message">';
echo '<textarea cols="20" rows="2" name="msg"></textarea><br>';
echo '<input value="Добавить" type="submit" name="add" />';
echo '</form>';
}
} else {
echo '<div class="err">Чтобы оставлять комментарии, вы должны <a href="/pages/registration/">зарегистрироваться</a> или <a href="/pages/registration/?menu=login">авторизоваться</a>!</div>';
}
$cat = mysql_fetch_array(mysql_query("SELECT * FROM `f_category` WHERE `id` = '$cat_id' AND `forum_id` = '$forum_id'"));
$forum = mysql_fetch_array(mysql_query("SELECT * FROM `forum` WHERE `id` = '$forum_id'"));
echo '<a class="link" href="topics.php?forum='. $forum_id .'&cat='. $cat['id'] .'">← '. $cat['name'] .'</a>';
echo '<a class="link" href="category.php?forum='. $forum['id'] .'">← '. $forum['name'] .'</a>';
echo '<a class="link" href="index.php">← Разделы</a>';
foot();
?>