View file moduls/dialog.php

File size: 7.9Kb
<?php
include_once'../system/xcms_core.php';$title='Диалоги';
if($_COOKIE['style']=='web')require_once '../system/web_head.php'; else require_once '../system/head.php';
if($user){
	switch($act){
		case 'ignor':
		$ign=$db->query("select * from `ignor` where `user`='$user[id]' and `user2`='$id'")->rowCount();
		if($ign)
			$db->exec("delete from `ignor` where `user`='$user[id]' and `user2`='$id'");
		else
			$db->query("insert into `ignor` set `user`='$user[id]', `user2`='$id', `time`='$time'");
		echo'<meta http-equiv="refresh" content="0; url = /dialog/'.$id.' ">';
		break;
		
		default:
		if($id and $id!==$user['id']){
			$w=$db->query("select * from `dialog` where `kto`='$id' and `komu`='$user[id]'")->fetch(PDO::FETCH_ASSOC);
			$e=$db->query("select * from `dialog` where `kto`='$user[id]' and `komu`='$id'")->fetch(PDO::FETCH_ASSOC);
			if(!$e)$db->exec("insert into `dialog` set `kto`='$user[id]', `komu`='$id', `time`='$time'");
			if(!$w)$db->exec("insert into `dialog` set `komu`='$user[id]', `kto`='$id', `time`='$time'");
			$q=$db->query("select * from `user` where `id`='$id'")->fetch(PDO::FETCH_ASSOC);
			if($q){
				if(($time-$user['flood'])>$da['flood']){
					$ignor=$db->query("select * from `ignor` where `user2`='$user[id]' and `user`='$id'")->rowCount();
					if(!$ignor){
						if(!empty($_POST['text'])){
							$text=nl2br(bb_code(smiles(protect($_POST['text']))));
							$text_strl=strlen($text);
							if($text_strl>$da['min_simb']){
								$rand=rand(0,999999);
								$uploadfile = "../files/files_mail/".$user['id']."-".$rand."-".$_FILES['file']['name'];
									if(move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)){
										$file=$user['id'].'-'.$rand.'-'.$_FILES['file']['name'];
									}else{$file=0;}
								$db->query("insert into `mail` set `kto`='$user[id]', `komu`='$id', `time`='$time', `status`='1', `text`='$text', `file`='$file'");
								$db->prepare("update `dialog` set `last`='$time', `last_text`='$text' where `kto`='$id' and `komu`='$user[id]'")->execute();
								$db->prepare("update `dialog` set `last`='$time', `last_text`='$text' where `kto`='$user[id]' and `komu`='$id'")->execute();
								$db->prepare("update `user` set `flood`='$time' where `id`='$user[id]'")->execute();
								echo'<meta http-equiv="refresh" content="0; url = /dialog/'.$id.' ">';
							}else{echo'<div class="menu">Мин. длина текста не менее '.$da['min_simb'].' символов</div>';}
						}else{
							echo'<form action="#" method="POST" enctype = "multipart/form-data">';
							echo fast_smile().'<div class="menu">
							Текст: <a id="up1" href="#" style="text-align:right;">[Смайлы]</a><br />';
							echo smile_panel().'<textarea name="text"></textarea><br />
							<input type="file" name="file"><input type="submit" value="Отправить">
							</div>
							</form>
							<div class="menu" style="text-align:center;"><a href="/info/bb">BB коды</a> | <a href="/info/smiles">Смайлы</a> | <a href="/dialog/'.$id.'">Обновить</a></div>';
						}
					}
				}else{echo'<div class="citatka">Чтобы написать, подождите '.($da['flood']-($time-$user['flood'])).' cek.</div>';}
				$ign=$db->query("select * from `ignor` where `user`='$user[id]' and `user2`='$id'")->rowCount();
				if($ign)$ign_link='Удалить из игнора';else $ign_link='Добавить в игнор';
				echo'<div class="head">Диалог с '.$q['login'].'</div>
				<div class="touch">
				<div class="menu"><a href="/dialog/'.$id.'/ignor">'.$ign_link.'</a></div>';
				if($user['id']==1 and $id!==$user['id']){
					if($q['ban']==1)$link_b='Разблокировать';else $link_b='Заблокировать';
					echo'<div class="menu"><a href="/moduls/edit.php?act=1&amp;id='.$id.'">'.$link_b.'</a></div>
					<div class="menu"><a href="/moduls/delete.php?act=1&amp;id='.$id.'">Удалить пользователя</a></div>';
				}
				echo'</div>';
				if(($time-$q['visit'])>90)echo'<div class="menu" style="text-align:center;"><i>Был в сети '.clock($q['visit']).'</i></div>';
				$total=$db->query("SELECT * from `mail` where `kto`='$user[id]' and `komu`='$id' or `kto`='$id' and `komu`='$user[id]'")->rowCount();
				if($total){
					$k_page=k_page($total,$set['p_str']);$page=page($k_page);$start=$set['p_str']*$page-$set['p_str'];
					$sql=$db->query("select * from `mail` where `kto`='$user[id]' and `komu`='$id' or `kto`='$id' and `komu`='$user[id]' order by `time` desc limit $start, $set[p_str]");
					while($res=$sql->fetch(PDO::FETCH_ASSOC)){
						if($res['komu']==$user['id'] and $res['status'])$db->prepare("update `mail` set `status`='0' where `id`='$res[id]'")->execute();
						$us=$db->query("select * from `user` where `id`='$res[kto]' limit 1")->fetch(PDO::FETCH_ASSOC);
						if($us)$us=avatar($us['avatar']).' <a href="/profile'.$us['id'].'">'.$us['login'].'</a> '.lvl($us['id'],$us['level']).on($us['visit']); else $us='Удален';
						echo '<div class="menu">'.$us.'<br />'.clock($res['time']).'<br />';
						if($res['status'])echo '<span style="color:#B22222;">'.$res['text'].'</span>'; else echo $res['text'];
						if($res['file'])echo'<br /><br />'.image('attachment.png').' <a href="/files/files_mail/'.$res['file'].'">'.$res['file'].'</a><br />'.sizer('../files/files_mail/'.$res['file']).'';
						echo'</div>';
					}
					if ($k_page>1)str('/dialog/'.$id.'/',$k_page,$page); // Вывод страниц
				}else{echo'<div class="menu">Диалога с этим пользователей еще нет</div>';}
			}else{echo'<div class="menu">Ошибка идентификатора</div>';}
			back('/dialog');
		}else{
			$total=$db->query("SELECT `id` from `dialog` where `kto`='$user[id]'")->rowCount();
			if($total){
				echo'<div class="touch">';
				$k_page=k_page($total,$set['p_str']);$page=page($k_page);$start=$set['p_str']*$page-$set['p_str'];
				$sql=$db->query("select * from `dialog` where `kto`='$user[id]' order by `last` desc limit $start, $set[p_str]");
				while($res=$sql->fetch(PDO::FETCH_ASSOC)){
					$new=$db->query("SELECT `id` from `mail` where `kto`='$res[komu]' and `komu`='$user[id]' and `status`='1'")->rowCount();
					$us=$db->query("select * from `user` where `id`='$res[komu]' limit 1")->fetch(PDO::FETCH_ASSOC);
					$usl=($time-$us['visit']);if($usl<90){$stts='<span style="color:#9ACD32;">(В сети)</span>';}else{$stts='<span style="color:#B22222;">(Не в сети)</span>';}
					$kek=$db->query("select `id` from `mail` where `kto`='$user[id]' and `komu`='$res[komu]' or `kto`='$res[komu]' and `komu`='$user[id]'")->rowCount();
					if($kek>0){
						echo'<div class="menu"><a href="/dialog/'.$res['komu'].'">';
						if($us)echo avatar($us['avatar']).$us['login'];else echo avatar('default.png').' Удален';
						echo $stts.' ('.$kek.'/'.$new.')';if($new)echo' <b>Новое</b>';echo'<br />';
						#if($res['last'])echo clock($res['last']);else echo clock($res['time']);
						$last_dialog=$db->query("select * from `mail` where `kto`='$us[id]' and `komu`='$user[id]' order by `id` desc limit 1")->fetch(PDO::FETCH_ASSOC);
						if($res['last_text'])
							echo iconv_substr($res['last_text'], 0, 58, 'UTF-8').'..';
						else
							echo iconv_substr($last_dialog['text'], 0, 58, 'UTF-8').'..';
						echo'</a></div>';
					}
				}
				echo'</div>';
				if ($k_page>1)str('/dialog/',$k_page,$page); // Вывод страниц
			}else{echo'<div class="menu">Диалоги еще не созданы, для создания перейдите на страницу пользователя и напишите ему сообщение</div>';}
			back('/');
		}
	}
}else{echo'<div class="menu">Авторизуйтесь, чтобы просматривать эту страницу</div>';}
if($_COOKIE['style']=='web')require_once '../system/web_foot.php'; else require_once '../system/foot.php';
?>