Файл: modules/news/comments.php
Строк: 118
<?php
/****
* @package LiveCMS
* @link livecms.org
* @author MyZik
* @version See attached file VERSION.txt
* @license See attached file LICENSE.txt
* @copyright Copyright (C) LiveCMS Development Team
****/
$lang_news = load_lng('news'); // Подключаем файл языка
$title = $lang_news['comments_news']; // Заголовок страницы
$module = 'news'; // Модуль
require_once(HOME .'/incfiles/header.php'); // Подключаем шапку
/**
* Проверяем, верен ли введенный параметр
**/
if (isset($_GET['id']) && (is_numeric($_GET['id']))) {
$ID = num($_GET['id']);
$news = mysql_fetch_assoc(mysql_query("SELECT * FROM `cms_news` WHERE `id` = '$ID'"));
} else {
require_once(HOME .'/incfiles/header.php');
echo '<div class="error">' . $lang['error_parameter'] . '</div>';
echo '<div class="home">' .
'<img src="/design/themes/' . $set_user['theme'] . '/images/back.png" alt="" /> <a href="/index.php">' . $lang['back'] . '</a>' .
'</div>';
require_once(HOME .'/incfiles/footer.php');
}
/**
* Проверяем наличие новости
**/
if (empty($ID) || (mysql_result(mysql_query("SELECT COUNT(*) FROM `cms_news` WHERE `id` = '$ID'"), 0) == 0)) {
require_once(HOME .'/incfiles/header.php');
echo '<div class="error">' . $lang_news['undefined_post'] . '</div>';
echo '<div class="home">' .
'<img src="/design/themes/' . $set_user['theme'] . '/images/back.png" alt="" /> <a href="/index.php">' . $lang['back'] . '</a>' .
'</div>';
require_once(HOME .'/incfiles/footer.php');
}
/**
* Небольшая панель навигации
**/
echo '<div class="main"><a href="index.php">' . $lang['news'] . '</a> | <b>' . $lang_news['post'] . ' "' . txt($news['name']) . '"</b></div>';
/**
* Добавление комментария
**/
if (isset($_POST['send']) && isset($user)) {
$message = input(mb_substr($_POST['message'], 0, 1024)); // фильтруем данные и обрезаем текст
/**
* Проверяем длину комментария
**/
if (empty($_POST['message']) || strlen($_POST['message']) < 3)
$err[] = $lang_news['error_comment_length'];
/**
* Проверка на флуд
**/
if (($user['lastpost'] + $cms_set['antiflood_time']) >= time())
$err[] = $lang['error_antiflood'];
/**
* Если нет ошибок, заносим данные
**/
if (!isset($err)) {
mysql_query("INSERT INTO `news_comments` (`news_id`, `user_id`, `time`, `message`) VALUES ('$ID', '" . $user['id'] . "', '" . time() . "', '" . $message . "')");
/**
* Начисление баллов и обновление счетчика сообщений
**/
mysql_query("UPDATE `users` SET `balls` = `balls` + 1 WHERE `id` = '" . $user['id'] . "' LIMIT 1");
mysql_query("UPDATE `users` SET `lastpost` = '" . time() . "' WHERE `id` = '" . $user['id'] . "' LIMIT 1");
echo display_message($lang_news['add_comment_success']);
} else {
echo error($err); // выводим ошибки
}
}
/**
* Удаление комментария
**/
if (isset($_GET['delete']) && ($user['rights'] >= 7)) {
/**
* Проверяем, верен ли введенный параметр
**/
if (!is_numeric($_GET['delete']))
$err[] = $lang['error_parameter'];
/**
* Проверяем наличие комментария
**/
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `news_comments` WHERE `id` = '" . num($_GET['delete']) . "' LIMIT 1"), 0) == 0)
$err[] = $lang_news['undefined_message'];
/**
* Если нет ошибок, удаляем комментарий
**/
if (!isset($err)) {
mysql_query("DELETE FROM `news_comments` WHERE `id` = '" . num($_GET['delete']) . "' LIMIT 1");
echo display_message($lang_news['delete_message_success']);
} else {
echo error($err); // выводим ошибки
}
}
/**
* Форма
**/
if (isset($user)) {
echo '<div class="main"><form name="message" action="comments.php?id=' . $ID . '" method="post">' .
$lang['enter_message'] . '<br />' .
bb_panel('message', 'message') .
'<textarea name="message"></textarea><br />' .
'<input type="submit" name="send" value="' . $lang['send'] . '" />' .
'</form></div>';
}
/**
* Настраиваем пагинацию
**/
$total = mysql_result(mysql_query("SELECT COUNT(*) FROM `news_comments` WHERE `news_id` = '$ID'"), 0);
$req = mysql_query("SELECT * FROM `news_comments` WHERE `news_id` = '$ID' ORDER BY `id` DESC LIMIT $start, $countMess");
/**
* Если нет результатов, выводим уведомление
**/
if ($total < 1) {
echo '<div class="error">' . $lang_news['no_comments'] . '</div>';
}
while ($res = mysql_fetch_assoc($req)) {
echo ($i % 2) ? '<div class="list1">' : '<div class="list2">';
$info = ' [' . display_time($res['time']) . ']';
$body = output(txt($res['message']));
$end = ($user['rights'] >= 8 ? '<br />[<a href="comments.php?id=' . $ID . '&delete=' . $res['id'] . '">' . $lang['delete'] . '</a>]' : '');
echo display_user($res['user_id'], $info, $body, $end);
echo '</div>';
}
/**
* Пагинация
**/
if ($total > $countMess) {
echo '<div class="home">' . display_pagination('comments.php?id=' . $ID . '&', $start, $total, $countMess) . '</div>';
}
require_once(HOME .'/incfiles/footer.php'); // Подключаем ноги
?>