File size: 5.59Kb
<?php
$ID = (int) $_GET['id'];
$room = db::fetch("SELECT * FROM `chat_rooms` WHERE `id` = '" . $ID . "' LIMIT 1", ARRAY_A);
$_SESSION['sid'] = mt_rand( 000, 999 );
if ( !isset( $room['id'] ) ) {
$_SESSION['message'] = __( 'Такой комнаты не существует' );
header( 'Location: ?sid=' . $_SESSION['sid'] );
exit;
}
if ( isset( $user ) && db::count("SELECT COUNT(*) FROM `chat_who` WHERE `id_user` = '$user[id]'") == 0 ) {
db::query("INSERT INTO `chat_who` (`id_user`, `time`, `room`) values('$user[id]', '$time', '$room[id]')");
} elseif ( isset( $user ) ) {
db::query("UPDATE `chat_who` SET `room` = '$room[id]', `time` = '$time' WHERE `id_user` = '$user[id]' LIMIT 1");
}
if ( $set['time_chat'] != 0 && !isset( $ank_reply['id'] ) ) {
header( 'Refresh: ' . $set['time_chat'] . '; url=?func=room&id=' . $ID . '&sid=' . $_SESSION['sid'] );
}
if ( isset( $_POST['msg'] ) && isset( $user ) ) {
$msg = $_POST['msg'];
$mat = antimat( $msg );
if ( $mat ) {
$err[] = __( 'В тексте сообщения обнаружен мат: ' ) . $mat;
}
if ( strlen2( $msg ) > 512 ) {
$err[] = __( 'Сообщение слишком длинное' );
} elseif ( strlen2( $msg ) < 2 ) {
$err[] = __( 'Короткое сообщение' );
} elseif ( db::count("SELECT COUNT(*) FROM `chat_post` WHERE `id_user` = '$user[id]' AND `msg` = '" . mysql_escape_string( $msg ) . "' AND `time` > '" . ( $time - 300 ) . "' LIMIT 1") != 0 ) {
$err = __( 'Ваше сообщение повторяет предыдущее' );
} elseif ( !isset( $err ) ) {
$priv = ( isset( $_POST['privat'] ) ? (int) $_POST['privat'] : 0 );
db::query("INSERT INTO `chat_post` (`id_user`, `time`, `msg`, `room`, `privat`) values('$user[id]', '$time', '" . my_esc( $msg ) . "', '$room[id]', '$priv')");
include_once H . 'sys/add/user.active.php';
$_SESSION['message'] = __( 'Сообщение успешно добавлено' );
header( 'Location: ?func=room&id=' . $ID . '&sid=' . $_SESSION['sid'] );
exit;
}
}
$opdirbase = opendir( 'plugins' );
while ( $filebase = readdir( $opdirbase ) ) {
if ( preg_match( '#\.php$#i', $filebase ) ) {
require( 'plugins/' . $filebase );
}
}
$set['title'] = text( $room['name'] ) . ' - ' . db::count("SELECT COUNT(*) FROM `chat_who` WHERE `room` = '$room[id]' AND `time` > '" . ( time() - 120 ) . "'") . ' чел.';
include_once H . 'sys/inc/thead.php';
title();
aut();
err();
if ( isset( $user ) ) {
?>
<form class="mess" method="post" name="message" action="?func=room&id=<?= $ID ?>&sid=<?= $_SESSION['sid'] ?>">
<?php
if ( is_file( H . 'style/themes/' . $set['set_them'] . '/altername_post_form.php' ) ) {
include_once H . 'style/themes/' . $set['set_them'] . '/altername_post_form.php';
} else {
echo $tPanel . '<textarea name="msg">' . $insert . '</textarea><br />';
}
if ( isset( $ank_reply['id'] ) ) {
echo 'Ответ для ' . $ank_reply['nick'] . '<br /><label><input type="checkbox" name="privat" value="' . $ank_reply['id'] . '" /> Приватно</label><br />';
}
?>
<input value="<?= __( 'Отправить' ) ?>" type="submit"/> <a
href="?func=room&id=<?= $ID ?>"><?= __( 'Обновить' ) ?></a><br/>
</form>
<?php
}
$k_post = db::count("SELECT COUNT(*) FROM `chat_post` WHERE `room` = '$room[id]' AND (`privat` = '0'" . ( isset( $user ) ? " OR `privat` = '$user[id]'" : null ) . ( isset( $user ) ? " OR `id_user` = '$user[id]'" : null ) . ")");
$k_page = k_page( $k_post, $set['p_str'] );
$page = page( $k_page );
$start = ( $set['p_str'] * $page ) - $set['p_str'];
?>
<table class="post"><?php
if ( $k_post == 0 ) {
?>
<div class="mess">
<?= __( 'Здесь еще никто ничего не писал =(' ) ?>
</div>
<?php
}
$q = db::query("SELECT * FROM `chat_post` WHERE `room` = '$room[id]' AND (`privat` = '0'" . ( isset( $user ) ? " OR `privat` = '$user[id]'" : null ) . ( isset( $user ) ? " OR `id_user` = '$user[id]'" : null ) . ") ORDER BY id DESC LIMIT $start, $set[p_str]" );
while ( $post = $q->fetch_assoc() ) {
$num++;
?>
<div class="<?= ( $num % 2 ? 'nav2' : 'nav1' ) ?>"><?php
if ( $post['umnik_st'] == 0 && $post['shutnik'] == 0 ) {
echo user::avatar( $post['id_user'], 2 ) . user::nick( $post['id_user'], 1, 1, 0 ) . ( isset( $user ) && $user['id'] != $post['id_user'] ? ' <a href="?func=room&id=' . $ID . '&response=' . $post['id_user'] . '">[отв]</a>' : '' );
} elseif ( $post['umnik_st'] != 0 ) {
?><img src="/style/themes/<?= $set['set_them'] ?>/chat/14/shut.png" alt="" /> <span
style="color: #1c6a9f;"><?= $set['chat_umnik'] ?></span> <?php
} elseif ( $post['shutnik'] == 1 ) {
?><img src="/style/themes/<?= $set['set_them'] ?>/chat/14/umnik.png" alt="" /> <span
style="color: #1c6a9f;"><?= $set['chat_shutnik'] ?></span> <?php
}
echo ( isset( $user ) && $post['privat'] != 0 ? ' <span class="off">' . __( '[прив]' ) . '</span> ' : '' );
echo '<br />' . output_text( $post['msg'] ) . ' <span class="time">' . vremja( $post['time'] ) . '</span><br />';
?></div><?php
}
?>
</table>
<?php
if ( $k_page > 1 ) {
str( '?func=room&id=' . $ID . '&sid=' . $_SESSION['sid'] . '&', $k_page, $page );
}
?>
<div class="foot">
<img src="/style/icons/str2.gif" alt="*"/> <a href="?"><?= __( 'Прихожая' ) ?></a><br/>
</div>