Файл: modules/mail/dialogue.php
Строк: 132
<?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_mail = load_lng('mail'); // Подключаем файл языка
$title = $lang['mail']; // Заголовок страницы
$module = 'mail'; // Модуль
  /**
    * Проверка наличия авторизации
  **/
  if (!isset($user)) {
    require_once(HOME .'/incfiles/header.php');
    echo '<div class="error">' . $lang['only_users'] . '</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 (isset($_GET['id']) && (is_numeric($_GET['id']))) {
    $ID = intval($_GET['id']);
    $user2 = mysql_fetch_assoc(mysql_query("SELECT * FROM `users` 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 `users` WHERE `id` = '" . $ID . "'"), 0) == 0)) {
    require_once(HOME .'/incfiles/header.php');
    echo '<div class="error">' . $lang_mail['undefined_user'] . '</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 ($ID == $user['id']) {
    require_once(HOME .'/incfiles/header.php');
    echo '<div class="error">' . $lang_mail['user_error'] . '</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');
      }
  require_once(HOME .'/incfiles/header.php'); // Выводим шапку
  /**
    * Добавляем пользователя в контакты, если его там нет
  **/
  if (mysql_result(mysql_query("SELECT COUNT(*) FROM `cms_contacts` WHERE `user_id` = '" . $user['id'] . "' AND `cont_id` = '$ID'"), 0) == 0) {
    mysql_query("INSERT INTO `cms_contacts` (`user_id`, `cont_id`, `time`, `type`) VALUES ('" . $user['id'] . "', '$ID', '" . time() . "', 'common')");
    echo display_message($lang_mail['contact_add']);
      }
  /**
    * Помечаем сообщения как прочитанные
  **/
  mysql_query("UPDATE `cms_mail` SET `read` = 'yes' WHERE `to_id` = '" . $user['id'] . "' AND `user_id` = '$ID'");
  /**
    * Небольшая панель навигации
  **/
  echo '<div class="title"><a href="/user/cabinet.php">' . $lang['my_cabinet'] . '</a> | <b>' . $lang_mail['dialogue_with'] . ' "' . $user2['login'] . '"</b></div>';
  /**
    * Отправка сообщения
  **/
  if (isset($_POST['send'])) {
    $message = input($_POST['message']);
    /**
      * Проверяем, пустое ли сообщение
    **/
    if (empty($message))
      $err[] = $lang_mail['empty_message'];
    /**
      * Проверяем длину сообщения
    **/
    if (strlen($message) > 2048)
      $err[] = $lang_mail['long_message'];
    /**
      * Проверка на флуд
    **/
    if (($user['lastpost'] + $cms_set['antiflood_time']) >= time())
      $err[] = $lang['error_antiflood'];
    /**
      * Если не было ошибок, заносим данные
    **/
    if (!isset($err)) {
      mysql_query("INSERT INTO `cms_mail` (`user_id`, `to_id`, `time`, `message`, `read`, `sys`) VALUES ('" . $user['id'] . "', '$ID', '" . time() . "', '$message', 'no', 'no')");
      /**
        * Обновляем время диалога
      **/
      mysql_query("UPDATE `cms_contacts` SET `time` = '" . time() . "' WHERE `cont_id` = '$ID' AND `user_id` = '" . $user['id'] . "' LIMIT 1");
      mysql_query("UPDATE `cms_contacts` SET `time` = '" . time() . "' WHERE `user_id` = '$ID' AND `cont_id` = '" . $user['id'] . "' LIMIT 1");
      /**
        * Добавляем автора в контакты, если его там нет
      **/
      if (mysql_result(mysql_query("SELECT COUNT(*) FROM `cms_contacts` WHERE `user_id` = '$ID' AND `cont_id` = '" . $user['id'] . "'"), 0) == 0) {
    mysql_query("INSERT INTO `cms_contacts` (`user_id`, `cont_id`, `time`, `type`) VALUES ('$ID', '" . $user['id'] . "', '" . time() . "', 'common')");
      }
       mysql_query("UPDATE `users` SET `lastpost` = '" . time() . "' WHERE `id` = '" . $user['id'] . "'");
       echo display_message($lang_mail['write_success']);
     } else {
        // если имеются ошибки, выводим
        echo error($err);
          }
  }
  /**
    * Удаление сообщения
  **/
  if (isset($_GET['delete'])) {
    /**
      * Проверяем, верен ли заданный параметр
    **/
    if (empty($_GET['delete']) || !is_numeric($_GET['delete']))
      $err[] = $lang['error_parameter'];
    /**
      * Проверяем наличие сообщения
    **/
    if (mysql_result(mysql_query("SELECT COUNT(*) FROM `cms_mail` WHERE `id` = '" . num($_GET['delete']) . "' LIMIT 1"), 0) == 0)
      $err[] = $lang_mail['undefined_message'];
    /**
      * Запрещаем удаление чужого сообщения
    **/
    if (mysql_result(mysql_query("SELECT COUNT(*) FROM `cms_mail` WHERE `id` = '" . num($_GET['delete']) . "' AND `user_id` = '" . $user['id'] . "' LIMIT 1"), 0) == 0)
      $err[] = $lang_mail['error_user_message'];
    /**
      * Если не было ошибок, удаляем сообщение
    **/
    if (!isset($err)) {
      mysql_query("DELETE FROM `cms_mail` WHERE `id` = '" . num($_GET['delete']) . "' LIMIT 1");
      echo display_message($lang_mail['delete_message_success']);
        } else {
      // если имеются ошибки, выводим
      echo error($err);
        }
      }
  /**
    * Если пользователь в игнор-листе, запрещаем писать сообщения
  **/
  if (mysql_result(mysql_query("SELECT COUNT(*) FROM `cms_contacts` WHERE `user_id` = '$ID' AND `cont_id` = '" . $user['id'] . "' AND `type` = 'ignor'"), 0) != 0) {
    echo '<div class="error">' . $lang_mail['ignor_you'] . '</div>';
      } else {
    /**
      * Форма
    **/
    echo '<div class="main"><form name="message" method="post" action="dialogue.php?id=' . $ID . '">' .
    $lang_mail['enter_message'] . ' [max. 2048]<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 `cms_mail` WHERE `user_id` = '" . $user['id'] . "' AND `to_id` = '$ID' OR `user_id` = '$ID' AND `to_id` = '" . $user['id'] . "'"), 0);
  $req = mysql_query("SELECT * FROM `cms_mail` WHERE `user_id` = '" . $user['id'] . "' AND `to_id` = '$ID' OR `user_id` = '$ID' AND `to_id` = '" . $user['id'] . "' ORDER BY `time` DESC LIMIT $start, $countMess");
  /**
    * Если нет результатов, выводим уведомление
  **/
  if ($total < 1) {
    echo '<div class="error">' . $lang_mail['no_messages'] . '</div>';
    }
  while ($res = mysql_fetch_assoc($req)) {
    echo ($i % 2) ? '<div class="list1">' : '<div class="list2">';
    $info = ' [' . display_time($res['time']) . '] ' . ($res['read'] == 'no' ? '<span class="red">' . $lang_mail['unread'] . '</span>' : '');
    $body = output(txt($res['message']));
    $end = ($res['user_id'] == $user['id'] ? '<br />[<a href="dialogue.php?id=' . $ID . '&delete=' . $res['id'] . '">' . $lang['delete'] . '</a>]' : '');
    echo display_user($res['user_id'], $info, $body, $end);
    echo '</div>';
    $i++;
     } 
  /**
    * Пагинация
  **/ 
  if ($total > $countMess) {
    echo '<div class="home">' . display_pagination('dialogue.php?id=' . $ID . '&', $start, $total, $countMess) . '</div>';
}
  require_once(HOME .'/incfiles/footer.php'); // Подключаем ноги
?>