-
Notifications
You must be signed in to change notification settings - Fork 57
/
Copy pathmessages.php
executable file
·122 lines (111 loc) · 3.5 KB
/
messages.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<?php
define('CURSCRIPT', 'messages');
require './include/common.inc.php';
define('LOAD_CORE_ONLY', TRUE);
require_once './include/user.func.php';
require_once './include/messages.func.php';
$udata = udata_check();
$username = $udata['username'];
$message_rec_cost = 100;//恢复邮件价格
if(defined('MOD_CARDBASE')) {
eval(import_module('cardbase'));
// $result = $db->query("SELECT cards FROM {$gtablepre}users WHERE username='$username'");
// $udata['cards'] = $db->fetch_array($result)['cards'];
}
if(!isset($mode)){
$mode = 'show';
}
$messages = init_messages($mode);
$editflag = 0;
$info = array();
if($mode == 'del') {//删除
$dellist = array();
foreach(array_keys($messages) as $mi){
if(!empty(${'sl'.$mi})) $dellist[] = $mi;
}
if(!empty($dellist)) $editflag = 1;
}elseif($mode == 'check') {//查看并收取附件
$checklist = array();
foreach(array_keys($messages) as $mi){
if(!empty(${'sl'.$mi}) && !$messages[$mi]['checked'] && !empty($messages[$mi]['enclosure'])) $checklist[] = $mi;
}
if(!empty($checklist)) $editflag = 1;
}elseif($mode == 'recover') {//恢复删除邮件
$reclist = array();
foreach(array_keys($messages) as $mi){
if(!empty(${'sl'.$mi})) $reclist[] = $mi;
}
if(!empty($reclist)) {
$cost = $message_rec_cost * sizeof($reclist);
if($udata['gold'] < $cost) {
$info[] = '切糕不足,无法恢复邮件!';
}else {
\cardbase\get_qiegao(-$cost, $udata);
$info[] = '支付了'.$cost.'切糕';
$editflag = 1;
}
}
}
if($editflag) {
if(!empty($checklist)){
message_check($checklist, $messages);
$checkc = implode(',',$checklist);
if(count($checklist) > 1) $info[] = '已查收'.count($checklist).'条消息!';
else $info[] = '消息已查收!';
$db->query("UPDATE {$gtablepre}messages SET checked='1' WHERE mid IN ($checkc) AND receiver='$username'");
}
if(!empty($dellist)){
$ins_arr = array();
foreach($dellist as $di){
$tmp = $messages[$di];
unset($tmp['mid']);
$ins_arr[] = $tmp;
}
if(!empty($ins_arr)) $db->array_insert("{$gtablepre}del_messages", $ins_arr);
$delc = implode(',',$dellist);
$db->query("DELETE FROM {$gtablepre}messages WHERE mid IN ($delc) AND receiver='$username'");
$dnum = $db->affected_rows();
$info[] = '已删除'.$dnum.'条消息!';
}
if(!empty($reclist)){
$ins_arr = array();
foreach($reclist as $ri){
$tmp = $messages[$ri];
unset($tmp['mid']);
$ins_arr[] = $tmp;
}
if(!empty($ins_arr)) $db->array_insert("{$gtablepre}messages", $ins_arr);
$recc = implode(',',$reclist);
$db->query("DELETE FROM {$gtablepre}del_messages WHERE mid IN ($recc) AND receiver='$username'");
$rnum = $db->affected_rows();
$info[] = '已恢复'.$rnum.'条消息!';
}
//重载一次信息
$messages = init_messages($mode);
}elseif(strpos($mode,'show') !== 0 && empty($info)){
$info[] = '没有做任何更改';
}
//全部设为已读
if('show' == $mode){
foreach($messages as $mv){
if(!$mv['rd']) {
$db->query("UPDATE {$gtablepre}messages SET rd='1' WHERE receiver='$username' AND rd='0'");
break;
}
}
}
$messages = message_disp($messages);
if('show'==$mode){//生成整个页面,不用ajax
include template('message_page');
}else{//有指令,需要ajax
$gamedata=Array();
$gamedata['innerHTML']['info'] = implode('<br>', $info);
if(isset($error)) $gamedata['innerHTML']['error'] = $error;
include template('messages');
$gamedata['innerHTML']['messages'] = ob_get_contents();
$jgamedata = gencode($gamedata);
ob_clean();
echo $jgamedata;
}
/* End of file messages.php */
/* Location: /messages.php */