Файл: _modules/chat/index.php
Строк: 116
<?php
# mark core v1.0
# author Drk in
# date 24.10.19
# core
require_once ( $_SERVER['DOCUMENT_ROOT']."/_core/system.php" );
# user
system::access(true);
# meta
$title = 'Чат :: '.domain;
# get
$s = isset( $_GET['s'] ) ? system::abs($_GET['s']): 0; # answer
$d = isset( $_GET['d'] ) ? system::abs($_GET['d']): 0; # delete
$c = isset( $_GET['c'] ) ? system::abs($_GET['c']): 0; # clear
if ($s > 0 AND $user['id'] == $s)system::header('?', 'Ошибка, ответ не возможен');
if ($s > 0 AND cache_user::ch($s) == false)system::header('?', 'Ошибка, ответ не возможен');
$adm = ($user['admin'] == 1 ? true:false).($user['admin'] == 2 ? true:false);
# post
if (isset($_POST['CFMS'])):
$mess = system::check($_POST['mess']);
$CK = system::check($_POST['CK']);
$antiflood = DB :: $dbh -> querySingle("SELECT count(id) FROM chat WHERE user = ? AND time > ?;", array($user['id'],time()-10));
if (system::utf_strlen($mess) >= 2 && system::utf_strlen($mess) < 321):
if ($user['admin'] == 1 || $user['admin'] == 2 || $user['admin'] == 3 || $user['exp'] >= $config['chat_exp']):
if (empty($antiflood)):
if ($CK == $user['CK']):
if ($s > 0):
if (cache_user::ch($s) == true):
if ($user['id'] != $s):
DB :: $dbh -> query("INSERT INTO chat (user,mess,time,data) VALUES (?, ?, ?, ?);",array($user['id'],$mess,time(),$s));
$id_db = DB :: $dbh -> lastInsertId();
cache_chat::save($id_db);
# send mail
send::mail($s,'У вас новый ответ в [sys=/chat]чате[/sys] от сталкера, '.system::check($user['login']).'!');
# error answer
else: system::header('?', 'Ошибка, ответ не возможен'); endif;
else: system::header('?', 'Ошибка, ответ не возможен'); endif;
else:
DB :: $dbh -> query("INSERT INTO chat (user,mess,time) VALUES (?, ?, ?);",array($user['id'],$mess,time()));
$id_db = DB :: $dbh -> lastInsertId();
cache_chat::save($id_db);
endif;
system::header('?');
# error
else: system::header('?', 'Ошибка, возможно вам подкинули эту ссылку'); endif;
else: system::header('?', 'Не так быстро, подожди не много'); endif;
else: system::header('?', 'Сначала заработай '.$config['chat_exp'].' опыта, чтобы общаться тут'); endif;
else: system::header('?', 'Cообщение может быть от 2 до 320 символов'); endif;
endif;
# GET delete id
if ($d > 0):
$CK = system::check($_GET['CK']);
if ($adm == true):
if (cache_chat::ch($d) == true):
if ($CK == $user['CK']):
$d_chat = cache_chat::get($d);
# admin_log
send::admin_log($user['id'],'Удалил сообщение в чате - '.$d_chat['mess'],'1');
DB :: $dbh -> query("DELETE FROM chat WHERE id = ? LIMIT 1;", array($d));
@unlink(cache."_chat/{$d}.data");
system::header('?','Успешно',1);
# error
else: system::header('?', 'Ошибка, возможно вам подкинули эту ссылку'); endif;
else: system::header('?', 'Ошибка, ID не существует'); endif;
else: system::header('?', 'Ошибка, возможно вам подкинули эту ссылку'); endif;
endif;
# GET clear chat
if ($c == 1):
$CK = system::check($_GET['CK']);
if ($user['admin'] == 1):
if ($CK == $user['CK']):
DB :: $dbh -> query("TRUNCATE chat");
foreach (glob(cache.'_chat/*') as $file):
@unlink($file);
endforeach;
$mess = 'Произведена полная очистка чата';
DB :: $dbh -> query("INSERT INTO chat (user,mess,time) VALUES (?, ?, ?);", array(0,$mess,time()));
$id_db = DB :: $dbh -> lastInsertId();
cache_chat::save($id_db);
send::admin_log($user['id'],'Очистил все сообщение в чате','1');
system::header('?','Успешно',1);
# error
else: system::header('?', 'Ошибка, возможно вам подкинули эту ссылку'); endif;
else: system::header('?', 'Ошибка, возможно вам подкинули эту ссылку'); endif;
endif;
# head
require_once ( head );
echo '
<script language="javascript" type="text/javascript" src="'.js.'emoji.js"></script>
'.system::dis().'
<div class="dialog">
<h1 class="human">Вы</h1><form method="post">
<input type="hidden" name="CK" value="'.$user['CK'].'">
'.($s != 0 ? '<span style="color:#ffa200">Ответ для " '.user::chat($s).' "</span>
':'Введите сообщение').' <small>[Мин.:2/Макс.:320]</small>:<br>
<textarea name="mess" id="em" placeholder="Введите текст..." style="width: 96%;"></textarea>
<input type="submit" name="CFMS" value="Отправить сообщение">
<a onclick="emoji();"><img src="'.ico.'emoji/1.png" width="20" height="20"></a>
<a href="" class ="pull-right"><img src="'.ico.'update.png"></a>
</form></div><div id="emoji" style="display: none;">
<div class="dialog">'; system::emoji(null,1); echo '</div></div>';
$cn = DB :: $dbh -> querySingle("SELECT count(id) FROM chat");
if ($cn == 0)echo '<div class="dialog"><h1 class="pda">КПК</h1><p>› Cписок сообщений пуст<br></p></div>';
$page = new page($cn);
$limit = $cn > $page -> elements ? $page -> limit : null;
$query = DB :: $dbh -> query("SELECT id FROM chat ORDER BY time DESC {$limit}");
while ($act = $query -> fetch()):
$act = cache_chat::get($act['id']);
$data = cache_user::get($act['user']);
$color = ($data['id'] == 0 ? '#ffffff':($data['admin'] == 0 ? '#747987':null).($data['admin'] == 1 ? 'red':null).($data['admin'] == 2 ? 'green':null).($data['admin'] == 3 ? '#d25518':null));
echo '
<div class="dialog">
<div style="padding-right: 7px;float: left;margin-top: 5px;">
'.user::min_ava($data['ava']).'
</div><div style="overflow: hidden;">
<h1 class="chat">'.user::chat($act['user']).''.($act['data'] > 0 ? ' в ответ '.user::chat($act['data']).'':null) .'
'.($user['id'] != $act['user'] && $act['user'] > 0 ? '<a href="/spam/chat/id/'.$act['id'].'" style="float: right;margin-top: 2px;"><img width="16px" src="'.ico.'spam_red.png"></a>':null).'</h1></div>
<div style="padding-top: 34px;text-align: left;">
<div style="color: #747987;margin: 2px 3px;word-wrap: break-word;">› <font color="'.$color.'">'.system::text($act['mess']).'</font></div> </div>
<div style="padding-top: 4px;text-align: left;">
<div class ="small" style="margin: 2px 3px;word-wrap: break-word;">› '.system::time($act['time']).'</div>
</div>
<div style="padding-top: 10px;">
'.($act['user'] > 0 && $user['id'] != $act['user'] ? '<a href="?s='.$act['user'].'">Ответить</a>':null).'
'.($adm == true ? '<span style="float: right;'.($act['user'] > 0 && $user['id'] != $act['user'] ? null:'margin-top: -13px;').'"><a href="?d='.$act['id'].'&CK='.$user['CK'].'">Удалить</a></span>':null).'
</div></div>
';
endwhile;
$page -> get('?');
echo '
'.($user['admin'] == 1 ? '
<div class="fights-link" style="margin: 5px"><a href="?c=1&CK='.$user['CK'].'">Очистить чат</a></div>
':null).'
<div class="line"></div>';
# foot
require_once ( foot );
?>