View file moduls/chat.php

File size: 5.22Kb
<?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 'room':
		$q=$db->query("select * from `chat_room` where `id`='$id'")->fetch(PDO::FETCH_ASSOC);
		if($q){
			if(($time-$user['flood']>$da['flood'])){
				if(!empty($_POST['text'])){
					$text=nl2br(bb_code(smiles(protect($_POST['text']))));
						$text_strl=strlen($text);
						if($text_strl>$da['min_simb']){
							if(!empty($_GET['reply'])){
								$reply=protect(intval($_GET['reply']));
								$w=$db->query("select * from `chat` where `id`='$reply'")->fetch(PDO::FETCH_ASSOC);
								if($w){
									$reply=$w['id'];
									if($w['author_id']!==$user['id']){
										$db->query("insert into `notice` set `to`='$w[author_id]', `user`='$user[id]', `text`='Пользователь <a href=\"/profile$user[id]\">$user[login]</a> ответил вам <a href=\"/chat/$id\">в чате</a>', `time`='$time', `status`='1'");
										#print_r($db->errorInfo());
									}
								}else{$reply=0;}
							}else{$reply=0;}
							$db->query("insert into `chat` set `id_room`='$id', `author_id`='$user[id]', `text`='$text', `time`='$time', `reply`='$reply'");
							$db->prepare("update `user` set `balans`=`balans`+1, `flood`='$time' where `id`='$user[id]'")->execute();
							echo'<meta http-equiv="refresh" content="0; url = /chat/'.$id.'">';
						}else{echo'<div class="menu">Мин. длина текста не менее '.$da['min_simb'].' символов</div>';}
				}else{
					if(!empty($_GET['reply'])){
						$r=$db->query("select * from `chat` where `id`='".protect($_GET['reply'])."'")->fetch(PDO::FETCH_ASSOC);
						if($r){
							$t=$db->query("select `login` from `user` where `id`='$r[author_id]'")->fetch(PDO::FETCH_ASSOC);
							echo'<div class="head">Отвечаем пользователю <a href="/profile'.$r['author_id'].'">'.$t['login'].'</a></div>
							<div class="menu">'.$r['text'].'</div>';
						}
					}
					echo'<div class="menu"><form action="#" method="POST">';
					echo fast_smile().'
					Собщение: <a id="up1" href="#" style="text-align:right;">[Смайлы]</a><br />';
					echo smile_panel().'
					<textarea name="text" rows="1" cols="25" id="text"></textarea>
					<input type="submit" value="Отправить" />
					</form></div>
					<div class="menu" style="text-align:center;"><a href="/info/bb">BB коды</a> |
					<a href="/info/smiles">Смайлы</a> | <a href="/chat">Обновить</a></div>';
				}
			}else{echo'<div class="citatka">Чтобы написать, подождите '.($da['flood']-($time-$user['flood'])).' cek.</div>';}
			$total=$db->query("select `id` from `chat` where `id_room`='$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 `chat` where `id_room`='$id' order by `time` desc limit $start, $set[p_str]");
				while($row=$sql->fetch(PDO::FETCH_ASSOC)){
					$author=$db->query("SELECT * FROM `user` WHERE `id` = '$row[author_id]' ")->fetch(PDO::FETCH_ASSOC);
					echo'<div class="menu">'.avatar($author['avatar']).' <a href="/profile'.$row['author_id'].'"><b>'.$author['login'].'</b></a> '.lvl($row['author_id'],$author['level']).on($author['visit']);
					if($user)echo'<a href="/chat/'.$id.'/reply'.$row['id'].'"> [Отв]</a>';
					if($user['level']==1 or $user['level']>4)echo'<a href="/moduls/delete.php?act=10&id='.$row['id'].'">[x]</a>';
					echo'<br/><small>'.clock($row['time']).'</small><br/>';
					if($row['reply']){
						$y=$db->query("select * from `chat` where `id`='$row[reply]'")->fetch(PDO::FETCH_ASSOC);
						if($y){
							$e=$db->query("select `login` from `user` where `id`='$y[author_id]'")->fetch(PDO::FETCH_ASSOC);
							echo '<div class="citatka" style="width:60%;"><a href="/profile'.$y['author_id'].'">'.$e['login'].'</a>: '.nl2br($y['text']).'</div>';
						}
					}
					echo $row['text'].'</div>';
				}
				if ($k_page>1)str('/chat/'.$id.'/',$k_page,$page); // Вывод страниц
			}else{echo'<div class="menu">Сообщений еще нет</div>';}
		}else{echo'<div class="menu">Такой комнаты несуществует</div>';}
		back('/chat');
		break;
		
		default:
		echo'<div class="menu" style="text-align:center;"><b>Выберите комнату</b></div>';
		$total=$db->query("select `id` from `chat_room`")->rowCount();
		if($total){
			$sql=$db->query("select * from `chat_room` order by `id`");
			echo'<div class="touch">';
			while($res=$sql->fetch(PDO::FETCH_ASSOC))
				echo'<div class="menu"><a href="/chat/'.$res['id'].'">'.$res['name'].' '.right($db->query("select `id` from `user` where `where1`='/chat/$res[id]' and `visit`>($time-$da[time_online])")->rowCount().' чел.').'</a></div>';
			echo'</div>';
		}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';
?>