<?php
include_once('core/base.php');
include_once('core/func.php');
falseauth();
$header = 'Почта';
include_once('core/head.php');
$id = (!empty($_GET['id']) ? Func::clearInt($_GET['id']) : null);
$a = DB::getInstance()->queryFetch("SELECT * FROM " . USERS . " WHERE `id` = ? ", [$id]);
$kont = $base->query("SELECT * FROM `kont` WHERE `id_user` = '" . $u['id'] . "' && `id_kont` = '" . $a['id'] . "' LIMIT 1")->fetch();
$checkBlackList = DB::getInstance()->queryFetch("SELECT * FROM `blackList_user` WHERE `id_user` = ? and `id_add` = ?", [$a['id'], $user['id']]);
switch ($act) {
case 'sent':
if ($id == $u['id'] or !$a) {
header('Location:/');
exit();
}
$id = intval($_GET['id']);
if ($id) {
$profile = $base->query("SELECT * FROM `users` WHERE `id` = '" . $id . "'")->fetch();
} else {
$profile = $user;
}
# Ошибки #
//if($profile['id'] =='2'){
//$_SESSION['msg'] = "Почта системного бота закрыта";
//header('Location: /user/'.$a['id'].'/');
//exit();
//}
//================================//
// if ($profile['id'] == 1 && $user['admin'] < 4) {
//$_SESSION['msg'] = "Почта администратора закрыта";
//header('Location: /user/' . $a['id'] . '/');
// exit();
//}
if ($u['admin'] == 0 && $a['sett_mail'] == 1 && $base->querySingle("SELECT COUNT(*) FROM `friend` WHERE `id_user` = '$a[id]' AND `id_who` = '$u[id]' AND `sub` = '0'") == 0) {
$_SESSION['msg'] = "Пользователю могут писать только друзья!";
header('Location: /user/' . $a['id'] . '/');
exit();
}
if ($u['admin'] == 0 && $a['sett_mail'] == 2) {
$_SESSION['msg'] = "Пользователь не принимает сообщений!";
header('Location: /user/' . $a['id'] . '/');
exit();
}
//================================//
$head = 'Диалог с ' . BaseAvenaxClass::myHtml($a['login']);
include_once('core/head.php');
if (Func::clearFullSpecialChars(isset($_GET['text']))) {
if (Func::clearFullSpecialChars(isset($_POST['text']))) {
$text_send = Func::clearString($_POST['text']);
if (strlen($text_send) < 3 or strlen($text_send) > 1000)
$err = 'Слишком короткое сообщение';
if (trim($text_send) == '')
$err = 'Введите сообщение';
if ($checkBlackList)
$err = 'Игрок добавил вас в чёрный список';
if ($u['timeSendLastMail'] > time()) {
echo div('info error center ') . 'Подождите еще ' . timer_wait('chat', $u['timeSendLastMail']) . ' что бы отправить сообщение ' . DIV_CLOSE;
href_link('mail', '/images/icons/answer.png', 'Вернутся в почту');
exit;
}
if (!$err) {
DB::getInstance()->query("INSERT INTO `mail` (`sent_id`, `received_id`,`text`,`time`) VALUES (?,?,?,?)",
[$userID, $a['id'], $text_send, time()]);
if ($kont['id_kont'] != $a['id']) {
$base->query("INSERT INTO `kont` SET `id_user` = '" . $a['id'] . "', `id_kont` = '" . $u['id'] . "' , `time` = '" . time() . "'");
$base->query("INSERT INTO `kont` SET `id_user` = '$u[id]', `id_kont` = '" . $a['id'] . "', `time` = '" . time() . "',`new_msg` = '1' ");
}
DB::getInstance()->query("UPDATE " . USERS . " SET `timeSendLastMail` = ? WHERE `id` = ? ", [time() + 15, $userID]);
$_SESSION['success'] = "Сообщение отправлено";
header('Location:/message/sent/' . $id . '/ ');
exit();
} else {
$_SESSION['error'] = $err;
header('Location:/message/sent/' . $id . '/ ');
exit();
}
}
}
echo div('main center') . div('');
if ($checkBlackList) {
echo div('center error') . ' Игрок добавил вас в чёрный список' . DIV_CLOSE;
} else {
echo div('main center') . div('block_dop2');
echo "<form name='form' method='post' action='?text'><div class='fight center'>" . bbpanel('form', 'text') . "</div><script type='text/javascript'>
function ctrlEnter(event, formElem)
{
if((event.ctrlKey) && ((event.keyCode === 0xA)||(event.keyCode === 0xD)))
{
formElem.form.submit();
}
}
</script>";
echo ' <div class="ssilki2" style="margin:5px 20px;"><textarea class="textarea" cols="" style="width: 100%;min-height:20px;" name="text" id="text"></textarea></div>';
echo "<br><input type='submit' class='submit2' value='ОТПРАВИТЬ'>" . DIV_CLOSE . DIV_CLOSE;
echo "</form>";
}
echo DIV_CLOSE . DIV_CLOSE;
if (isset($_GET['spam']) && $base->querySingle("SELECT COUNT(*) FROM `mail` WHERE `sent_id` = '$id' AND `id` = '" . intval($_GET['spam']) . "' AND `received_id` = '$u[id]'") == 1) {
if ($base->querySingle("SELECT COUNT(*) FROM `spam` WHERE `id_user` = '$u[id]' AND `id_msg` = '" . intval($_GET['spam']) . "'") == 1) {
echo '<font color="red">Вы уже подавали жалобу на данное сообщение</font>';
} else {
echo '<font color="lime"> Жалоба успешно отправлена </font>';
$base->query("INSERT INTO `spam` SET `id_user` = '$u[id]', `id_msg` = '" . intval($_GET['spam']) . "', `time` = '" . (time()) . "'");
}
}
$set['p_str'] = 10;
$k_post = $base->querySingle("SELECT COUNT(*) FROM `mail` WHERE (`sent_id` = '$a[id]' && `received_id` = '$u[id]') or
(`sent_id` = '$u[id]' && `received_id` = '" . $id . "')", 0);
$k_page = k_page($k_post, $set['p_str']);
$page = page($k_page);
$start = $set['p_str'] * $page - $set['p_str'];
$q = $base->query("SELECT * FROM `mail` WHERE (`sent_id` = '$a[id]' && `received_id` = '$u[id]') or (`sent_id` = '$u[id]' && `received_id` = '$a[id]') ORDER BY `id` DESC LIMIT $start, $set[p_str]");
if ($k_post == 0) {
echo Func::div('info center mt5') . "Диалог пустой " . DIV_CLOSE;
} else {
$base->query("update `mail` set `read` = 'yes' WHERE `sent_id` = '" . $a['id'] . "' && `received_id` = '" . $u['id'] . "'");
echo "<div class='info'>";
while ($post = $q->fetch()) {
$ank = $base->query("SELECT * FROM `users` WHERE `id` = $post[sent_id] LIMIT 1")->fetch();
if ($ank['id'] == $u['id'])
$sent = color('#44d0c6') . '<img src="' . Func::smallAvatarImg($u['sex']) . '">Ты</font>';
else $sent = color('green') . '<img src="' . Func::smallAvatarImg($ank['sex']) . '">' . who($ank['id']) . COLOR_CLOSE;
echo $sent;
echo "," . span('grey') . tl(time() - $post['time']) . " назад " . SPAN_CLOSE . NEXT_LINE;
echo text_msg($post['text']);
if ($ank['id'] != $u['id']) {
echo '<a href=/message/sent/' . $ank['id'] . '/?spam=' . $post['id'] . '>[Жалоба]</a><div style="clear:both"></div>';
}
echo div('razriv1 marg_s_5') . DIV_CLOSE;
}
echo "</div>";
//nAVIGATOR
if ($k_post > 10)
echo div('head center') . str('/message/sent/' . $id . '/?', $k_page, $page) . DIV_CLOSE;
}
$infoBlackList = DB::getInstance()->queryFetch("SELECT * FROM `blackList_user` WHERE `id_user` = ? and `id_add` = ?", [$user['id'], $a['id']]);
if (isset($_GET['addBlackList'])) {
//
//Проверяем не хочет ли игрок сам себя в друзья добавить
if ($user['id'] == $a['id']) {
$_SESSION['error'] = 'Нельзя себя добавить в черный список ';
header('Location: /message/sent/' . $a['id'] . '/');
exit();
//
//Если игрок добавлял уже в друзья
//
} else if ($infoBlackList) {
$_SESSION['error'] = 'Этот игрок уже в черном списке ';
header('Location: /message/sent/' . $a['id'] . '/');
exit();
//
//Добавление в друзья
//
} else {
DB::getInstance()->query("INSERT INTO `blackList_user` (`id_user`,`id_add`,`time`) VALUES (?,?,?)", [$userID, $a['id'], time()]);
$_SESSION['success'] = 'Вы добавили ' . who($a['id']) . ' черный список ';
header('Location: /message/sent/' . $a['id'] . '/');
exit();
}
}
if (isset($_GET['removeBlackList'])) {
//
//Проверяем не хочет ли игрок сам себя в друзья добавить
if ($user['id'] == $a['id']) {
$_SESSION['error'] = 'Нельзя себя удалить из черного списка ';
header('Location: /message/sent/' . $a['id'] . '/');
exit();
//
//Если игрок добавлял уже в друзья
//
} else if (!$infoBlackList) {
$_SESSION['error'] = 'Игрок не в черном списке ';
header('Location: /message/sent/' . $a['id'] . '/');
exit();
//
//Добавление в друзья
//
} else {
DB::getInstance()->query("DELETE FROM `blackList_user` WHERE `id_user` = ? and `id_add` = ?", [$user['id'], $a['id']]);
$_SESSION['success'] = 'Вы забрали ' . who($a['id']) . ' из черного списка ';
header('Location: /message/sent/' . $a['id'] . '/');
exit();
}
}
if ($infoBlackList)
href_link_default('/message/sent/' . $a['id'] . '/?removeBlackList', '/images/icons/error.png', 'Удалить из ЧС ');
else
href_link_default('/message/sent/' . $a['id'] . '/?addBlackList', '/images/icons/error.png', 'В чёрный список ');
href_link('mail', '/images/icons/back.png', 'Вернуться назад ');
include_once('core/foot.php');
break;
case 'deleteMail':
DB::getInstance()->query("DELETE FROM `mail` WHERE `received_id` = ? ", [$userID]);
DB::getInstance()->query("DELETE FROM `mail` WHERE `sent_id` = ? ", [$userID]);
DB::getInstance()->query("DELETE FROM `kont` WHERE `id_user` = ? ", [$userID]);
DB::getInstance()->query("DELETE FROM `kont` WHERE `id_kont` = ? ", [$userID]);
$_SESSION['success'] = 'Почта удалена';
header('Location:/mail');
break;
default:
if (isset($_GET['confirm'])) {
echo div('info center') . 'Вы действительно хотите удалить все сообщения ?';
echo '<table class="center"><tr>';
echo "<td style='width:50%;'><a class='ssilki3' href='/mail?act=deleteMail'> Да </td>" . A_CLOSE . DIV_CLOSE;
echo "<td style='width:50%;'><a class='cancel' href='/mail/?'> Нет </td>" . A_CLOSE . DIV_CLOSE;
echo "</table><tr>";
exit;
}
//Вывод почты
$head = 'Почта';
$set['p_str'] = 10;
$k_post = $base->querySingle("SELECT COUNT(*) FROM `kont` WHERE `id_user` = '" . $u['id'] . "'");
$k_page = k_page($k_post, $set['p_str']);
$page = page($k_page);
$start = $set['p_str'] * $page - $set['p_str'];
$online = $base->querySingle("SELECT COUNT(*) FROM `mail` WHERE `sent_id` = '" . Func::clearInt($a['id']) . "' && `received_id` = '" . Func::clearInt($u['id']) . "' AND `read` = 'no'");
$q = $base->query("SELECT * FROM `kont` WHERE `id_user` = '" . $u['id'] . "' ORDER BY `time` DESC LIMIT $start, $set[p_str]");
echo "<div class='chat'>";
if ($k_post == 0)
echo "<div class='info center'>Список контактов пуст </div>";
while ($post = $q->fetch()) {
$ank = $base->query("SELECT * FROM `users` WHERE `id` = '" . Func::clearInt($post['id_kont']) . "' LIMIT 1")->fetch();
$message = $base->query("SELECT * FROM `mail` WHERE `sent_id` = '$u[id]' && `received_id` = '$ank[id]' OR `sent_id` = '$ank[id]' AND `received_id` = '$u[id]' ORDER BY `time` DESC ")->fetch();
$new_msg = $base->querySingle("SELECT COUNT(*) FROM `mail` WHERE `sent_id` = '" . Func::clearInt($u['id']) . "' && `received_id` = '" . Func::clearInt($ank['id']) . "' AND `read` = 'no' ");
$online = $base->querySingle("SELECT COUNT(*) FROM `mail` WHERE `sent_id` = '" . Func::clearInt($ank['id']) . "' && `received_id` = '" . Func::clearInt($u['id']) . "' AND `read` = 'no'");
echo '<img src="' . Func::smallAvatarImg($ank['sex']) . '"> ' . who($ank['id']) . ' </a>';
if ($online > 0)
echo span('quality_2') . ' Новое сообщение ' . SPAN_CLOSE;
$msg = ($message['text']) . A_CLOSE;
echo NEXT_LINE . '<a href="/message/sent/' . $ank['id'] . '/">' . Func::span('grey') . $msg . A_CLOSE . SPAN_CLOSE;
echo div('razriv1 marg_s_5') . DIV_CLOSE;
}
echo DIV_CLOSE;
href_link_default('?confirm', '/images/icons/mail.png', 'УДАЛИТЬ ВСЕ СООБЩЕНИЯ');
href_link_default('?act=black.list', '/images/icons/error.png', 'ЧЕРНЫЙ СПИСОК');
//NAVIGATOR
if ($k_post > 10)
echo div('head center') . str('/mail/?', $k_page, $page) . DIV_CLOSE;
include_once('core/foot.php');
break;
case 'black.list':
include_once('core/head.php');
$settingGame = DB::getInstance()->queryFetch("SELECT * FROM `setting_game` WHERE `id` = ?", ['1']);
$header = 'Список ЧС ';
$set['p_str'] = 15;
$k_post = $base->querySingle("SELECT COUNT(*) FROM `blackList_user` WHERE `id_user`='" . $u['id'] . "' ");
echo div('info center') . 'Всего в ЧС:' . span('orange') . $k_post . SPAN_CLOSE . DIV_CLOSE;
$k_page = $Navigator->k_page($k_post, $set['p_str']);
$page = $Navigator->page($k_page);
$start = $set['p_str'] * $page - $set['p_str'];
$q = $base->query("SELECT * FROM `blackList_user` WHERE `id_user`='" . $u['id'] . "' ORDER BY `id` DESC LIMIT $start, $set[p_str]");
if ($k_post == 0)
echo Func::div('error center') . 'Пусто';
echo "<div class='chat '>";
$out = DB::getInstance()->query("SELECT * FROM `blackList_user` WHERE `id_user`='" . $u['id'] . "' ORDER BY `id` DESC LIMIT $start, $set[p_str]");
$i = 0;
foreach ($out as $key => $listBlackList) {
$i++;
$ank = DB::getInstance()->queryFetch("SELECT * FROM " . USERS . " WHERE `id` = ?", [Func::clearInt($listBlackList['id_add'])]);
echo Func::span('quality_5') . ($i + $start) . '. ' . SPAN_CLOSE . '<img src="' . $Func::smallAvatarImg($ank['sex']) . '">' . Func::userCastleIcon($listBlackList['id_add']) . who($listBlackList['id_add']) . ' - ' . Func::online($ank['date_online'], $settingGame['timeonline'] - 900) . $Func::div('') . 'В ЧС уже:' . SPAN_CLOSE . $Func::span('grey') . tl(time() - $listBlackList['time']) . '' . DIV_CLOSE . SPAN_CLOSE;
echo div('mt3 razriv1 marg_s_5') . DIV_CLOSE;
}
if ($k_post > 15) {
str('?', $k_page, $page); // Вывод страниц
}
echo DIV_CLOSE;//close div chat
echo div('head center') . span('orange') . 'Игроки из черного списка не могут отправлять вам сообщения.' . DIV_CLOSE . SPAN_CLOSE;
href_link('mail', '/images/icons/back.png', 'Вернуться назад');
break;
}