2018-03-01 23:21:53 +00:00
|
|
|
|
<?php
|
|
|
|
|
/**
|
|
|
|
|
* Copyright (c) 2018.
|
|
|
|
|
* Author: Igor Barkov <lopar.4ever@gmail.com>
|
|
|
|
|
* Project name: Battles-Game
|
|
|
|
|
*/
|
|
|
|
|
|
2021-02-01 01:39:50 +00:00
|
|
|
|
use Battles\Database\DBPDO;
|
|
|
|
|
use Battles\Template;
|
|
|
|
|
|
2018-03-01 23:21:53 +00:00
|
|
|
|
session_start();
|
2020-06-23 12:22:32 +00:00
|
|
|
|
require_once "config.php";
|
2018-03-01 23:21:53 +00:00
|
|
|
|
|
2020-09-29 22:39:06 +00:00
|
|
|
|
$msg = $_POST['msg'] ?? null;
|
2020-09-30 14:15:13 +00:00
|
|
|
|
$uid = $_SESSION['uid'] ?? null;
|
2020-06-23 10:49:12 +00:00
|
|
|
|
if ($msg) {
|
2021-02-01 01:39:50 +00:00
|
|
|
|
$db = new DBPDO();
|
|
|
|
|
$db->execute('INSERT INTO chat (user_id,msg) VALUES (?,?)', [$uid, $msg]);
|
2020-06-23 10:49:12 +00:00
|
|
|
|
}
|
2018-03-02 09:29:28 +00:00
|
|
|
|
|
2020-06-23 11:36:33 +00:00
|
|
|
|
function show_messages()
|
|
|
|
|
{
|
2021-02-01 01:39:50 +00:00
|
|
|
|
$db = new DBPDO();
|
|
|
|
|
|
|
|
|
|
$chat = $db->ofetchALL('SELECT msg,msgdate,type,s.login AS sender, r.login AS receiver, s.id AS sid, r.id AS rid FROM chat
|
|
|
|
|
LEFT JOIN users s on s.id = chat.user_id
|
|
|
|
|
LEFT JOIN users r on r.id = chat.receiver_id
|
|
|
|
|
WHERE r.id = ? OR r.id IS NULL OR s.id = ? ORDER BY chat.id', [$_SESSION['uid'], $_SESSION['uid']]);
|
|
|
|
|
$i = 0;
|
|
|
|
|
while ($i < count($chat)) {
|
|
|
|
|
$d = new DateTime($chat[$i]->msgdate);
|
|
|
|
|
$m = htmlspecialchars($chat[$i]->msg);
|
|
|
|
|
if ($chat[$i]->type == 'sys') { /* Системка */
|
|
|
|
|
echo sprintf('<span style="color:maroon;background:#faa;">%s %s</span><br>', $d->format('H:i'), $m);
|
|
|
|
|
} elseif ($chat[$i]->rid == $_SESSION['uid']) { /* С указанным получателем */
|
|
|
|
|
if ($chat[$i]->type == 'sms') { /* Телеграмма */
|
|
|
|
|
echo sprintf('<span style="color:darkgreen;background:#afa;">%s Телеграмма от [%s]: %s</span><br>', $d->format('d.m.Y H:i'), $chat[$i]->sender, $m);
|
|
|
|
|
} elseif ($chat[$i]->type == 'private') { /* Приват */
|
|
|
|
|
echo sprintf('<span style="background:#efe;">%s [%s] → [%s]: %s</span><br>', $d->format('H:i'), $chat[$i]->sender, $chat[$i]->receiver, $m);
|
|
|
|
|
} else { /* Общак */
|
|
|
|
|
echo sprintf('%s [%s] → [%s]: %s<br>', $d->format('H:i'), $chat[$i]->sender, $chat[$i]->receiver, $m);
|
2020-06-23 12:22:32 +00:00
|
|
|
|
}
|
2021-02-01 01:39:50 +00:00
|
|
|
|
} else { /* Без указанного получателя */
|
|
|
|
|
echo sprintf('%s [%s]: %s<br>', $d->format('H:i'), $chat[$i]->sender, $m);
|
2020-06-23 12:22:32 +00:00
|
|
|
|
}
|
2021-02-01 01:39:50 +00:00
|
|
|
|
$i++;
|
2018-03-22 18:32:37 +00:00
|
|
|
|
}
|
2021-02-01 01:39:50 +00:00
|
|
|
|
unset($i, $chat, $db);
|
2018-03-01 23:21:53 +00:00
|
|
|
|
}
|
2020-06-23 12:22:32 +00:00
|
|
|
|
|
|
|
|
|
|
2021-02-01 01:39:50 +00:00
|
|
|
|
Template::header('chat');
|
2018-03-23 23:08:05 +00:00
|
|
|
|
show_messages();
|
2018-03-01 23:21:53 +00:00
|
|
|
|
?>
|
2020-09-30 14:15:13 +00:00
|
|
|
|
<style>
|
|
|
|
|
form {
|
|
|
|
|
padding: 3px;
|
|
|
|
|
position: fixed;
|
|
|
|
|
bottom: 0;
|
|
|
|
|
width: 100%;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
form input {
|
|
|
|
|
border: 0;
|
|
|
|
|
padding: 10px;
|
|
|
|
|
width: 80%;
|
|
|
|
|
margin-right: .5%;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
form input[type="submit"] {
|
|
|
|
|
width: 15%;
|
|
|
|
|
border: none;
|
|
|
|
|
padding: 10px;
|
|
|
|
|
}
|
|
|
|
|
</style>
|
2020-06-23 13:39:22 +00:00
|
|
|
|
<div>
|
2020-09-30 14:15:13 +00:00
|
|
|
|
<?php ?>
|
2020-06-23 13:39:22 +00:00
|
|
|
|
</div>
|
|
|
|
|
<form action="chat.php" method="post">
|
|
|
|
|
<input id="msg" name="msg" size="100" placeholder="Введите сообщение...">
|
|
|
|
|
<input type="submit" value="Отправить">
|
2020-09-30 14:15:13 +00:00
|
|
|
|
</form>
|