View file chat.php

File size: 7.01Kb
<?php
// by Mike O. (mides), coolcms.mobi

$title = 'Мини-чат';
require_once 'system/sys.php';
require_once 'system/header.php';

switch ($act) {
    default:
		echo '<div class="title"><a href="?">Мини-чат</a>';
		if ($u['access'] > 2) {
			echo ' [<a href="?act=empty_chat">DEL</a>]';
		}
		echo '</div>';
		if ($u['id']) {
		echo '<div class="main">'.bbpanel('form', 'msg').'<br />';
			echo '<form name="form" action="?act=add" method="post">
			<textarea name="msg" cols="" rows="3"></textarea>';
			echo '<input name="" type="submit" value="Ok">
			</form>
			</div>';
		}
		$total = mysql_result(mysql_query("SELECT COUNT(`id`) FROM `chat`"), 0);
		if ($total > 0) {
			$pages = ceil($total / $config['onpage']);
			if ($page > $pages or $page == 0) {
				$page = 1;
			}
			$begin = ($page - 1) * $config['onpage'];

			navig($page, '?', $pages);
			
			echo '</div><div class="list">';
		
			$chat_r = mysql_query("SELECT * FROM `chat` ORDER BY `time` DESC LIMIT ".$begin.", ".$config['onpage']."");
			while ($chat = mysql_fetch_assoc($chat_r)) {
				if (!isset($num) ) $num = 1;  
				$num++;
				$row_class = (!($num % 2)) ? 'row1' : 'row2';	
				echo '<div class="'.$row_class.'"><a href="profile.php?id='.$chat['id_user'].'">'.login($chat['id_user']).'</a> '.ccdate($chat['time'], $chat['id_user']);
				if ($u['id']) {
						echo ' <a href="?act=reply&amp;id='.$chat['id'].'">Отв</a>';
				}
				if ($u['access'] > 0 or $u['id'] and $u['id'] == $chat['id_user'] and time() - $chat['time'] < $config['edit_time']) echo '|<a href="?act=edit&amp;id='.$chat['id'].'">Ред</a>';
				if ($u['access'] > 1) echo '|<a href="?act=del&amp;id='.$chat['id'].'">Уд</a>';
				echo '<br />'.bb($chat['msg']);
				if ($chat['edit_by']) echo '<br />_______<br /><span style="font-size: 10px;">отредактировано: '.justusername($chat['edit_by']).' ('.date('d.m.y, H:i', $chat['edit_time']).' )</span>';
				echo '</div>';
			}
			navig($page, '?', $pages);
		} else {
			echo '</div><div class="list">В мини-чате пусто.';
		}
		nav_main();	
	break;
	
	case 'add':
		if ($u['id']) {
			if ($_POST['msg']) {
				if (time() > $_SESSION['antispam']) {
					$msg = check($_POST['msg']);
					mysql_query("INSERT INTO `chat` SET `id_user` = '$u[id]', `msg` = '$msg', `time` = '".time()."'");
					$_SESSION['antispam'] = time() + $config['antispam'];
					header('location: ?');
				} else {
					error('Антиспам. Разрешено писать раз в '.$config['antispam'].' сек.');
					nav('?');
				}
			} else {
				header('location: ?');
			}
		} else {
			if ($_POST['msg'] and $_POST['code']) {
				$msg = check($_POST['msg']);
				$code = check($_POST['code']);
				if ($_SESSION['checkcode'] == $code) {
					if (time() > $_SESSION['antispam']) {
						mysql_query("INSERT INTO `chat` SET `msg` = '$msg', `time` = '".time()."'");
						$_SESSION['antispam'] = time() + $config['antispam'];
						header('location: ?');
					} else {
						error('Антиспам. Разрешено писать раз в '.$config['antispam'].' сек.');
						nav('?');
					}
				} else {
					error('Неверный код.');
					nav('?');
				}
			} else {
				header('location: ?');
			}
		}
	break;
	
	case 'reply':
		if ($u['id']) {
			$id = intval($_REQUEST['id']);
			$msg_r = mysql_query("SELECT `id`, `id_user` FROM `chat` WHERE `id` = '$id'");
			$msg = mysql_fetch_assoc($msg_r);
			if ($msg['id']) {
				if ($ok) {
					if (time() > $_SESSION['antispam']) {
						if ($_POST['msg_text']) {
							$msg_text = check($_POST['msg_text']);
							mysql_query("INSERT INTO `chat` SET `id_user` = '$u[id]', `msg` = '$msg_text', `time` = '".time()."'");
							$_SESSION['antispam'] = time() + $config['antispam'];
							header('location: ?');
						} else {
							error('Вы не заполнили поле.');
							nav('?act=reply&amp;id='.$id);
						}
					} else {
						error('Антиспам. Разрешено писать раз в '.$config['antispam'].' сек.');
						nav('?');
					}
				} else {
					tp('Ответ на сообщение(max250)');
					echo '<form name="form" action="?act=reply&amp;id='.$id.'&amp;ok=1" method="post">
					<textarea name="msg_text" cols="" rows="3">[b]'.justusername($msg['id_user']).'[/b], </textarea><br />';
					if (!$u['id']) {
						echo 'Введите: 
						<img src="inc/code.php?'.session_name().'='.session_id().'" alt="" /><br/>
						<input name="code" maxlength="5" size="12" /><br />';
					}
					echo '<input name="submit" type="submit" value="Ok" />
					</form>';
					nav('?');
				}
			} else {
				error('Сообщение, на которое вы хотите ответить, не существует.');
				nav('?');
			}
		} else {
			header('location: ?');
		}
	break;
	
	case 'edit':
		if ($u['id']) {
			$id = intval($_REQUEST['id']);
			$chat_r = mysql_query("SELECT `id_user`, `msg`, `time` FROM `chat` WHERE `id` = '$id'");
			$chat = mysql_fetch_assoc($chat_r);
			if ($chat['msg']) {
				if ($u['access'] > 0 or $u['id'] == $chat['id_user'] and time() - $chat['time'] < $config['edit_time']) {
					tp('Редактирование сообщения');
					if (empty($_REQUEST['ok'])) {
						echo '<form name="form" action="?act=edit&amp;id='.$id.'&amp;ok=1" method="post">
						Сообщение(max250):<br /><textarea name="msg" cols="" rows="3">'.$chat['msg'].'</textarea>
						<input name="submit" type="submit" value="Ok" />
						</form>';
						nav('?');
					} else {
						if ($_POST['msg']) {
							$msg = check($_POST['msg']);
							mysql_query("UPDATE `chat` SET `msg` = '$msg', `edit_by` = '$u[id]', `edit_time` = '".time()."' WHERE `id` = '$id'");
							header('location: ?');
						} else {
							error('Вы не заполнили поле.');
							nav('?act=edit&amp;id='.$id);
						}
					}
				} else {
					error('Нельзя отредактировать это сообщение.');
					nav('?');
				}
			} else {
				error('Сообщение не существует.');
				nav('?');
			}
		} else {
			header('location: login.php');
			exit;
		}
	break;
	
	case 'del':
		if ($u['access'] > 1) {
			$id = intval($_REQUEST['id']);
			$msg_r = mysql_query("SELECT `id` FROM `chat` WHERE `id` = '$id'");
			if (mysql_num_rows($msg_r)) {
				mysql_query("DELETE FROM `voting` WHERE `type` = 'chat' and `id_for` = '$id'");
				mysql_query("DELETE FROM `chat` WHERE `id` = '$id'");
			}
		}
		header('location: ?');
	break;	
	
	case 'empty_chat':
		if ($u['access'] > 2) {
			if ($ok) {
				mysql_query("DELETE FROM `chat`");
				header('location: ?');
			} else {
				tp('Подтвердите');
				echo 'Удалить все сообщ. в мини-чате?
				<form name="form" action="?act=empty_chat&amp;ok=1" method="post">
				<input name="submit" type="submit" value="Ok" />
				</form>';
			}
			nav('?');
		}
	break;	
}

require_once 'system/tail.php';
?>