Размер файла: 5.78Kb
<?php
require_once $_SERVER['DOCUMENT_ROOT'].'/system/App.php';
$title = 'Диалог';
require_once ROOT.'/system/header.php';
$user->access(); // права пользователя
$dialog = $mail->DialogByID($id); // ищем диалог по данному id
if (empty($dialog)) $core->redirect('/mail');
$usersDialog = $mail->UsersFromDialog($dialog['id']); // пользователи данного диалога
$countUsers = count($usersDialog); // количество пользователей диалога
$isUserTheDialog = $mail->isUserTheDialog($me['id'], $dialog['id']);
if (empty($dialog['name'])) // если количество пользователей 2, то это диалог
{
$contactDialog = $mail->ContactFromDialog($dialog['id']); // определяем id пользователя, с кем ведётся диалог
$contactInfo = $user->infoByID($contactDialog, 'id, login, name, last_name, avatar');
$dialogInfo =
'<div class="col-lg-12">
<div class="form-row">
<div class="col-10 p-2"><a href="/id'.$contactInfo['id'].'" class="text-muted font-weight-bold">'.$contactInfo['login'].'</a></div>
</div></div>';
}
else
{
$dialogInfo = '<a href="/mail/id'.$dialog['id'].'?info">'.$dialog['name'].' <span class="badge badge-pill badge-theme float-right mt-1">Юзеров: '.$countUsers.'</span></a>';
}
?>
<div class="title-fixed mt-2"><?=$dialogInfo?></div>
<div class="col mt-5">
<div class="card d-none">
<div class="card-header">
Левое меню
</div>
</div>
</div>
<div class="col-sm-8 col-md-5 pb-5 mb-2 mt-5">
<div class="">
<div class="">
<?php
if(!empty($dialog))
{
if (!$isUserTheDialog) $core->redirect('/mail');
$messages = $mail->MessagesFromDialog($dialog['id'], 0, 20);
if(!empty($messages))
{
foreach($messages as $mess)
{
$authorInfo = $user->infoByID($mess['user_id']);
$mail->readMessage($mess);
if($authorInfo['id'] == $me['id'])
{
?>
<div class="media mb-2">
<div class="media-body" style="">
<small class="message out"><?=$mess['message'] ?></small>
<small class="message-info out"><?=(empty($mess['read']) ? 'Непрочитано •' : '') ?> <?=date('H:i', $mess['time']) ?></small>
</div>
<div class="media-right d-none">
<a href="/id<?=$authorInfo['id']?>" class="list-user-avatar" style="margin-top: -7px; margin-left: 10px; width: 45px; height: 45px; background-image: url(<?=$authorInfo['avatar'] ?>);"></a>
</div>
</div>
<?php
}
else
{
?>
<div class="media mb-2">
<div class="media-left">
<a href="/id<?=$authorInfo['id']?>" class="list-user-avatar" style="margin-top: -6px; margin-right: 8px; width: 30px; height: 30px; background-image: url(<?=$authorInfo['avatar'] ?>);"></a>
</div>
<div class="media-body">
<small class="message"><?=$mess['message'] ?></small>
<small class="message-info text-muted"><?=date('H:i', $mess['time']) ?></small>
</div>
</div>
<?php
}
}
}
}
?>
</div>
</div>
</div>
<div class="col mt-5">
<div class="card d-none">
<div class="card-header">
Правое меню
</div>
</div>
</div>
<script type="text/javascript">
$(document).ready(function () {
$('#sendM').submit(function(e) {
e.preventDefault();
var formData = $('#sendM').serialize();
$.ajax({
url: '/AJAX/sendMessage.php',
type: 'GET',
data: formData, // можно строкой, а можно, например, так: $('input[type="text"], input[type="radio"]:checked, input[type="checkbox"]:checked, select, textarea')
dataType: 'json',
success: function(json) {
$('#alerts').show();
if(json['error'] == 1) {
$('#alerts').html('<div class="alert alert-danger">'+json['comment']+'</div>');
} else if(json['success'] == 1) {
//$('#alerts').html('<div class="alert alert-success">'+json['comment']+'</div>');
location.href = json['redirect'];
}
setTimeout(function () {
$('#alerts').hide();
}, 2000);
},
error: function(xhr, ajaxOptions, thrownError) {
alert(thrownError + "\r\n" + xhr.statusText + "\r\n " + xhr.responseText);
}
});
});
});
</script>
<div class="send-form">
<div class="fixed-top p-2" style="top: 100px;" id="alerts"></div>
<form action="/AJAX/sendMessage.php" method="POST" role="form" id="sendM">
<input type="hidden" name="id" value="<?=$id?>" />
<div class="form-row">
<div class="col-2">
<button type="button" class="btn btn-theme-link btn-sm" style="padding-top: 1px;" name="ok"><i class="material-icons md-30">sentiment_satisfied</i></button>
</div>
<div class="col-8 pt-1">
<input type="text" class="form-control border-0 input-sm" id="message" name="message" placeholder="Введите текст сообщения">
</div>
<div class="col-2">
<button type="submit" class="btn btn-theme-link btn-sm" style="padding-top: 1px;" name="ok" id="sendButton"><i class="material-icons md-30">send</i></button>
</div>
</div>
</form>
</div>
<script>
window.onload = function() {
function onFormFocus() {
this.className = 'fixed-bottom';
}
function onFormBlur() {
this.className = '';
}
var form = document.forms.lol;
var send = document.getElementById('send');
if (form.addEventListener) {
// focus/blur на стадии перехвата срабатывают во всех браузерах
// поэтому используем их
send.addEventListener('focus', onFormFocus, true);
send.addEventListener('blur', onFormBlur, true);
} else {
// ветка для IE8-, где нет стадии перехвата, но есть focusin/focusout
send.onfocusin = onFormFocus;
send.onfocusout = onFormBlur;
}
}
</script>
<?php
// require ROOT.'/system/footer.php';
?>