Files
hustoj/web/template/bshark/mail.php

252 lines
13 KiB
PHP

<?php
$user_id = $_SESSION[$OJ_NAME.'_'.'user_id'];
$sql = 'SELECT * FROM `mail` WHERE `from_user`=? OR `to_user`=? ORDER BY unix_timestamp(in_date) DESC';
$chats = pdo_query($sql, $user_id, $user_id);
$friend="请选择一个人聊天";
if ($_GET["friend"]) {
$friend = $_GET['friend'];
$is_friend = count(pdo_query('SELECT * FROM `users` WHERE `user_id`=?',$friend))>0?1:0;
if ($is_friend) $friend = pdo_query('SELECT * FROM `users` WHERE `user_id`=?',$friend)[0]['user_id'];
}
?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title><?php echo $MSG_MAIL;?> - <?php echo $OJ_NAME; ?></title>
<?php require("./template/bshark/header-files.php");?>
<style type="text/css">
.item-right {
background: #12B7F5;
margin-right: 10px;
width:200px;
float: right;
color: #fff;
border-radius: 5px;
}
.item-left {
background: #E5E5E5;
margin-left: 10px;
width:200px;
float: left;
color: #000;
border-radius: 5px;
}
.userlist {
list-style-type: none;
margin: 0;
padding: 0;
width: 100%;
background-color: #fcfcfc;
}
.userlist li a {
display: block;
color: #000;
padding: 8px 16px;
text-decoration: none;
}
.userlist li a:hover {
background-color: #f1f1f1;
color: #000;
}
.active {
background-color: #f1f1f1;
color: #000;
}
.info-tip{
background:rgba(250,60,0,1);
position:absolute;
width:10px;
height:10px;
top:0;
right:0;
-webkit-border-radius: 50%;
-moz-border-radius: 50%;
border-radius:50%;
}
.w-e-text-container{
height: 160px !important;
opacity: 1
}
a {
color: black;
}
a:hover {
color: #121212;
}
</style>
</head>
<body>
<?php require("./template/bshark/nav.php");?>
<div class="ui container bsharkMain">
<div class="ui stackable grid">
<div class="eleven wide column">
<div class="card">
<div class="card-body" style="padding: 0">
<div>
<?php
if ($_POST["content"]) {
$from_user = $user_id;
$to_user = $_POST["friend"];
$content = $_POST["content"];
$content = str_replace("<p>","",$content);
$content = str_replace("</p>","",$content);
$title = '无标题!';
$in_date = date('Y-m-d H:i:s');
$new_mail = 1;
$reply = 0;
$defunct = 'N';
pdo_query('INSERT INTO `mail`(`to_user`, `from_user`, `title`, `content`, `new_mail`, `reply`, `in_date`, `defunct`) VALUES (?,?,?,?,?,?,?,?)',$to_user,$from_user,$title,$content,$new_mail,$reply,$in_date,$defunct);
$protocol = ((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') || $_SERVER['SERVER_PORT'] == 443) ?"https://": "http://";
$url = $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
header("Location:".$url);
}
?>
<div style="width:100%;line-height:center;height:36px;background-color:#2185d0;display:inline-block"><p style="color:#fff;font-size:20px;margin: 0;line-height: 36px;" align=center><span><?php
if ($friend) echo $friend;
else echo "暂无联系人";
?></span></p></div>
<div style="width:100%;height:500px;">
<div style="width:36%;border:1px solid #aaa;float: left;height: 100%;">
<ul class="userlist" style="height:50px;background-color:#fff">
<li>
<a>
<form>
<div class="ui left icon mini input">
<input type="text" name="friend" placeholder="<?php echo "输入" . $MSG_USER_ID . "开始聊天";?>">
<i class="user icon"></i>
</div>
</form>
</a>
</li>
</ul>
<ul class="userlist" style="overflow:auto;height:450px;">
<?php
$kkk = Array();
foreach ($chats as $row) {
?>
<li><?php
if ($row['from_user']==$user_id) $this_f = $row['to_user'];
else $this_f = $row['from_user'];
if ($kkk[strtolower($this_f)]=='666') continue;
else $kkk[strtolower($this_f)]='666';
?>
<a href="?friend=<?php echo $this_f;?>" class="<?php if ($this_f==$friend) echo 'active';?>"><div style="position:relative;width:42px;height:42px;display:inline;"><img src="<?php $logopng = 'http://q.qlogo.cn/headimg_dl?dst_uin=1440169768&spec=160';echo $logopng;?>" width=42 height=42 style="border:1px solid #222;display:inline;border-radius:50%;float:left;">
<?php
if (count(pdo_query('select * from `mail` where `from_user`=? and `to_user`=? and `new_mail`=1',$this_f, $user_id))>0) {?>
<span class="info-tip"></span><?php
}?>
</div><?php
echo '<div style="margin-left:55px"><b>'.$this_f.'</b><span style="float:right">'.''.'</span><br />';
$this_info=pdo_query('SELECT * FROM `mail` WHERE (`from_user`=? AND `to_user`=?) OR (`to_user`=? AND `from_user`=?) ORDER BY unix_timestamp(in_date) DESC LIMIT 1',$user_id,$this_f,$user_id,$this_f)[0];
$this_info['content'] =preg_replace('/\<img[\s\S]*\>/i','[图片]',$this_info['content']);
$this_info['content'] =preg_replace('/\<pre[\s\S]*\>[\s\S]*\<\/pre\>/i','[代码]',$this_info['content']);
$this_info['content'] =preg_replace('/\<a[\s\S]*\>[\s\S]*\<\/a\>/i','[链接]',$this_info['content']);
$this_info['content'] =preg_replace('/\<table[\s\S]*\>[\s\S]*\<\/table\>/i','[表格]',$this_info['content']);
$this_info['content'] = strip_tags($this_info['content']);
echo substr($this_info['content'],0,18).'...</div>';
?></a>
</li>
<?php
}
?>
</ul>
</div>
<div style="width:64%;border:1px solid #ccc;position:relative;float:left;height: 100%;">
<div style="width:98%;height:290px;overflow:auto" id='infos'>
<?php
if ($friend && $is_friend) {
pdo_query('UPDATE `mail` SET `new_mail`=0 WHERE `from_user`=? AND `to_user`=?',$friend,$user_id);
$chats_i = pdo_query('select * from `mail` where (`to_user`=? and `from_user`=?) or (`from_user`=? and `to_user`=?) order by unix_timestamp(`in_date`)',$user_id,$friend,$user_id,$friend);
foreach ($chats_i as $chat_id=>$chat_r) {
if ($chat_r['from_user']==$user_id) {
$say = 1;
$this_u = $user_id;
}
else {
$say = 0;
$this_u=$friend;
}
$logopng = 'http://q.qlogo.cn/headimg_dl?dst_uin=1440169768&spec=160';
//if ($chat_id != 0 && strtotime($chat_r['in_date'])-strtotime($chats_i[$chat_id-1]['in_date'])>30*60) {
?>
<span style="display:block;text-align:center"><?php echo $chat_r['in_date'];?></span>
<?php // } ?><!--br-->
<div style="width:100%;float:none;display:block">
<a href="userinfo.php?user=<?php echo $this_u;?>"><img src="<?php echo $logopng;?>" width=32 height=32 style="border:1px solid #000;border-radius:50%;float:<?php if ($say==0) echo 'left';else echo 'right';?>"></a>
<div class="item-<?php if ($say==0) echo 'left';else echo 'right';?>"><p style="margin:6px"><?php echo $chat_r['content'];?></p></div>
</div>
<div style="clear:both;"></div>
<?php
}
}
else {
echo "<h2><b>暂无联系人或联系人不存在</b></h2>从列表中选择联系人,或者输入用户名后按回车直接聊天";
}
?>
</div>
<div style="bottom:0px;right:0;position:absolute;width:100%;height:190px">
<?php if ($friend && $is_friend) {
?><form action="" method="post" style="width:100%"><div id="editor" style="width:100%;height:100%;position:absolute;width:auto;right:0;bottom:0;left:0"></div><button class="btn btn-info btn-sm" style="position:absolute;width:auto;right:10px;bottom:10px" onclick='aa.value=editor.txt.html();' type=submit>发送</button>
<input id="aa" name="content" type=hidden><input name="friend" type=hidden value="<?php echo $friend;?>"></form><?php
}
?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<?php require("./template/bshark/footer.php");?>
<?php require("./template/bshark/footer-files.php");?>
<script src="include/vditor-adapter.js"></script>
<script type="text/javascript">
var editor = {
txt: {
html: function () {
return $("#aa").val();
}
}
};
HustOJVditor.createRichTextEditor({
container: '#editor',
hiddenField: '#aa',
mode: 'wysiwyg',
minHeight: 180,
toolbar: [
'bold',
'italic',
'strike',
'|',
'link',
'emoji',
'code',
'|',
'undo',
'redo',
'|',
'fullscreen'
]
}).then(function (instance) {
editor = instance;
}).catch(function (error) {
console.error('Failed to initialize Vditor mail editor.', error);
});
</script>
<script type="text/javascript">
var div = document.getElementById('infos');
div.scrollTop = div.scrollHeight;
</script>
</body>
</html>