Файл: 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'); // Подключаем ноги
?>