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