<?php
/* Mixanza Production
* Дата последнего редактирования 28.05.2018
* Модифицировал Mixanza
*/
foreach (array('start', 'compress', 'sess', 'settings', 'db_connect', 'ipua', 'fnc', 'user') as $inc) {
require_once "../../sys/inc/$inc.php";
}
$set['title'] = lang('Мини чат');
require_once H . 'sys/inc/thead.php';
// Действия с комментариями
include 'inc/admin_act.php';
aut();
err();
if (isset($user) && $pdo->query(("SELECT COUNT(*) FROM `dlist` WHERE `id_user` = '$user[id]'"), 0)->fetchColumn()==0)
{
$pdo->query("INSERT INTO `dlist` (`id_user`) values('". intval($user['id']) ."')");
header("Location: ?");
}
#Навигация
echo "<div class='card-header'>";
echo "<a href='/' data-toggle='tooltip' data-placement='right' title='" . lang('На главную') . "'><i class='fa fa-home fa-lg'></i></a> <i class='fa fa-angle-right fa-fw'></i> ";
echo lang('Мини чат');
echo "</div>";
if ($user['rating'] >= 0 && $user['rating'] <= 19){
echo "<div class=\"list-group-item\">";
echo "<div class='mess'>";
echo 'Извините, но писать сообщения в мини-чате можно со 2-го уровня. Чтобы достичь второй уровень необходимо <a href="/modules/shop/money.php">Поднять рейтинг</a> за начисляемые баллы,
которые <a href="/modules/shop/">обмениваются на рубли</a>.
<br><br>Полезное инфо: <a href="/site/balls.php">Как зарабатывать баллы</a>
';
echo "</div></div>";
}else{
if ($pdo->query(("SELECT COUNT(*) FROM `ban_mini_chat` WHERE `id_user` = '$user[id]' AND `status` = '1'"), 0)->fetchColumn())
{
header('location: ban_user.php');
}
if (isset($_GET['delf'])){
$pdo->query("DELETE FROM `mini_chat_files` WHERE `id` = '".intval($_GET['delf'])."' AND `id_user` = '".$user['id']."'");
$_SESSION['message'] = 'Объект успешно удален';
header("Location: ?");
}
if (isset($_GET['like']))
{if ($pdo->query(("SELECT COUNT(*) FROM `like_post` WHERE `id_user` = '".$user['id']."' AND `id_post` = '".intval($_GET['like'])."' AND `type` = 'mini_chat' LIMIT 1"),0)->fetchColumn()==0){
$pdo->query("INSERT INTO `like_post` (`id_post`, `id_user`, `like`, `time`, `type`) VALUES ('".intval($_GET['like'])."', '$user[id]', '1', '$time', 'mini_chat')");
$_SESSION['message'] = 'Ваш голос засчитан';
header("Location: /modules/mini_chat/index.php");
exit;
}}
// Отправка комментариев
if (isset($_POST['msg']) && isset($user)) {
$msg = htmlspecialchars($_POST['msg']);
$mat = antimat($msg);
if ($mat) {
$err[] = lang("В тексте сообщения обнаружен мат") . ": $mat";
}
if (utf8_strlen($msg) > 10024) {
$err[] = lang('Сообщение слишком длинное');
} elseif (utf8_strlen($msg) < 2) {
$err[] = lang('Короткое сообщение');
} elseif ($pdo->query(("SELECT COUNT(*) FROM `mini_chat` WHERE `id_user` = '" . $user['id'] . "' AND `msg` = '" . mysql_real_escape_string($msg) . "' LIMIT 1"), 0)->fetchColumn() != 0) {
$err = lang('Ваше сообщение повторяет предыдущее');
} elseif (!isset($err)) {
$pdo->query("INSERT INTO `mini_chat` (`id_user`, `time`, `msg`) values('" . $user['id'] . "', '$time', '" .$msg. "')");
$id_msg = $pdo->lastInsertId();
$pdo->query("UPDATE `mini_chat_files` SET `id_msg` = '$id_msg' WHERE `id_msg`='0' AND `id_user`='" . $user['id'] . "'");
$pdo->query("UPDATE `mini_chat_graff` SET `id_graff` = '0', `id_msg` = '$id_msg' WHERE `id_user` = '" . $user['id'] . "' AND `id_graff` = '1'");
$dlist = $pdo->query("SELECT * FROM `dlist` WHERE `id_user` = '".$user['id']."' LIMIT 1")->fetch(PDO::FETCH_ASSOC);
if (isset($user) && $pdo->query(("SELECT COUNT(*) FROM `dlist` WHERE `id_user` = '$user[id]' AND `mini_chat` = '5'"), 0)->fetchColumn()==0)
{
$pdo->query("UPDATE `dlist` SET `mini_chat` = '" . ($dlist['mini_chat'] + 1) . "' WHERE `id_user` = '".intval($user['id'])."' LIMIT 1");
}
if (isset($user) && $pdo->query(("SELECT COUNT(*) FROM `dlist` WHERE `id_user` = '$user[id]' AND `mini_chat` = '5' AND `mini_chat_ok` = '0'"), 0)->fetchColumn())
{
$pdo->query("UPDATE `user` SET `activity` = '" . ($user['activity'] + $dlist['mini_chat_v']) . "' WHERE `id` = '".intval($user['id'])."' LIMIT 1");
$pdo->query("UPDATE `dlist` SET `mini_chat_ok` = '1' WHERE `id_user` = '".intval($user['id'])."' LIMIT 1");
$pdo->query("INSERT INTO `jurnal_balls` (`time`, `msg`, `id_user`, `balls`, `id_post`, `type`, `type_post`) values('$time', 'Выполнение достижения', '".intval($user['id'])."', '".intval($dlist['mini_chat_v'])."', '".intval($id_file)."', 'plus', 'games')");
}
$_SESSION['message'] = lang('Сообщение успешно добавлено');
header("Location: index.php" . SID);
exit;
}
}
// Отправка комментариев с главной
if (isset($_POST['msgs']) && isset($user)) {
$msg = stripslashes(htmlspecialchars($_POST['msgs']));
if (utf8_strlen($msg) > 10024) {
$err[] = lang('Сообщение слишком длинное');
} elseif (utf8_strlen($msg) < 2) {
$err[] = lang('Короткое сообщение');
} elseif ($pdo->query(("SELECT COUNT(*) FROM `mini_chat` WHERE `id_user` = '" . $user['id'] . "' AND `msg` = '" .$msg. "' LIMIT 1"), 0)->fetchColumn() != 0) {
$err = lang('Ваше сообщение повторяет предыдущее');
} elseif (!isset($err)) {
$pdo->query("INSERT INTO `mini_chat` (id_user, time, msg) values('" . $user['id'] . "', '$time', '" .$msg. "')");
$_SESSION['message'] = lang('Сообщение успешно добавлено');
header("Location: /index.php");
exit;
}
}
$chat_count = $pdo->query(("SELECT COUNT(id) FROM `user` WHERE `date_last` > '" . (time() - 1500) . "' AND `url` like '/modules/mini_chat/%'"), 0)->fetchColumn();
echo "<div class='list-group-item'>";
echo "<a href='who.php'><i class='fa fa-comment fa-fw'></i> <b>" . lang('В мини чате') . " " . sklon_text($chat_count, array(lang('человек'), lang('человека'), lang('человек'))) . "</b></a>";
echo '<a class="collapsed" data-toggle="collapse" data-parent="#accordion" href="#in" aria-expanded="false" aria-controls="in"><span style="float: right;position: relative; right: 15px;"><font color="gray"><i class="fa fa-ellipsis-v fa-lg"></i></font> </span></a>';
echo '
<div id="in" class="panel-collapse collapse" role="tabpanel" aria-labelledby="in"><br>
<a href="/modules/mini_chat/file_dialog.php"><div style="padding: 8px; background-color: #DDE5EC; width: 100%; border-top: 1px #BCC7CF solid;border-left: 1px #BCC7CF solid;border-right: 1px #BCC7CF solid;border-bottom: 0;"><center><font color=#5E768A><i class="fa fa-paperclip fa-fw"></i> Вложения</font></center></div></a>
<a href="/modules/mini_chat/ban_list.php"><div style="padding: 8px; background-color: #DDE5EC; width: 100%; border: 1px #BCC7CF solid;"><center><font color=#5E768A><i class="fa fa-ban fa-fw"></i> Забаненные</font></center></div></a>
';
echo "</div></div>";
// Форма для комментариев
if (isset($user)) {
echo "<form method='post' class='list-group-item' name='message'>";
echo auto_bb("message", "msg");
echo "<textarea placeholder='" . lang('Введите сообщение') . "...' name='msg' class='form-control'></textarea><br />";
$doc->Button('knopka', null, 'pencil', 'Добавить');
echo "<a class='knopka' href='index.php'><font color=white><i class='fa fa-refresh'></i></font></a>";
echo "<span style='float: right;'>";
echo "<a href='/modules/mini_chat/attachments.php' class='btn btn-secondary btn-sm'> <i class='fa fa-file'></i> </a>";
echo '';
echo " <a href='/modules/mini_chat/graff.php'>";
echo " <span class='btn btn-secondary btn-sm'><i class='fa fa-eyedropper fa-fw'></i>";
echo "</span></a></span><br>";
$graff = $pdo->query("SELECT * FROM `mini_chat_graff` WHERE `id_user` = '$user[id]' AND `id_graff`='1' LIMIT 1")->fetch(PDO::FETCH_ASSOC);
if (isset($_GET['delg'])) {
$pdo->query("DELETE FROM `mini_chat_graff` WHERE `id_user`='".$user['id']."' AND `id_graff`='1' LIMIT 1");
@unlink(H.'modules/mini_chat/screens/' . $graff['name'] . '.png');
msg('Граффити успешно удалено');
}
if ($graff['id_graff'] == 1) {
echo "<br><br><a href='/modules/mini_chat/index.php?delg'><i class='fa fa-trash'></i></a><br><a href='/modules/mini_chat/screens/".$graff['name'].".png'><img src='/modules/mini_chat/screens/".$graff['name'].".png' width='85px' height='65px'></a>";
}
$q = $pdo->query("SELECT * FROM `mini_chat_files` WHERE `id_user` = '$user[id]' AND `id_msg` = '0'");
while ($post = $q->fetch(PDO::FETCH_ASSOC)) {
if ($post['type'] == 'photo'){
echo "<br><span class='btn btn-secondary btn-sm'><i class='fa fa-camera'></i> $post[name]";
}
if ($post['type'] == 'video'){
echo "<br><span class='btn btn-secondary btn-sm'><i class='fa fa-film'></i> $post[name]";
}
if ($post['type'] == 'music'){
echo "<br><span class='btn btn-secondary btn-sm'><i class='fa fa-music'></i> $post[name]";
}
if ($post['type'] == 'file'){
echo "<br><span class='btn btn-secondary btn-sm'><i class='fa fa-file'></i> $post[name]";
}
echo' <a href="?delf='.$post['id'].'"><font color=#F56257><i class="fa fa-trash fa-lg"></i></font></a></span><br>';
}
echo '</form>';
}
}
$k_post = $pdo->query(("SELECT COUNT(id) FROM `mini_chat`"), 0)->fetchColumn();
$k_page = k_page($k_post, $set['p_str']);
$page = page($k_page);
$start = $set['p_str'] * $page - $set['p_str'];
if ($k_post == 0) {
$doc->NoResult();
}
$q = $pdo->query("SELECT * FROM `mini_chat` ORDER BY id DESC LIMIT $start, $set[p_str]");
while ($post = $q->fetch(PDO::FETCH_ASSOC)) {
$ank = $pdo->query(("SELECT * FROM `user` WHERE `id` = " . $post['id_user'] . " LIMIT 1"))->fetch(PDO::FETCH_ASSOC);
$k_p = $pdo->query(("SELECT COUNT(*) FROM `mini_chat_layp` WHERE id_post = $post[id]"), 0)->fetchColumn();
$l = $pdo->query("SELECT * FROM `mini_chat_layp` WHERE `id_post` = '$post[id]' ORDER by id ASC");
if($post['ban_private_comm']==1){
echo "<div class='list-group-item' style='background-color: #F0EBF1;'>";
echo '<table style="cellspacing="0" cellpadding="0" width="100%"><tr>';
if (IS_WEB == 1) {
echo '<td style="width: 10%;">';
}else{
echo '<td style="width: 17%;">';
}
echo '<span style="position: absolute; top: 5%;">';
avatarz($ank['id']);
echo '</span>';
echo '</td>';
if (IS_WEB == 1) {
echo '<td style="width: 90%;">';
}else{
echo '<td style="width: 83%;">';
}
while ($layp = $l->fetch(PDO::FETCH_ASSOC)) {
echo "<img src='img/$layp[dir]/$layp[img].png' style='position: absolute; margin-left: $layp[margin_left]px;' />";
}
echo "<span style = 'float:right;color: grey;'><small title='" . date::time($post['time']) . "'>" . date::timek($post['time']) . "</small></span>";
echo user($ank['id']) . " ";
echo "<br />\n";
echo "<br />\n";
echo "<font color=gray>Сообщение скрыто</font>";
echo "<br><br>";
echo "</td></tr></table>";
echo "</div>";
}else{
echo "<div class='list-group-item'>";
echo '<table style="cellspacing="0" cellpadding="0" width="100%"><tr>';
if (IS_WEB == 1) {
echo '<td style="width: 10%;">';
}else{
echo '<td style="width: 17%;">';
}
echo '<span style="position: absolute; top: 5%;">';
avatarz($ank['id']);
echo '</span>';
echo '</td>';
if (IS_WEB == 1) {
echo '<td style="width: 90%;">';
}else{
echo '<td style="width: 83%;">';
}
while ($layp = $l->fetch(PDO::FETCH_ASSOC)) {
echo "<img src='img/$layp[dir]/$layp[img].png' style='position: absolute; margin-left: $layp[margin_left]px;' />";
}
echo "<span style = 'float:right;color: grey;'><small title='" . date::time($post['time']) . "'>" . date::timek($post['time']) . "</small></span>";
echo user($ank['id']) . " ";
echo "<br />\n";
echo "<br />\n";
//////////////////////////////
$f = $pdo->query("SELECT * FROM `mini_chat_files` WHERE `id_msg` = '$post[id]' LIMIT 3");
while ($file = $f->fetch(PDO::FETCH_ASSOC)) {
$file_id = $pdo->query("SELECT * FROM `gallery_foto` WHERE `id` = '".$file['id_file']."'")->fetch(PDO::FETCH_BOTH);
if ($file['type'] == 'photo') {
if (IS_WEB == 1) {
echo "<br /><img src='/modules/foto/foto0/".$file_id['id'].".".$file_id['ras']."' style='border: 1px solid #CCDDED; padding: 2px; border-radius: 5px; max-width: 250px;'>\n";
}else{
echo "<br /><img src='/modules/foto/foto0/".$file_id['id'].".".$file_id['ras']."' style='border: 1px solid #CCDDED; padding: 2px; border-radius: 5px; max-width: 200px;'>\n";
}
echo "<br /><small><a href='/modules/foto/foto0/$file_id[id].$file_id[ras]'><i class='fa fa-paperclip fa-fw'></i> " . stripcslashes(htmlspecialchars($file['name'])) . ".$file[ras]</a></small>";
}
if ($file['type'] == 'video') {
echo '<br /><br /><video src="'.$df['name'].''.$video77.''.$file['id_file'].'.mp4" width="93%" height="200px" poster="/site/files/video_f.png" controls /></video>';
echo "<br /><small><a href='/user/video/file.php?id=".$file['id_file']."'><i class='fa fa-paperclip fa-fw'></i> " . stripcslashes(htmlspecialchars(substr($file['name'],0,25))) . "</a></small>";
}
if ($file['type'] == 'music') {
echo '<br /><br /><audio src="'.$df['name'].''.$music77.''.$file['id_file'].'.mp3" width="93%" height="200px" poster="/site/files/video_f.png" controls /></audio>';
echo "<br /><small><a href='/user/music/file.php?id=".$file['id_file']."'><i class='fa fa-paperclip fa-fw'></i> " . stripcslashes(htmlspecialchars(substr($file['name'],0,25))) . "</a></small>";
}
if ($file['type'] == 'file') {
echo "<br /><small><a href='/user/file/file.php?id=".$file['id_file']."'><i class='fa fa-paperclip fa-fw'></i> " . stripcslashes(htmlspecialchars(substr($file['name'],0,25))) . "</a></small>";
}
echo "<br />";
}
/////////////////////////////
$graf = $pdo->query("SELECT * FROM `mini_chat_graff` WHERE `id_msg` = '$post[id]'")->fetch(PDO::FETCH_ASSOC);
if ($graf['id_msg'] == null) { }else{
echo "<br><a href='/modules/mini_chat/screens/".$graf['name'].".png'><img src='/modules/mini_chat/screens/".$graf['name'].".png' style='max-width: 200px;'></a><br>";
}
echo output_text($post['msg']) . "\n";
echo "<br><br>";
echo "</td></tr></table>";
?>
<style>
.comm-in {
background-color: #E4EDF1;
border: 0.5px #C0CED5 solid;
border-radius: 3px;
padding: 3px;
color: #87ADC0;
margin-top: 2px;
}
.like-in {
background-color: #E4EDF1;
border: 0.5px #C0CED5 solid;
border-radius: 3px 0px 0px 3px;
padding: 3px;
color: #87ADC0;
margin-top: 2px;
}
.like-in-red {
background-color: white;
border: 0.5px #FA766D solid;
border-radius: 3px 0px 0px 3px;
padding: 3px;
color: #FA766D;
margin-top: 2px;
}
.like-in-o {
background-color: white;
border-top: 0.5px #C0CED5 solid;
border-right: 0.5px #C0CED5 solid;
border-bottom: 0.5px #C0CED5 solid;
border-radius: 0px 3px 3px 0px;
padding: 3px;
color: #87ADC0;
margin-top: 2px;
}
.like-in-o-red {
background-color: white;
border-top: 0.5px #FA766D solid;
border-right: 0.5px #FA766D solid;
border-bottom: 0.5px #FA766D solid;
border-radius: 0px 3px 3px 0px;
padding: 3px;
color: #FA766D;
margin-top: 2px;
}
</style>
<?
if (isset($user)) {
if ($ank['id'] != $user['id']) {
echo " <a class='comm-in' href='reply.php?id=$post[id]'><i class='fa fa-comment fa-fw'></i> Ответ</a> ";
}
if ($k_p > 0) {
echo " <a class='comm-in' href='act.php?post=$post[id]&page=$page&act=layp'><i class='fa fa-history fa-fw'></i></a> ";
}else{
if (isset($user) && ($ank['id'] != $user['id'])) {
echo " <a class='comm-in' href='layp.php?post=$post[id]&page=$page'><i class='fa fa-paw fa-fw'></i> Ляп</a> ";
}}
if (isset($user)){
$like = $pdo->query(("SELECT COUNT(*) FROM `like_post` WHERE `id_post` = '".$post['id']."' AND `type` = 'mini_chat'"),0)->fetchColumn();
if ($pdo->query(("SELECT COUNT(*) FROM `like_post` WHERE `id_user` = '".$user['id']."' AND `id_post` = '".$post['id']."' AND `type` = 'mini_chat' LIMIT 1"),0)->fetchColumn()==0){
echo " <span style='float: right; position: relative; left: 8px;'><a class='like-in-o' href='like_list.php?id_post=$post[id]'> <b>$like</b> </a></span> ";
echo " <span id='like' style='float: right; position: relative; left: 8px;'><a class='like-in' href='?like=$post[id]'><i class='fa fa-heart-o fa-fw'></i></a></span> ";
}else{
echo " <span style='float: right; position: relative; left: 8px;'><a class='like-in-o-red' href='like_list.php?id_post=$post[id]'> <b>$like</b> </a></span> ";
echo " <span style='float: right; position: relative; left: 8px;'><a class='like-in-red' href='like_list.php?id_post=$post[id]'><i class='fa fa-heart fa-fw'></i></a></span> ";
}
}
if (access('mini_chat_clear')){
echo " <span style='float: right; position: relative; left: 4px;'><a class='comm-in' href='edit_post.php?edit=$post[id]'><i class='fa fa-pencil fa-fw'></i></a></span> ";
}else{
if (isset($user) && $post['id_user']==$user['id'] && $post['time']>time()-280){
echo " <span style='float: right; position: relative; left: 4px;'><a class='comm-in' href='edit_post.php?edit=$post[id]'><i class='fa fa-pencil fa-fw'></i></a></span> ";
} }
if (isset($user) && ($user['level'] > $ank['level'] || $user['level'] != 0 && $user['id'] == $ank['id']) && access('mini_chat_clear')) {
echo " <span style='float: right;'><a class='comm-in' href='ban.php?id=$post[id_user]'><i class='fa fa-ban fa-fw'></i></a> ";
echo " <a class='comm-in' href='delete.php?id=$post[id]'><i class='fa fa-trash fa-fw'></i></a></span> ";
}
}
echo "</div>";}}
if ($k_page > 1) {
echo "<div class='list-group-item'>";
str('index.php?', $k_page, $page);
echo "</div>";
}
// Форма очистки комментов
include 'inc/admin_form.php';
require_once H . 'sys/inc/tfoot.php';