Файл: wapxl.ru/user/messages/dialog.php
Строк: 80
<?
// Автоматическое обновление страници
/*if(core::$user['p_locs']>0){
echo '<script type="text/javascript">
function locs(){
document.location.href="";
}
setTimeout("locs()", '.core::$user['p_locs'].'000);
</script>';
}*/
echo '<div class="col-md-8 col-sm-12 col-xs-12">';
echo '<div class="panel panel-default">
<div class="panel-body">';
unset($_SESSION['search_pr']);
// Определяем диалог
$dialog = isset ($_REQUEST['dialog']) ? func::checkin($_REQUEST['dialog']) : false;
// Проверка на сущ. диалога
$qlog = core::$db->query("SELECT * FROM `messages` WHERE `id`=?", array($dialog));
if ($qlog->fetchColumn() == 0)func::errors('<b>Такого диалога нет</b>', '<a href="'.getenv("HTTP_REFERER").'" class="href">Вернуться</a>');
// Проверка на участие в диалоге
$mess_users = core::$db->query("SELECT * FROM `mess_users` WHERE `dialog`=? and `user_id`=? and `aut`=?", array($dialog,core::$user['id'],0));
if ($mess_users->fetchColumn() == 0)func::errors('<b>Вы не участвуете в этом диалоге</b>', '<a href="'.getenv("HTTP_REFERER").'" class="href">Вернуться</a>');
// Выход из диалога между 2 юзаками
if (isset($_GET['delall'])){
func::danger('?mod='.$mod.'&dialog='.$dialog.'&delall','Вы уверены, что желаете <b>удалить</b> данный диалог?');
// Смотрим сколько пользователей остается в диалоге
$k_users=core:: $db -> querySingle("select count(*) as num from `mess_users` WHERE `dialog`=? and `user_id`!=? and `aut`=?", array($dialog,core::$user['id'],0));
// Если после ухода юзера в диалоге никого не остается
if(($k_users)==0){
$dbi = core::$db -> prepare("DELETE FROM `mess_users` WHERE `dialog`=?");
$dbi -> execute($dialog);
$dbi = core::$db -> prepare("DELETE FROM `mess_dialog` WHERE `dialog`=?");
$dbi -> execute($dialog);
$dbi = core::$db -> prepare("DELETE FROM `mess_read` WHERE `dialog`=?");
$dbi -> execute($dialog);
$dbi = core::$db -> prepare("DELETE FROM `messages` WHERE `id`=?");
$dbi -> execute($dialog);
}else{
$dbi = core::$db -> prepare("UPDATE `mess_users` SET `aut`=? WHERE `user_id`=? and `dialog`=?");
$dbi -> execute(1,core::$user['id'],$dialog);
$dbi = core::$db -> prepare("DELETE FROM `mess_dialog` WHERE `dialog`=? and `del_id`!=?");
$dbi -> execute($dialog,0);
$dbi = core::$db -> prepare("UPDATE `mess_dialog` SET `del_id`=? WHERE `dialog`=? and `del_id`=?");
$dbi -> execute(core::$user['id'],$dialog,0);
}
header ('Location: messages.php?'.SID);
}
// Выход из диалога между несколькими
if (isset($_GET['aut'])){
func::danger('?mod='.$mod.'&dialog='.$dialog.'&aut','Вы уверены, что желаете Выйти из диалога?');
// Смотрим сколько пользователей остается в диалоге
$k_users=core:: $db -> querySingle("select count(*) as num from `mess_users` WHERE `dialog`=? and `user_id`!=? and `aut`=?", array($dialog,core::$user['id'],0));
// Если после ухода юзера в диалоге кто-то остается
if($k_users>0){
// выходит
$dbi = core::$db -> prepare("UPDATE `mess_users` SET `aut`=? WHERE `user_id`=? and `dialog`=?");
$dbi -> execute(1,core::$user['id'],$dialog);
// Создаем сообщение
$msg = '[b]'.user::us(core::$user['id'],1).'[/b] вышел из диалога';
$dbi = core::$db -> prepare("INSERT INTO `mess_dialog` SET `sid`=?, `user_id`=?, `time`=?, `msg`=?, `dialog`=?");
$dbi -> execute(core::$sid,0,core::$realtime,$msg,$dialog);
// Определяем ид сообщения
$mess_id = core::$db -> lastInsertId();
//Выводим пользователей участвующих в диалоге, кроме того кто выходит
$read = core::$db->query("SELECT * FROM `mess_users` WHERE `dialog`=? and `user_id`!=?", array($dialog,core::$user['id']));
// Делаем запись в таблицу непрочтенных сообщений
while ($a = $read -> fetch()) {
$dbi = core::$db -> prepare("INSERT INTO `mess_read` SET `sid`=?, `user_id`=?, `mess_id`=?, `dialog`=?");
$dbi -> execute(core::$sid,$a['user_id'],$mess_id,$dialog);
}
// если в диалоге никого не остается удаляем данные
}elseif($k_users==0){
$dbi = core::$db -> prepare("DELETE FROM `mess_users` WHERE `dialog`=?");
$dbi -> execute($dialog);
$dbi = core::$db -> prepare("DELETE FROM `mess_dialog` WHERE `dialog`=?");
$dbi -> execute($dialog);
$dbi = core::$db -> prepare("DELETE FROM `mess_read` WHERE `dialog`=?");
$dbi -> execute($dialog);
$dbi = core::$db -> prepare("DELETE FROM `messages` WHERE `id`=?");
$dbi -> execute($dialog);
}
header ('Location: messages.php?'.SID);
}
echo '<div class="panel panel-default">
<div class="panel-heading">';
echo '<a href="?" class="href">Диалоги</a> | <b>Диалог с</b> ';
/*$read = core::$db->query("SELECT * FROM `mess_users` WHERE `dialog`=? and `user_id`!=?", array($dialog,core::$user['id']));
while ($r = $read -> fetch()) {
$k = $k++;
echo user::nik($r['user_id']).(($k>1) ? ', ' : '');
}
*/
$read = core::$db->query("SELECT * FROM `mess_users` WHERE `dialog`=? and `user_id`!=?", array($dialog,core::$user['id']));
$k = 0;
while ($r = $read -> fetch()) {
$k = $k+1;
echo (($k>1) ? ', ' : ' ').user::nik($r['user_id']).($r['aut']==1 ? '(Вышел)' : '');
}
echo '| <a href="?mod=adds&dialog='.$dialog.'" class="href">Добавить собеседника</a>';
echo '';
echo '</div></div><dl><dt></dt></dl>';
// Теперь почта только на аяксе )))
?>
<script language='JavaScript' type='text/javascript'>
$(document).ready(function()
{
dialog_jss();
$('div#download_img').css('display', 'block');
function dialog_jss()
{
$.ajax({
url: "/user/messages/dialog_js.php?mod=dialog&dialog=<?echo $dialog;?>&page=<?echo $page;?>",
cache: false,
success: function(responce){
$("#dialog_jss").html(responce);
$('div#download_img').css('display', 'none');
}
});
}
setInterval(function()
{
dialog_jss();
}, 6000);
});
</script>
<?
echo '<div id="download_img" style="display:none;"><img src="/img/loading.gif" alt="" width="100" height="100" /></div>
<div id="dialog_jss"></div>';
echo '<dl><dt></dt></dl>';
echo '<form action="?mod=add&dialog='.$dialog.'&act=act&'.SID.'" method="post" name="form" enctype="multipart/form-data">';
echo '<br />Сообщение:<br /><textarea cols="'.core::$user['pole2'].'" rows="'.core::$user['pole1'].'" name="msg"></textarea><br/>';
echo $div3;
func::quickpaste('msg');
echo $div9;
echo "Прикрепить файл: (до ".core::$set['flsz_pr']." кб.)<br/><input type='file' name='fail'/><br /> ";
echo '<a href="?mod='.$mod.'&dialog='.$dialog.'&'.rand(0000, 9999).'" class="href">Обновить</a> | <a href="/help.php?bb" class="href">BBcode</a> | <a href="'.H.'smiles/" class="href">Смайлы</a><br />';
echo '<br /><input type="submit" class="ibutton" value="Отправить"/></form><br />';
echo '<dl><dt></dt></dl><br />';
$dlog = core:: $db -> queryFetch("SELECT * FROM `messages` WHERE `id` = '" . $dialog . "'");
if($dlog['cols']==2)echo '» <a href="?mod='.$mod.'&dialog='.$dialog.'&delall" class="href">Удалить диалог</a><dl></dl>';
else echo '» <a href="?mod='.$mod.'&dialog='.$dialog.'&aut" class="href">Выйти из диалога</a><dl></dl>';
echo '» <a href="?mod=search&dialog='.$dialog.'" class="href">Поиск по диалогу</a><dl></dl>';
echo '</div></div>';
?>