Файл: pages/news/news.php
Строк: 409
<?php
include ('../../system/mysql.php');
include ('../../system/sys_func.php');
$news_id = intval($_GET['id']);
switch ($_GET['menu']) {
default:
if (intval($_GET['id']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `news` WHERE `id` = '". intval($_GET['id']) ."'"), 0) != 1 || !intval($_GET['id'])) {
$title = 'Новости/Ошибка';
include ('../../system/head.php');
echo '<div class="title"><a href="/pages/news/">Новости</a> / Ошибка</div>
<div class="err">Такой новости не существует.</div>
<a class="link" href="/pages/news/">← Назад</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 `n_post` (`news_id`, `id_user`, `msg`, `time`) values('$news_id', '". $user['id'] ."', '". $msg ."', '". time() ."')");
header('Location: ?id='. $news_id .'&page=end');
exit;
}
}
$news = mysql_fetch_array(mysql_query("SELECT * FROM `news` WHERE `id` = '". $news_id ."'"));
$title = 'Новости/'. $news['name'];
include ('../../system/head.php');
echo '<div class="title"><a href="/pages/news/">Новости</a> / '. $news['name'] .'</div>';
echo $errort;
$who_add = mysql_fetch_assoc(mysql_query("SELECT * FROM `users` WHERE `id` = '". $news['user_id'] ."' LIMIT 1"));
echo '<div class="post">
<span class="c_date">'. ptime($news['time']) .'</span>
<b>'. output($news['name']) .'</b>
<br>'. output($news['msg']) .'
</div>
<div class="post">Добавил: ';
echo online($who_add['id']);
echo '<a href="/pages/users/user.php?name='. $who_add['login'] .'">'. $who_add['login'] .'</a>';
echo browser($who_add['id']);
echo '</div>';
if ($user['position'] == 'admin') echo '<a class="link" href="?menu=edit&id='. $news_id .'&edit">Редактировать</a>';
$c_p = mysql_result(mysql_query("SELECT COUNT(*) FROM `n_post` WHERE `news_id` = '$news_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">
Нет комментариев
</div>';
} else {
echo '<div class="post">
<b>Комментарии</b> ('. $c_p .')
</div>';
}
$q = mysql_query("SELECT * FROM `n_post` WHERE `news_id` = '$news_id' ORDER BY `time` DESC 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"));
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="?menu=action&post='. $post['id'] .'">';
echo $ank['login'];
echo '</a>';
echo browser($ank['id']);
echo '<br>';
echo position($ank['id']);
echo '</td>
</tr>
</table>
'. output($post['msg']) .'
</div>';
}
if ($k_page > 1) str("?id=$news_id&", $k_page, $page); // Вывод страниц
if (isset($user)) {
echo '<form method="post" name="message">
<textarea cols="24" rows="3" name="msg"></textarea><br>
<input value="Добавить" type="submit" name="add" />
</form>';
} else {
echo '<div class="err">Чтобы оставлять комментарии, вы должны <a href="/reg.php">зарегистрироваться</a> или <a href="/login.php">авторизоваться</a>!</div>';
}
if ($user['position'] == 'admin') echo '<a class="link" href="?id='. $news['id'] .'&menu=action&truncate"><img src="/design/imgs/delete.png" /> Очистить новость от комментариев</a>';
echo '<a class="link" href="index.php">← Новости</a>';
foot();
break;
case 'action':
// Ответ
if (isset($_GET['reply']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `n_post` WHERE `id` = '". intval($_GET['reply']) ."'"),0) == 1) {
$post = mysql_fetch_array(mysql_query("SELECT * FROM `n_post` WHERE `id` = '". intval($_GET['reply']) ."' LIMIT 1"));
$news = mysql_fetch_array(mysql_query("SELECT * FROM `news` WHERE `id` = '". $post['news_id'] ."'"));
$ank = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `id` = '". $post['id_user'] ."' LIMIT 1"));
if (!isset($user)) {
$title = 'Новости/Ошибка';
include ('../../system/head.php');
echo '<div class="title"><a href="/pages/news/">Новости</a> / Ошибка</div>
<div class="err">Чтобы просматривать данную страницу вы должны <a href="/reg.php">зарегистрироваться</a> или <a href="/login.php">авторизоваться</a>!</div>
<a class="link" href="?id='. $news['id'] .'">← Назад</a>';
foot();
exit;
}
if ($post['id_user'] == $user['id']) {
$title = 'Новости/Ошибка';
include ('../../system/head.php');
echo '<div class="title"><a href="/pages/news/">Новости</a> / Ошибка</div>
<div class="err">Вы не можете отвечать сами себе.</div>
<a class="link" href="?id='. $news['id'] .'">← Назад</a>';
foot();
exit;
}
$error = false;
$errort = '';
if (isset($_POST['msg'])) {
$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 `n_post` (`id_user`, `news_id`, `time`, `msg`) VALUES ('". $user['id'] ."', '". $news['id'] ."', '". time() ."', '<span style="color:gray">Ответ</span> <b>$ank[login]</b>:<br>$msg')");
if($user['pol'] == 1) $pol = 'Ответил';
else $pol = 'Ответила';
mysql_query("INSERT INTO `notifications` (`user_id`, `from_id`, `msg`, `message`, `time`) values('". $ank['id'] ."', '". $user['id'] ."', '". $pol ." на ваше сообщение в новости "<a href="/pages/news/news.php?id=". $news['id'] ."">". mysql_real_escape_string($news['name']) ."</a>".', '". $msg ."', '". time() ."')");
header('Location: ?id='. $news['id']);
exit;
}
}
$title = 'Новости/'. $news['name'] .'/Ответ '. $ank['login'];
include ('../../system/head.php');
echo '<div class="title"><a href="index.php">Новости</a> / <a href="?id='. $news['id'] .'">'. $news['name'] .'</a> / Ответ '. $ank['login'] .'</div>';
echo $errort;
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 $ank['login'];
echo browser($ank['id']);
echo '<br>';
echo position($ank['id']);
echo '</td>
</tr>
</table>
<div>
'. output($post['msg']) .'
</div>
</div>
<form method="post" name="message">
<textarea cols="20" rows="2" name="msg"></textarea><br>
<input value="Ответить" type="submit" name="add" />
</form>
<a class="link" href="?id='. $news['id'] .'">← Вернуться в новость</a>';
foot();
}
// Цитирование
if (isset($_GET['quote']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `n_post` WHERE `id` = '". intval($_GET['quote']) ."'"),0) == 1) {
$post = mysql_fetch_array(mysql_query("SELECT * FROM `n_post` WHERE `id` = '". intval($_GET['quote']) ."' LIMIT 1"));
$news = mysql_fetch_array(mysql_query("SELECT * FROM `news` WHERE `id` = '". $post['news_id'] ."'"));
$ank = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `id` = '". $post['id_user'] ."' LIMIT 1"));
if (!isset($user)) {
$title = 'Новости/Ошибка';
include ('../../system/head.php');
echo '<div class="title"><a href="/pages/news/">Новости</a> / Ошибка</div>
<div class="err">Чтобы просматривать данную страницу вы должны <a href="/reg.php">зарегистрироваться</a> или <a href="/login.php">авторизоваться</a>!</div>
<a class="link" href="?id='. $news['id'] .'">← Назад</a>';
foot();
exit;
}
$error = false;
$errort = '';
if (isset($_POST['msg'])) {
$msg = htmlspecialchars(mysql_real_escape_string($_POST['msg']));
$p_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 `n_post` (`id_user`, `news_id`, `time`, `msg`) VALUES ('". $user['id'] ."', '". $news['id'] ."', '".time()."', '<span style="color:gray">Ответ</span> <b>$ank[login]</b>:<div class="quote">". htmlspecialchars_decode($p_msg) ."</div>$msg')");
if($user['pol'] == 1) $pol = 'Процитировал';
else $pol = 'Процитировала';
if ($user['id'] != $ank['id']) mysql_query("INSERT INTO `notifications` (`user_id`, `from_id`, `msg`, `message`, `time`) values('". $ank['id'] ."', '". $user['id'] ."', '". $pol ." ваше сообщение в новости "<a href="/pages/news/news.php?id=". $news['id'] ."">". mysql_real_escape_string($news['name']) ."</a>".', '". $msg ."', '". time() ."')");
header('Location: ?id='. $news['id']);
exit;
}
}
$title = 'Новости/'. $news['name'] .'/Ответ '. $ank['login'];
include ('../../system/head.php');
echo '<div class="title"><a href="index.php">Новости</a> / <a href="?id='. $news['id'] .'">'. $news['name'] .'</a> / Ответ '. $ank['login'] .'</div>';
echo $errort;
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 $ank['login'];
echo browser($ank['id']);
echo '<br>';
echo position($ank['id']);
echo '</td>
</tr>
</table>
<div>
'. output($post['msg']) .'
</div>
</div>
<form method="post" name="message">
<textarea cols="20" rows="2" name="msg"></textarea><br>
<input value="Цитировать" type="submit" name="add" />
</form>
<a class="link" href="?id='. $news['id'] .'">← Вернуться в новость</a>';
foot();
}
// Удаление новости
if (isset($_GET['del'])) {
if ($user['position'] == 'admin') {
if (isset($_POST['ok'])) {
$news = mysql_fetch_assoc(mysql_query("SELECT * FROM `news` WHERE `id` = '". $news_id ."' LIMIT 1"));
mysql_query("DELETE FROM `news` WHERE `id` = '". $news['id'] ."'");
mysql_query("DELETE FROM `n_post` WHERE `news_id` = '". $news['id'] ."'");
header('Location: index.php');
exit;
}
$title = 'Новости/Удаление новости';
include ('../../system/head.php');
echo '<div class="title">Новости</div>
<form method="post">
Вы уверены что хотите удалить эту новость?<br>
<input type="submit" name="ok" value="Да"> <a href="?id='. $news_id .'&page=end&edit">Нет</a>
</form>
<a class="link" href="?id='. $news_id .'&page=end">← Вернуться в новость</a>';
foot();
exit;
} else {
echo '<div class="err">У вас недостаточно прав!</div>
<a class="link" href="?id='. $news_id .'&page=end">← Назад</a>';
foot();
exit;
}
}
// Удаление комментария
if (isset($_GET['del_p']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `n_post` WHERE `id` = '". intval($_GET['del_p']) ."'"),0) == 1) {
if ($user['position'] == 'admin') {
$post = mysql_fetch_assoc(mysql_query("SELECT * FROM `n_post` WHERE `id` = '". intval($_GET['del_p']) ."' LIMIT 1"));
mysql_query("DELETE FROM `n_post` WHERE `id` = '$post[id]'");
header('Location: ?id='. $news_id .'&page=end');
exit;
} else {
$title = 'Новости/Ошибка';
include ('../../system/head.php');
echo '<div class="title"><a href="/pages/news/">Новости</a> / Ошибка</div>';
echo '<div class="err">У вас недостаточно прав!</div><a class="link" href="?id='. $news_id .'&page=end">← Назад</a>';
foot();
exit;
}
}
// Просмотр поста
if (isset($_GET['post']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `n_post` WHERE `id` = '". intval($_GET['post']) ."'"), 0) == 1) {
$post = mysql_fetch_assoc(mysql_query("SELECT * FROM `n_post` WHERE `id` = '". intval($_GET['post']) ."' LIMIT 1"));
$news = mysql_fetch_array(mysql_query("SELECT * FROM `news` WHERE `id` = '". $post['news_id'] ."'"));
$ank = mysql_fetch_assoc(mysql_query("SELECT * FROM `users` WHERE `id` = '". $post['id_user'] ."' LIMIT 1"));
if (!isset($user)) {
$title = 'Новости/Ошибка';
include ('../../system/head.php');
echo '<div class="title"><a href="/pages/news/">Новости</a> / Ошибка</div>';
echo '<div class="err">Чтобы просматривать данную страницу, вы должны <a href="/pages/registration/">зарегистрироваться</a> или <a href="/pages/registration/?menu=login">авторизоваться</a>!</div>
<a class="link" href="index.php">← Назад</a>';
foot();
exit;
}
$title = 'Мини-Чат/Просмотр поста №'. $post['id'];
include ('../../system/head.php');
echo '<div class="title"><a href="/pages/news/news.php?id='. $news['id'] .'">'. $news['name'] .'</a> / Пост №'. $post['id'] .'</div>';
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 $ank['login'];
echo browser($ank['id']);
echo '<br>';
echo position($ank['id']);
echo '</td>
</tr>
</table>
<div>
'. output($post['msg']) .'
</div>
</div>
<a class="link" href="/pages/users/user.php?name='. $ank['login'] .'"><img src="/design/imgs/ank_view.png"> Посмотреть анкету</a>';
if ($user['id'] != $post['id_user']) echo '<a class="link" href="?menu=action&reply='. $post['id'] .'"><img src="/design/imgs/reply.png"> Ответить</a>';
echo '<a class="link" href="?menu=action"e='. $post['id'] .'"><img src="/design/imgs/quote_mess.png"> Цитировать</a>';
if ($user['position'] == 'admin') echo '<a class="link" href="?menu=action&delete='. $post['id'] .'"><img src="/design/imgs/delete.png"> Удалить</a>';
echo '<a class="link" href="?id='. $news['id'] .'">← Вернуться в новость</a>';
foot();
exit;
}
// Удаление комментария
if (isset($_GET['delete']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `n_post` WHERE `id` = '". intval($_GET['delete']) ."'"), 0) == 1) {
if ($user['position'] == 'admin' || $user['position'] == 'mod_c') {
$post = mysql_fetch_array(mysql_query("SELECT * FROM `n_post` WHERE `id` = '". intval($_GET['delete']) ."'"));
$news = mysql_fetch_array(mysql_query("SELECT * FROM `news` WHERE `id` = '". $post['news_id'] ."'"));
mysql_query("DELETE FROM `n_post` WHERE `id` = '". $post['id'] ."'");
header('Location: ?id='. $news['id'] .'&page=end');
} else {
echo '<div class="err">У вас недостаточно прав!</div>
<a class="link" href="?id='. $news['id'] .'">← Назад</a>';
foot();
exit;
}
}
// Очищаем новость от комментариев
if (isset($_GET['truncate'])) {
if ($user['position'] == 'admin' || $user['position'] == 'mod_c') {
if (isset($_POST['ok'])) {
mysql_query("DELETE FROM `n_post` WHERE `news_id` = '". intval($_GET['id']) ."'");
header('Location: ?id='. intval($_GET['id']) .'&page=end');
exit;
}
$title = 'Новости/Очищение чата';
include ('../../system/head.php');
echo '<div class="title">Новости</div>
<form method="post">
Вы уверены что хотите удалить все комментарии из этой новости?<br>
<input type="submit" name="ok" value="Да"> <a href="?id='. intval($_GET['id']) .'">Нет</a>
</form>';
foot();
exit;
} else {
$title = 'Новости/Очищение чата';
include ('../../system/head.php');
echo '<div class="title">Новости</div>
<div class="err">У вас недостаточно прав!</div>
<a class="link" href="?id='. intval($_GET['id']) .'">← Назад</a>';
foot();
exit;
}
}
break;
case 'edit':
if (isset($_GET['id']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `news` WHERE `id` = '". intval($_GET['id']) ."'"),0) == 1) {
$news = mysql_fetch_array(mysql_query("SELECT * FROM `news` WHERE `id` = '". intval($_GET['id']) ."'"));
if ($user['position'] != 'admin') {
$title = 'Новости/Ошибка';
include ('../../system/head.php');
echo '<div class="title"><a href="/pages/pages/news/">Новости</a> / Ошибка</div>
<div class="err">У вас недостаточно прав!</div>
<a class="link" href="?id='. $news['id'] .'">← Назад</a>';
foot();
exit;
}
$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 `news` SET `name` = '$name', `msg` = '$msg' WHERE `id` = '". $news['id'] ."'");
header('Location: ?id='. $news['id'] .'&page=end');
exit;
}
}
$title = 'Новости/Редактирование новости';
include ('../../system/head.php');
echo '<div class="title"><a href="/pages/pages/news/">Новости</a> / <a href="/pages/pages/news/news.php?id='. $news['id'] .'">'. $news['name'] .'</a> / Редактирование новости</div>';
echo $errort;
echo '<form method="post" name="message">
<b>Заголовок</b>:<br><input type="text" name="name" value="'. $news['name'] .'"><br>
<b>Сообщение</b>:<br>
<textarea cols="24" rows="3" name="msg">'. $news['msg'] .'</textarea><br>
<input value="Изменить" type="submit" name="change" />
</form>
<a class="link" href="?menu=action&id='. $news['id'] .'&del">Удалить новость</a>
<a class="link" href="?id='. $news['id'] .'">← Отмена</a>';
foot();
exit;
}
break;
}
?>