Файл: wapxl.ru/user/messages/dialog_mjs.php
Строк: 151
<?
echo '<a name="messegeResult"></a>';
// Автоматическое обновление страници
if(core::$user['p_locs']>0){
echo '<script type="text/javascript">
function locs(){
document.location.href="";
}
setTimeout("locs()", '.core::$user['p_locs'].'000);
</script>';
}
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 `user_id`=?, `time`=?, `msg`=?, `dialog`=?");
$dbi -> execute(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 `user_id`=?, `mess_id`=?, `dialog`=?");
$dbi -> execute($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 $div2.'<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 $div9.'<div id="messegeResult">
</div><dl><dt>
</dt></dl>';
if (func::is_mobile()==1){
/*Задаем правила сортировки переадресации на страницу диалога */
if(empty($_GET['page'])){
$_GET['page'] = core::$user['p_sort'] ? 'end' : '1';
}
$k_post=core:: $db -> querySingle("select count(*) as num from `mess_dialog` WHERE `dialog`=? and `del_id`!=?", array($dialog,core::$user['id']));
$k_page=func::k_page($k_post,$max);
$page=func::page($k_page);
$start=$max*$page-$max;
if ($k_post == 0)echo 'Сообщений пока нет<br />';
/*Задаем правила сортировки (новые внизу / вверху) */
$order = core::$user['p_sort'] ? 'ASC' : 'DESC';
$te = core::$db->query("Select * FROM `mess_dialog` WHERE `dialog`=? and `del_id`!=? order by time ".$order." LIMIT $start, $max", array($dialog,core::$user['id']));
while ($a = $te -> fetch()) {
echo $div2;
echo '<div class="img">' . func::user_avatars($a['user_id']) . '</div>';
$pr_n = core:: $db -> querySingle("SELECT count(*) FROM `mess_read` WHERE `user_id`=? and `mess_id`=?;", array(core::$user['id'],$a['id']));
if ($pr_n != 0){
$del = core::$db -> query("DELETE FROM `mess_read` WHERE `user_id`=? and `mess_id`=?;", array(core::$user['id'],$a['id']));
$del -> execute(core::$user['id'],$a['id']);
echo '<img src="'.H.'img/new.gif" alt="" /> ';
}
echo ''.user::nik($a['user_id']).' ('.func::times($a['time']).')';
$pr_n2 = core:: $db -> querySingle("SELECT count(*) FROM `mess_read` WHERE `user_id`!=? and `mess_id`=?;", array(core::$user['id'],$a['id']));
/*if ($pr_n2 == 1 ){
echo '<span style="color:#DD0000">[Непрочитанно]</span>';
}else */if ($pr_n2 >= 1 ){
echo '<span style="color:#DD0000">[Непрочитанно</span> ';
$mread = core::$db->query("SELECT * FROM `mess_read` WHERE `user_id`!=? and `mess_id`=?;", array(core::$user['id'],$a['id']));
$k = 0;
while ($mr = $mread -> fetch()) {
$k = $k+1;
echo (($k>1) ? ', ' : '').user::us($mr['user_id']);
}
echo ']';
}
//if($a['user_id']!=core::$user['id'])echo ' | <a href="messages.php?mod=msg&dialog='.$dialog.'&spam='.$a['id'].'" class="href">Жал.</a><br />';
echo $div9.func::text($a['msg'])."";
$var = strtr($a['fail'], array ('../sites/'.core::$site['domain'].'/modul_files/privat/' => ""));
if($a['fail']){
/*echo 'Файл: <a href="'.$a['fail'].'" class="href">'.$var.'</a> ';
*/
$f1 = strrpos($var, ".");
$f2 = substr($var, $f1 + 1, 999);
$fname = strtolower($f2);
$att_ext = strtolower($fname);
$pic_ext = array ('gif', 'jpg', 'jpeg', 'png');
//&&core::$user['forum_pr']==1
if (in_array($att_ext, $pic_ext)) {
echo '<a href="'.$a['fail'].'">';
echo '<img src="/user/messages/pic.php?file=' . $var . '" alt="Нажмите для просмотра изображения" /></a>'.$var;
} else {
if($att_ext == 'zip'){
$zip = ' [<a href="?mod=zip&file=' . $var . '" class="href">Просмотр архива</a>]';
}
echo "<b><a href="".$a['fail']."" title="Скачать файл ".$var."" class="href">".$var."</a></b>".$zip;
}
echo " [".func::file_size($a['fails'])."]";
}
//if($a['user_id']==core::$user['id'])echo '</div>';
echo '<dl></dl>';
}
if ($k_page>1){
func::nav('messages.php?mod=dialog&dialog='.$dialog.'&',$k_page,$page); // Вывод страниц
}
}else{
?>
<script language='JavaScript' type='text/javascript'>
$(document).ready(function()
{
dialog_js();
$('div#download_img').css('display', 'block');
function dialog_js()
{
$.ajax({
url: "/user/messages/dialog_js.php?mod=dialog&dialog=<?echo $dialog;?>&page=<?echo $page;?>",
cache: false,
success: function(responce){
$("#dialog_js").html(responce);
$('div#download_img').css('display', 'none');
}
});
}
setInterval(function()
{
dialog_js();
}, 6000);
});
</script>
<?
echo '<div id="download_img" style="display:none;"><img src="/img/loading.gif" alt="" width="100" height="100" /></div>
<div id="dialog_js"></div>';
}
echo '<dl><dt></dt></dl>';
?>
<script>
function AjaxFormRequest(result_id,formMain,url) {
jQuery.ajax({
url: "/user/messages/form.php?mod=add&dialog=<?echo $dialog;?>&act=act",
type: "POST",
dataType: "html",
data: jQuery("#"+formMain).serialize(),
success: function(response) {
document.getElementById(result_id).innerHTML = response;
},
error: function(response) {
document.getElementById(result_id).innerHTML = "<p>Возникла ошибка при отправке формы. Попробуйте еще раз</p>";
}
});
$(':input','#formMain')
.not(':button, :submit, :reset, :hidden')
.val('')
.removeAttr('checked')
.removeAttr('selected');
}
</script>
<?
echo '<br />Сообщение:<br /><form id="formMain" action="" method="post" name="form" enctype="multipart/form-data">';
echo '<textarea cols="'.core::$user['pole2'].'" rows="'.core::$user['pole1'].'" name="msg"></textarea><br/>';
if (core::$user['bbpnel']==1 || (core::$user['bbpnel']==2 && func::is_mobile()==0)){
echo $div3;
func::quickpaste('msg');
echo $div9;
}
if (core::$user['p_file']==1 || (core::$user['p_file']==2 && func::is_mobile()==0)){
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="/PAGES/help.php?bb" class="href">BBcode</a> | <a href="'.H.'smiles/" class="href">Смайлы</a><br />';
/*echo '<br /><input id="button" onclick="AjaxFormRequest("messegeResult", "formMain", "/user/messages/form.php?mod=add&dialog='.$dialog.'&act=act")" type="button" class="ibutton" value="Отправить"/>
</form><br />';*/
?>
<input id="button" type="button" value="Отправить" onclick="AjaxFormRequest('messegeResult', 'formMain', '')"/>
</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>';
?>