Просмотр файла modules/mail/mail.php

Размер файла: 5.64Kb
  1. <?php
  2.  
  3. // проверяем корректность запроса
  4. if (!isset($user) || !isset($_GET['user_id']) || mysql_result(mysql_query("SELECT COUNT(*) FROM `users` WHERE `id` = '". num($_GET['user_id']) ."' LIMIT 1"), 0) == 0)
  5. {
  6. # Перенаправляем на главную
  7. header('Location: /');
  8. }
  9.  
  10. $to = mysql_fetch_assoc(mysql_query("SELECT * FROM `users` WHERE `id` = '". num($_GET['user_id']) ."' LIMIT 1"));
  11.  
  12. // проверка наличия переписки
  13. if (isset($_GET['create']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `mail_chat` WHERE (`user_id` = '$user[id]' OR `to_id` = '$user[id]') AND (`to_id` = '". num($_GET['user_id']) ."' OR `user_id` = '". num($_GET['user_id']) ."')"),0) == 0) {
  14. mysql_query("INSERT INTO `mail_chat` SET `user_id` = '$user[id]', `to_id` = '$to[id]', `time_last_mail` = '". time() ."'");
  15.  
  16. header('Location: /mail/mail.php?user_id='. $to['id']);
  17. }
  18.  
  19. # Заголовок модуля
  20. $system['page_title'] = 'Переписка';
  21.  
  22. # Шапка модуля
  23. require_once(HOME .'/incfiles/header.php');
  24.  
  25. // проверка наличия переписки
  26. if (mysql_result(mysql_query("SELECT COUNT(*) FROM `mail_chat` WHERE (`user_id` = '$user[id]' OR `to_id` = '$user[id]') AND (`to_id` = '". num($_GET['user_id']) ."' OR `user_id` = '". num($_GET['user_id']) ."')"),0) == 0) {
  27. echo '<div class="title">Переписка c '. $to['nick'] .'</div>
  28. <div class="menu">
  29. У Вас еще нет переписки с пользователем '. $to['nick'] .'.<br />
  30. <a href="/mail/mail.php?user_id='. $to['id'] .'&amp;create">Создать переписку</a>
  31. </div>';
  32.  
  33. echo '<div class="block">
  34. &raquo; <a href="/mail/">Личная почта</a><br />
  35. &raquo; <a href="/user/cabinet.php">Личный кабинет</a><br />
  36. &raquo; <a href="/">На главную</a>
  37. </div>';
  38.  
  39. # Ноги модуля
  40. require_once(HOME .'/incfiles/footer.php');
  41. }
  42.  
  43. // определяем чат
  44. if (mysql_result(mysql_query("SELECT COUNT(*) FROM `mail_chat` WHERE `user_id` = '$user[id]' AND `to_id` = '$to[id]'"),0) != 0) $chat_id = mysql_result(mysql_query("SELECT `id` FROM `mail_chat` WHERE `user_id` = '$user[id]' AND `to_id` = '$to[id]'"),0);
  45. else $chat_id = mysql_result(mysql_query("SELECT `id` FROM `mail_chat` WHERE `to_id` = '$user[id]' AND `user_id` = '$to[id]'"),0);
  46.  
  47. if (isset($_POST['text'])) {
  48. $text = txt($_POST['text']);
  49.  
  50. if (empty($text)) $err .= 'Не введено сообщение<br />';
  51.  
  52. if (!empty($text) && (strlen_rus($text) < 3 || strlen_rus($text) > 5000)) $err .= 'Неверная длина сообщения. Допустимо от 3 до 5000 символов<br />';
  53.  
  54. # Проверка занятости логина
  55. if (mysql_result(mysql_query("SELECT COUNT(*) FROM `mail` WHERE `text` = '". input($text) ."' AND `user_id` = '$user[id]' AND `mail_chat_id` = '$chat_id'"), 0) != 0) $err .= 'Такое сообщение уже существует<br />';
  56.  
  57. if (!isset($err))
  58. {
  59. # Сохраняем данные
  60. mysql_query("INSERT INTO `mail` SET `mail_chat_id` = '$chat_id', `user_id` = '$user[id]', `to_id` = '$to[id]', `text` = '". input($text) ."', `time` = '". time() ."'");
  61. mysql_query("UPDATE `mail_chat` SET `time_last_mail` = '". time() ."' WHERE `id` = '$chat_id'");
  62.  
  63.  
  64. echo '<div class="title">Написание сообщения</div>
  65. <div class="menu">
  66. Ваше сообщение успешно отправленно.
  67. </div>';
  68.  
  69. echo '<div class="block">
  70. &raquo; <a href="/mail/mail.php?user_id='. $to['id'] .'">К переписке</a><br />
  71. &raquo; <a href="/mail/">Личная почта</a><br />
  72. &raquo; <a href="/user/cabinet.php">Личный кабинет</a><br />
  73. &raquo; <a href="/">На главную</a>
  74. </div>';
  75.  
  76. # Ноги модуля
  77. require_once(HOME .'/incfiles/footer.php');
  78. }
  79. }
  80.  
  81. error($err);
  82.  
  83. echo '<div class="title">Переписка с '. $to['nick'] .'</div>';
  84.  
  85. # Кол-во пользователей
  86. $k_chats = mysql_result(mysql_query("SELECT COUNT(*) FROM `mail` WHERE `mail_chat_id` = '$chat_id'"), 0);
  87.  
  88. # Старт навигации
  89. nav_start($k_chats, 10);
  90.  
  91. if ($k_chats == 0)
  92. {
  93. echo '<div class="menu">Сообщений нет</div>';
  94. }
  95. else
  96. {
  97. $sql_chats = mysql_query("SELECT * FROM `mail` WHERE `mail_chat_id` = '$chat_id' ORDER BY time DESC LIMIT $start, 10");
  98.  
  99. while ($chat = mysql_fetch_assoc($sql_chats))
  100. {
  101. if ($user['id'] == $chat['to_id']) mysql_query("UPDATE `mail` SET `read` = '1' WHERE `id` = '$chat[id]'");
  102.  
  103. echo '<div class="menu">
  104. '. icon($chat['user_id']) .' <a href="/user/user.php?user_id='. $chat['user_id'] .'">'. nick($chat['user_id']) .'</a> '. online($chat['user_id']) .' ('. vtime($chat['time']) .')<br />
  105. '. output($chat['text']) .'
  106. </div>';
  107. }
  108.  
  109. # Вывод навигации
  110. view_nav('?user_id='. $to['id'] .'&amp;');
  111. }
  112.  
  113. echo '<form method="post" action="/mail/mail.php?user_id='. $to['id'] .'">
  114. <div class="block">
  115. Сообщение (<a href="/pages/bbcode.php">теги</a>/<a href="/pages/smiles.php">смайлы</a>):<br />
  116. <textarea name="text" rows="4" cols="20"></textarea><br />
  117. <input type="submit" value="Отправить" />
  118. </div>
  119. </form>';
  120.  
  121. echo '<div class="block">
  122. &raquo; <a href="/mail/">Личная почта</a><br />
  123. &raquo; <a href="/user/cabinet.php">Личный кабинет</a><br />
  124. &raquo; <a href="/">На главную</a>
  125. </div>';
  126.  
  127. # Ноги модуля
  128. require_once(HOME .'/incfiles/footer.php');
  129.  
  130. ?>