Changeset 331 for message.php
- Timestamp:
- 12/28/10 12:24:38 (1 year ago)
- Files:
-
- message.php (modified) (20 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
message.php
r317 r331 26 26 27 27 //here we take first message of messages history 28 $sql = 'SELECT p.id, p.receiver, p.added, p.msg, p.subject, u.name, u.uid 28 $sql = 'SELECT p.id, p.receiver, p.added, p.msg, p.subject, u.name, u.uid, u.class 29 29 FROM ' . PRIVATE_MESSAGES_TABLE . ' p, ' . USERS_TABLE . ' u 30 30 WHERE p.id = ' . $message_id . ' AND u.uid = p.sender'; … … 37 37 } 38 38 39 $sql = 'SELECT p.id, p.receiver, p.added, p.msg, p.subject, u.name, u.uid 39 $sql = 'SELECT p.id, p.receiver, p.added, p.msg, p.subject, u.name, u.uid, u.class 40 40 FROM ' . PRIVATE_MESSAGES_TABLE . ' p, ' . USERS_TABLE . ' u 41 41 WHERE p.reply_to = ' . $message_id . ' AND u.uid = p.sender ORDER BY p.added ASC'; … … 52 52 krsort($reply_msg); 53 53 54 if ( !sizeof($reply_msg) ) { 55 return false; 56 } 57 54 58 return array ( $reply_msg, $subject, $origmsg ); 55 59 } … … 63 67 64 68 $pm_id = request_var('id', 0); 65 if ( !$pm_id ) {69 if ( !$pm_id ) { 66 70 trigger_error( sprintf($lang['invalid_id'], $id) ); 67 } 68 69 $sql = 'SELECT p.*, u.name FROM ' . PRIVATE_MESSAGES_TABLE . ' p, ' . USERS_TABLE . ' u 71 } 72 73 $sql = 'SELECT p.*, u.name, u.uid, u.class 74 FROM ' . PRIVATE_MESSAGES_TABLE . ' p, ' . USERS_TABLE . ' u 70 75 WHERE p.id = ' . $pm_id . ' AND p.receiver = ' . $userdata['uid'] . ' AND p.sender = u.uid'; 71 $result = $db->sql_query($sql); 72 73 if ( !$message = $db->sql_fetchrow($result) ) { 74 $sql = 'SELECT p.*, u.name FROM ' . PRIVATE_MESSAGES_TABLE . ' p, ' . USERS_TABLE . ' u 76 $result = $db->sql_query($sql); 77 78 if ( !$message = $db->sql_fetchrow($result) ) { 79 $sql = 'SELECT p.*, u.name, u.uid, u.class 80 FROM ' . PRIVATE_MESSAGES_TABLE . ' p, ' . USERS_TABLE . ' u 75 81 WHERE p.id = ' . $pm_id . ' AND p.sender = ' . $userdata['uid'] . ' AND p.receiver = u.uid AND p.saved = 1'; 76 $result = $db->sql_query($sql);77 if ( !$message = $db->sql_fetchrow($result) ) {78 trigger_error( sprintf($lang['invalid_id'], $pm_id));79 } 80 }81 82 $bb_code = new bbcode();83 84 if ( $message['sender'] == $userdata['uid'] ) {85 $sender = '<a href="' . append_sid('userdetails.php?id=' . $message['receiver']) . '">' . $message['name'] . '</a>';86 $id = $message['sender'];87 $sql = 'SELECT id FROM ' . FRIENDS_TABLE . ' WHERE userid = ' . $userdata['uid'] . ' AND friendid = ' . $id;88 $result = $db->sql_query($sql);89 if ( $db->sql_fetchrow($result) ) {90 $sender .= ' <a href="' . append_sid('my.php?type=friends&action=del_friend&fr_type=1&targetid=' . $id) . '">[' . $lang['remove_from_friends_list'] . ']</a>';91 }92 else {93 $sender .= ' <a href="' . append_sid('my.php?type=friends&action=add_friend&fr_type=1&targetid=' . $id) . '">[' . $lang['add_to_friends_list'] . ']</a>';94 }95 $reply = '';96 $from = $lang['message_to'];97 }98 else {82 $result = $db->sql_query($sql); 83 if ( !$message = $db->sql_fetchrow($result) ) { 84 trigger_error( sprintf($lang['invalid_id'], $pm_id)); 85 } 86 } 87 88 $bb_code = new bbcode(); 89 90 if ( $message['sender'] == $userdata['uid'] ) { 91 $sender = parse_username($message); 92 $id = $message['sender']; 93 $sql = 'SELECT id FROM ' . FRIENDS_TABLE . ' WHERE userid = ' . $userdata['uid'] . ' AND friendid = ' . $id; 94 $result = $db->sql_query($sql); 95 if ( $db->sql_fetchrow($result) ) { 96 $sender .= ' <a href="' . append_sid('my.php?type=friends&action=del_friend&fr_type=1&targetid=' . $id) . '">[' . $lang['remove_from_friends_list'] . ']</a>'; 97 } 98 else { 99 $sender .= ' <a href="' . append_sid('my.php?type=friends&action=add_friend&fr_type=1&targetid=' . $id) . '">[' . $lang['add_to_friends_list'] . ']</a>'; 100 } 101 $reply = ''; 102 $from = $lang['message_to']; 103 } 104 else { 99 105 $from = $lang['message_from']; 100 if ( !$message['sender']) {106 if ( $message['sender'] == ANONYMOUS ) { 101 107 $sender = $lang['system']; 102 $reply = '';103 }104 else {105 $sender = '<a href="' . append_sid('userdetails.php?id=' . $message['sender']) . '">' . $message['name'] . '</a>';106 $id = $message['sender'];107 $reply_to = ( $message['reply_to'] ? $message['reply_to'] : $pm_id );108 $sql = 'SELECT id FROM ' . FRIENDS_TABLE . ' WHERE userid = ' . $userdata['uid'] . ' AND friendid = ' . $id;109 $result = $db->sql_query($sql);110 if ( $db->sql_fetchrow($result) ) {108 $reply = ''; 109 } 110 else { 111 $sender = parse_username($message); 112 $id = $message['sender']; 113 $reply_to = ( $message['reply_to'] ? $message['reply_to'] : $pm_id ); 114 $sql = 'SELECT id FROM ' . FRIENDS_TABLE . ' WHERE userid = ' . $userdata['uid'] . ' AND friendid = ' . $id; 115 $result = $db->sql_query($sql); 116 if ( $db->sql_fetchrow($result) ) { 111 117 $sender .= ' <a href="' . append_sid('my.php?type=friends&action=del_friend&fr_type=1&targetid=' . $id) . '">[' . $lang['remove_from_friends_list'] . ']</a>'; 112 }113 elseif ( $userdata['uid'] != $message['sender'] ) {118 } 119 elseif ( $userdata['uid'] != $message['sender'] ) { 114 120 $sender .= ' <a href="' . append_sid('my.php?type=friends&action=add_friend&fr_type=1&targetid=' . $id) . '">[' . $lang['add_to_friends_list'] . ']</a>'; 115 }116 $reply = ' [ <a href="' . append_sid('message.php?action=send&receiver=' . $message['sender'] . '&replyto=' . $reply_to) . '">' . $lang['message_answer'] . '</a> ]';117 }118 }121 } 122 $reply = ' [ <a href="' . append_sid('message.php?action=send&receiver=' . $message['sender'] . '&replyto=' . $reply_to) . '">' . $lang['message_answer'] . '</a> ]'; 123 } 124 } 119 125 120 126 $bb_code->parse($message['msg']); 121 $body = $bb_code->get_html();122 $body = censor_text($body);123 124 $added = create_date($message['added']);125 if ( $userdata['class'] >= UC_MODERATOR &&$message['sender'] == $userdata['uid'] ) {126 $unread = ( $message['unread'] ? '<span style="color: #FF0000;"><b>(' . $lang['message_new'] . ')</b></span>' : '');127 }128 else {127 $body = $bb_code->get_html(); 128 $body = censor_text($body); 129 130 $added = create_date($message['added']); 131 if ( $message['sender'] == $userdata['uid'] ) { 132 $unread = ( $message['unread'] ? '<span style="color: #FF0000;"><b>(' . $lang['message_new'] . ')</b></span>' : '' ); 133 } 134 else { 129 135 $unread = ''; 130 }131 $subject = $message['subject'];132 133 if ( $message['unread'] ) {136 } 137 $subject = $message['subject']; 138 139 if ( $message['unread'] ) { 134 140 $sql = 'UPDATE ' . PRIVATE_MESSAGES_TABLE . ' SET unread = 0 WHERE id = ' . $pm_id . ' AND receiver=' . $userdata['uid'] . ' LIMIT 1'; 135 141 $db->sql_query($sql); 136 if ( $db->sql_affectedrows() && $message['location'] == PM_INBOX ) {142 if ( $db->sql_affectedrows() && $message['location'] == PM_INBOX ) { 137 143 $sql = 'UPDATE ' . USERS_TABLE . ' SET user_unread_pms = user_unread_pms - 1 WHERE uid = ' . $userdata['uid']; 138 $db->sql_query($sql);139 }140 }141 142 // Display message143 $template->assign_vars(array(144 $db->sql_query($sql); 145 } 146 } 147 148 // Display message 149 $template->assign_vars(array( 144 150 'U_DELETE' => append_sid('message.php?action=moveordel&id=' . $pm_id . '&delete=1'), 145 'U_FORWARD' => append_sid('message.php?action=forward&id=' . $pm_id),146 'SUBJECT' => $subject,147 'FROM' => $from,148 'SENDER' => $sender,149 'ADDED' => $added,150 'UNREAD' => $unread,151 'BODY' => $body,152 'PM_ID'=> $pm_id,153 'REPLY' => $reply151 'U_FORWARD' => append_sid('message.php?action=forward&id=' . $pm_id), 152 'SUBJECT' => $subject, 153 'FROM' => $from, 154 'SENDER' => $sender, 155 'ADDED' => $added, 156 'UNREAD' => $unread, 157 'BODY' => $body, 158 'PM_ID'=> $pm_id, 159 'REPLY' => $reply 154 160 )); 155 161 156 if ( list ( $msg_history_ary ) = return_messages_history($message['reply_to'], true) ) {157 $template->assign_block_vars('messages_history', array());162 if ( list ( $msg_history_ary ) = return_messages_history($message['reply_to'], true) ) { 163 $template->assign_block_vars('messages_history', array()); 158 164 foreach ( $msg_history_ary AS $msg_id => $ary ) { 159 165 $added = create_date($ary['added']); … … 161 167 $body = censor_text($ary['msg']); 162 168 $bb_code->parse($body); 163 $body = $bb_code->get_html(); 169 $body = $bb_code->get_html(); 170 171 $user_name = parse_username($ary); 164 172 165 173 $template->assign_block_vars('messages_history.messages_history_row', array( … … 167 175 'MESSAGE' => $body, 168 176 'ADDED' => $added, 169 'USERNAME' => ( $ary['uid'] == ANONYMOUS ? $lang['system'] : $ary['name'] )177 'USERNAME' => $user_name, 170 178 )); 171 179 } 172 }173 174 stdhead(sprintf($lang['message_pm_subject'], $subject));180 } 181 182 stdhead(sprintf($lang['message_pm_subject'], $subject)); 175 183 $template->set_filenames(array( 176 184 'body' => 'message_viewmessage_body.html' 177 185 )); 178 stdfoot();186 stdfoot(); 179 187 180 188 break; … … 196 204 //flood control 197 205 $sql = 'SELECT MAX(added) AS max_added FROM ' . PRIVATE_MESSAGES_TABLE . ' WHERE sender = ' . $userdata['uid']; 198 $result = $db->sql_query($sql);206 $result = $db->sql_query($sql); 199 207 $max_added = ( $flood_row = $db->sql_fetchrow($result) ) ? $flood_row['max_added'] : 0; 200 208 … … 202 210 trigger_error($lang['flood_error']); 203 211 } 204 }212 } 205 213 206 214 if ( isset($_POST['submit']) ) { 207 215 $origmsg = request_var('origmsg', 0); 208 $save = ( isset($_POST['save']) ? 1 : 0 );209 $delete = ( isset($_POST['delete']) ? 1 : 0 );210 $returnto = request_var('returnto', '');211 $msg = request_var('message', '');212 $subject = request_var('subject', '');216 $save = ( isset($_POST['save']) ? 1 : 0 ); 217 $delete = ( isset($_POST['delete']) ? 1 : 0 ); 218 $returnto = request_var('returnto', ''); 219 $msg = request_var('message', ''); 220 $subject = request_var('subject', ''); 213 221 if ( !$msg ) { 214 222 trigger_error($lang['post_something']); 215 }216 if ( !$subject ) {217 trigger_error($lang['please_enter_subject']);218 }223 } 224 if ( !$subject ) { 225 trigger_error($lang['please_enter_subject']); 226 } 219 227 220 228 $sql = 'SELECT email, acceptpms, notifs, parked, user_session_time, language, name, class FROM ' . USERS_TABLE . ' WHERE uid = ' . $receiver; 221 $result = $db->sql_query($sql);222 if ( !($user = $db->sql_fetchrow($result)) || !$receiver ) {229 $result = $db->sql_query($sql); 230 if ( !($user = $db->sql_fetchrow($result)) || !$receiver ) { 223 231 trigger_error(sprintf($lang['invalid_id'], $receiver)); 224 }232 } 225 233 //Make sure recipient wants this message 226 if ( $userdata['class'] < UC_MODERATOR ) {234 if ( $userdata['class'] < UC_MODERATOR ) { 227 235 if ( $user['acceptpms'] == 1 ) { 228 236 $sql = 'SELECT * FROM ' . FRIENDS_TABLE . ' WHERE userid = ' . $receiver . ' AND blockid = ' . $userdata['uid']; 229 $result = $db->sql_query($sql);237 $result = $db->sql_query($sql); 230 238 if ( $row = $db->sql_fetchrow($result) ) { 231 239 trigger_error($lang['you_in_block_list']); 232 }233 }240 } 241 } 234 242 elseif ( $user['acceptpms'] == 2 ) { 235 243 $sql = 'SELECT * FROM ' . FRIENDS_TABLE . ' WHERE userid = ' . $receiver . ' AND friendid=' . $userdata['uid']; 236 $result = $db->sql_query($sql);237 if ( !($row = $db->sql_fetchrow($result)) ) {238 trigger_error($lang['only_from_friends']);239 }240 }244 $result = $db->sql_query($sql); 245 if ( !($row = $db->sql_fetchrow($result)) ) { 246 trigger_error($lang['only_from_friends']); 247 } 248 } 241 249 elseif ( !$user['acceptpms'] ) { 242 250 trigger_error($lang['only_from_admins']); 243 }251 } 244 252 245 253 if ( $user['parked'] ) { 246 254 trigger_error($lang['this_account_parked']); 247 } 248 } 249 250 $pm_ary = array(); 251 252 $pm_ary[] = array( 255 } 256 } 257 258 $pm_ary = array(array( 253 259 'sender' => $userdata['uid'], 254 260 'sender_name' => $userdata['name'], … … 264 270 'language' => $user['language'], 265 271 'class' => $user['class'] 266 ) ;272 )); 267 273 268 274 send_pm($pm_ary); … … 282 288 elseif ( $arr['saved'] ) { 283 289 $sql = 'UPDATE ' . PRIVATE_MESSAGES_TABLE . ' SET location = 0 WHERE id = ' . $origmsg; 284 $db->sql_query($sql);285 }286 }287 }288 289 $returnto = ( $returnto ? $returnto : 'message.php' );290 $returnto = append_sid($returnto);290 $db->sql_query($sql); 291 } 292 } 293 } 294 295 $returnto = ( $returnto ? $returnto : 'message.php' ); 296 $returnto = append_sid($returnto); 291 297 292 298 meta_refresh(3, $returnto); 293 trigger_error($lang['sucefully_sended']);299 trigger_error($lang['sucefully_sended']); 294 300 } 295 301 else { 296 302 if ( $receiver == $userdata['uid'] && $userdata['class'] < UC_SYSOP ) { 297 303 trigger_error(sprintf($lang['invalid_id'], $receiver)); 298 }299 300 $sql = 'SELECT name FROM ' . USERS_TABLE . ' WHERE uid = ' . $receiver;304 } 305 306 $sql = 'SELECT name, uid, class FROM ' . USERS_TABLE . ' WHERE uid = ' . $receiver; 301 307 $result = $db->sql_query($sql); 302 308 if ( !($user = $db->sql_fetchrow($result)) || !$receiver ) { … … 318 324 $added = create_date($ary['added']); 319 325 $bb_code->parse($ary['msg']); 320 $msg = $bb_code->get_html();321 $msg = censor_text($msg);326 $msg = $bb_code->get_html(); 327 $msg = censor_text($msg); 322 328 323 329 $template->assign_block_vars('reply_to.reply_to_row', array( … … 333 339 334 340 $template->assign_vars(array( 335 'U_USERDETAILS_RECEIVER' => append_sid('userdetails.php?id=' . $receiver), 336 'S_FORM_ACTION' => append_sid('message.php'), 337 'RECEIVER_ID' => $receiver, 338 'REPLY_TO' => $reply_to, 339 'ORIGMSG' => $origmsg, 340 'RECEIVER_USERNAME' => $user['name'], 341 'SUBJECT' => $subject, 342 'DELETEPM_CHECKED' => ( $userdata['deletepms'] ? 'checked="checked"' : '' ), 343 'SAVEPM_CHECKED' => ( $userdata['savepms'] ? 'checked="checked"' :'' ), 344 345 'TEXTBBCODE' => $tpl 341 'S_FORM_ACTION' => append_sid('message.php'), 342 'RECEIVER_ID' => $receiver, 343 'REPLY_TO' => $reply_to, 344 'ORIGMSG' => $origmsg, 345 'RECEIVER_USERNAME' => parse_username($user), 346 'SUBJECT' => $subject, 347 'DELETEPM_CHECKED' => ( $userdata['deletepms'] ? 'checked="checked"' : '' ), 348 'SAVEPM_CHECKED' => ( $userdata['savepms'] ? 'checked="checked"' :'' ), 349 350 'TEXTBBCODE' => $tpl 346 351 )); 347 352 … … 377 382 if ( $delete ) { 378 383 do { 379 if ( ( $message['receiver'] == $userdata['uid'] && !$message['saved'] ) || ( $message['sender'] == $userdata['uid'] && $message['location'] == PM_DELETED ) ) {380 $sql = 'DELETE FROM ' . PRIVATE_MESSAGES_TABLE . ' WHERE id = ' . $message['id'];384 if ( ( $message['receiver'] == $userdata['uid'] && !$message['saved'] ) || ( $message['sender'] == $userdata['uid'] && $message['location'] == PM_DELETED ) ) { 385 $sql = 'DELETE FROM ' . PRIVATE_MESSAGES_TABLE . ' WHERE id = ' . $message['id']; 381 386 $db->sql_query($sql); 382 387 } 383 388 elseif ( $message['receiver'] == $userdata['uid'] && $message['saved'] ) { 384 $sql = 'UPDATE ' . PRIVATE_MESSAGES_TABLE . ' SET location = 0 WHERE id = ' . $message['id'];389 $sql = 'UPDATE ' . PRIVATE_MESSAGES_TABLE . ' SET location = 0 WHERE id = ' . $message['id']; 385 390 $db->sql_query($sql); 386 391 } 387 392 elseif ( $message['sender'] == $userdata['uid'] && $message['location'] != PM_DELETED ) { 388 $sql = 'UPDATE ' . PRIVATE_MESSAGES_TABLE . ' SET saved = 0 WHERE id = ' . $message['id'];393 $sql = 'UPDATE ' . PRIVATE_MESSAGES_TABLE . ' SET saved = 0 WHERE id = ' . $message['id']; 389 394 $db->sql_query($sql); 390 395 } … … 399 404 if ( $markread ) { 400 405 do { 401 if ( $message['receiver'] == $userdata['uid'] ) {402 $sql = 'UPDATE ' . PRIVATE_MESSAGES_TABLE . ' SET unread = 0 WHERE id = ' . $message['id'];403 $db->sql_query($sql);406 if ( $message['receiver'] == $userdata['uid'] ) { 407 $sql = 'UPDATE ' . PRIVATE_MESSAGES_TABLE . ' SET unread = 0 WHERE id = ' . $message['id']; 408 $db->sql_query($sql); 404 409 if ( $db->sql_affectedrows() && $message['unread'] && $message['location'] == PM_INBOX ) { 405 $sql = 'UPDATE ' . USERS_TABLE . ' SET user_unread_pms = user_unread_pms - 1 WHERE uid = ' . $userdata['uid'];410 $sql = 'UPDATE ' . USERS_TABLE . ' SET user_unread_pms = user_unread_pms - 1 WHERE uid = ' . $userdata['uid']; 406 411 $db->sql_query($sql); 407 412 } … … 423 428 } 424 429 425 //flood control430 //flood control 426 431 $sql = 'SELECT MAX(added) AS max_added FROM ' . PRIVATE_MESSAGES_TABLE . ' WHERE sender = ' . $userdata['uid']; 427 $result = $db->sql_query($sql);432 $result = $db->sql_query($sql); 428 433 $max_added = ( $flood_row = $db->sql_fetchrow($result) ) ? $flood_row['max_added'] : 0; 429 434 430 if ( intval($flood_row['max_added']) > 0 && (time() - intval($flood_row['max_added'])) < intval($config['flood_interval']) ) {431 trigger_error($lang['flood_error']);432 } 433 }435 if ( intval($flood_row['max_added']) > 0 && (time() - intval($flood_row['max_added'])) < intval($config['flood_interval']) ) { 436 trigger_error($lang['flood_error']); 437 } 438 } 434 439 435 440 if ( isset($_GET['id']) ) { … … 437 442 438 443 // Get the message 439 $sql = 'SELECT * FROM ' . PRIVATE_MESSAGES_TABLE . ' WHERE id=' . $pm_id . ' AND (receiver=' . $userdata['uid'] . ' OR sender=' . $userdata['uid'] . ') LIMIT 1'; 440 $result = $db->sql_query($sql); 441 if ( !($message = $db->sql_fetchrow($result)) ) { 444 $sql = 'SELECT * 445 FROM ' . PRIVATE_MESSAGES_TABLE . ' 446 WHERE id=' . $pm_id . ' AND (receiver=' . $userdata['uid'] . ' OR sender=' . $userdata['uid'] . ') LIMIT 1'; 447 $result = $db->sql_query($sql); 448 if ( !$message = $db->sql_fetchrow($result) ) { 442 449 trigger_error(sprintf($lang['invalid_id'], $pm_id) ); 443 } 444 445 // Prepare variables 446 $subject = 'Fwd: ' . $message['subject']; 447 $from = $message['sender']; 448 $orig = $message['receiver']; 449 450 $sql = 'SELECT name FROM ' . USERS_TABLE . ' WHERE uid = ' . $from; 451 $result = $db->sql_query($sql); 452 if ( !($orig2 = $db->sql_fetchrow($result)) ) { 453 trigger_error(sprintf($lang['invalid_id'], $pm_id) ); 454 } 455 456 if ( !$from ) { 457 $orig_name = $lang['system']; 458 $from_name = '<a href="' . append_sid('userdetails.php?id=' . $userdata['uid']) . '">' . $userdata['name'] . '</a>'; 459 } 460 else { 461 $from_name = '<a href="' . append_sid('userdetails.php?id=' . $userdata['uid']) . '">' . $userdata['name'] . '</a>'; 462 $orig_name = '<a href="' . append_sid('userdetails.php?id=' . $from) . '">' . $orig2['name'] . '</a>'; 463 } 464 465 $bb_code = new bbcode(); 466 467 $body = sprintf($lang['pm_message_separator'], $orig2['name'], $message['msg']); 450 } 451 452 // Prepare variables 453 $subject = 'Fwd: ' . $message['subject']; 454 $from = $message['sender']; 455 $orig = $message['receiver']; 456 457 $sql = 'SELECT name, uid, class 458 FROM ' . USERS_TABLE . ' 459 WHERE uid = ' . $from; 460 $result = $db->sql_query($sql); 461 if ( !$orig2 = $db->sql_fetchrow($result) ) { 462 trigger_error(sprintf($lang['invalid_id'], $pm_id) ); 463 } 464 465 $from_name = parse_username($userdata); 466 $orig_name = parse_username($orig2); 467 468 $bb_code = new bbcode(); 469 470 $body = sprintf($lang['pm_message_separator'], $orig2['name'], $message['msg']); 468 471 $bb_code->parse($body); 469 472 $body = $bb_code->get_html(); 470 473 $body = censor_text($body); 471 474 472 $template->assign_vars(array(473 'S_FORM_ACTION' => append_sid('message.php'),474 'SUBJECT' => $subject,475 'PM_ID' => $pm_id,476 'FROM_NAME' => $from_name,477 'BODY' => $body,478 'SAVE_PM_CHECKED' => ( $userdata['savepms'] ? 'checked="checked"' : '' ),479 'ORIG_NAME' => $orig_name475 $template->assign_vars(array( 476 'S_FORM_ACTION' => append_sid('message.php'), 477 'SUBJECT' => $subject, 478 'PM_ID' => $pm_id, 479 'FROM_NAME' => $from_name, 480 'BODY' => $body, 481 'SAVE_PM_CHECKED' => ( $userdata['savepms'] ? 'checked="checked"' : '' ), 482 'ORIG_NAME' => $orig_name 480 483 )); 481 484 482 stdhead($subject);485 stdhead($subject); 483 486 $template->set_filenames(array( 484 'body' => 'message_forward_message.html'487 'body' => 'message_forward_message.html' 485 488 )); 486 stdfoot();487 }488 else {489 stdfoot(); 490 } 491 else { 489 492 // Forward the message 490 $pm_id = request_var('id', 0);491 $subject = request_var('subject', '');492 $username = request_var('to', '');493 $body = request_var('msg', '');494 $save = isset($_POST['save']);493 $pm_id = request_var('id', 0); 494 $subject = request_var('subject', ''); 495 $username = request_var('to', ''); 496 $body = request_var('msg', ''); 497 $save = isset($_POST['save']); 495 498 496 499 // Get the message 497 $sql = 'SELECT * FROM ' . PRIVATE_MESSAGES_TABLE . ' WHERE id = ' . $pm_id . ' AND (receiver=' . $userdata['uid'] . ' OR sender=' . $userdata['uid'] . ') LIMIT 1';498 $result = $db->sql_query($sql);499 500 if ( !($message = $db->sql_fetchrow($result)) ) {501 trigger_error(sprintf($lang['invalid_id'], $pm_id) );502 }500 $sql = 'SELECT * FROM ' . PRIVATE_MESSAGES_TABLE . ' WHERE id = ' . $pm_id . ' AND (receiver=' . $userdata['uid'] . ' OR sender=' . $userdata['uid'] . ') LIMIT 1'; 501 $result = $db->sql_query($sql); 502 503 if ( !($message = $db->sql_fetchrow($result)) ) { 504 trigger_error(sprintf($lang['invalid_id'], $pm_id) ); 505 } 503 506 504 507 // Try finding a user with specified name 505 $sql = 'SELECT uid, email, language, name, class, notifs FROM ' . USERS_TABLE . ' WHERE LOWER(name) = ' . "'" . $db->sql_escape(utf_strtolower($username)) . "'" . ' AND uid != ' . ANONYMOUS . ' LIMIT 1';506 $result = $db->sql_query($sql);507 if ( !($to_arr = $db->sql_fetchrow($result)) ) {508 $sql = 'SELECT uid, email, language, name, class, notifs FROM ' . USERS_TABLE . ' WHERE LOWER(name) = ' . "'" . $db->sql_escape(utf_strtolower($username)) . "'" . ' AND uid != ' . ANONYMOUS . ' LIMIT 1'; 509 $result = $db->sql_query($sql); 510 if ( !($to_arr = $db->sql_fetchrow($result)) ) { 508 511 trigger_error($lang['no_user_with_that_username']); 509 }510 $to = $to_arr['uid'];511 $to_email = $to_arr['email'];512 $to_language = $to_arr['language'];513 $to_username = $to_arr['name'];514 if (!check_language($to_language)) {512 } 513 $to = $to_arr['uid']; 514 $to_email = $to_arr['email']; 515 $to_language = $to_arr['language']; 516 $to_username = $to_arr['name']; 517 if (!check_language($to_language)) { 515 518 $to_language = $config['default_lang']; 516 }519 } 517 520 518 521 // Get Orignal sender's username 519 if ( !($message['sender']) ) {522 if ( !($message['sender']) ) { 520 523 $from_username = $lang['system']; 521 }522 else {524 } 525 else { 523 526 $sql = 'SELECT name, acceptpms, parked FROM ' . USERS_TABLE . ' WHERE uid=' . $message['sender']; 524 $result = $db->sql_query($sql);525 $from = $db->sql_fetchrow($result);526 $from_username = $from['name'];527 }528 $body .= sprintf($lang['pm_message_separator'], $from_username, $message['msg']);527 $result = $db->sql_query($sql); 528 $from = $db->sql_fetchrow($result); 529 $from_username = $from['name']; 530 } 531 $body .= sprintf($lang['pm_message_separator'], $from_username, $message['msg']); 529 532 530 533 //Make sure recipient wants this message 531 if ( $userdata['class'] < UC_MODERATOR ) {534 if ( $userdata['class'] < UC_MODERATOR ) { 532 535 if ( $from['acceptpms'] == 1 ) { 533 536 $sql = 'SELECT * FROM ' . FRIENDS_TABLE . ' WHERE userid=' . $to . ' AND blockid=' . $userdata['uid']; 534 $result = $db->sql_query($sql);535 if ( $row = $db->sql_fetchrow($result) ) {536 trigger_error($lang['you_in_block_list']);537 }538 }539 elseif ( $from['acceptpms'] == 2 ) {537 $result = $db->sql_query($sql); 538 if ( $row = $db->sql_fetchrow($result) ) { 539 trigger_error($lang['you_in_block_list']); 540 } 541 } 542 elseif ( $from['acceptpms'] == 2 ) { 540 543 $sql = 'SELECT * FROM ' . FRIENDS_TABLE . ' WHERE userid=' . $to . ' AND friendid=' . $userdata['uid']; 541 $result = $db->sql_query($sql);542 if ( !($row = $db->sql_fetchrow($result)) ) {544 $result = $db->sql_query($sql); 545 if ( !($row = $db->sql_fetchrow($result)) ) { 543 546 trigger_error($lang['only_from_friends']); 544 }545 }547 } 548 } 546 549 elseif ( !$from['acceptpms'] ) { 547 trigger_error($lang['only_from_admins']); 548 } 549 elseif ( $from['parked'] ) { 550 trigger_error($lang['this_account_parked']); 551 } 552 } 553 554 $pm_ary = array(); 555 556 $pm_ary[] = array( 550 trigger_error($lang['only_from_admins']); 551 } 552 elseif ( $from['parked'] ) { 553 trigger_error($lang['this_account_parked']); 554 } 555 } 556 557 $pm_ary = array(array( 557 558 'sender' => $userdata['uid'], 558 559 'sender_name' => $userdata['name'], … … 567 568 'language' => $to_arr['language'], 568 569 'class' => $to_arr['class'] 569 ) ;570 )); 570 571 571 572 send_pm($pm_ary); 572 573 573 meta_refresh(3, append_sid($root_path . 'message.php'));574 trigger_error($lang['sucefully_sended']);575 }574 meta_refresh(3, append_sid($root_path . 'message.php')); 575 trigger_error($lang['sucefully_sended']); 576 } 576 577 break; 577 578 … … 581 582 // Get Mailbox Number 582 583 $mailbox = request_var('box', PM_INBOX); 583 $mailbox_name = ( $mailbox == PM_INBOX? $lang['inbox'] : $lang['sentbox'] );584 584 $warning_text = ''; 585 585 586 if ( $mailbox == PM_INBOX ) { 587 $mailbox_name = $lang['inbox']; 588 $box_limit = $config['max_inbox_privmsgs']; 589 $sender_title = $lang['sender']; 590 $sql_where = 'm.receiver = ' . $userdata['uid'] . ' AND m.location = ' . $mailbox . ' AND m.sender = u.uid'; 591 } 592 else{ 593 $mailbox_name = $lang['sentbox']; 594 $box_limit = $config['max_sentbox_privmsgs']; 595 $sender_title = $lang['receiver']; 596 $sql_where = 'm.sender=' . $userdata['uid'] . ' AND m.saved = 1 AND m.receiver = u.uid'; 597 } 598 586 599 // Start Page 587 $sql = 'SELECT COUNT(*) as count FROM ' . PRIVATE_MESSAGES_TABLE . ' 588 WHERE ' . ( $mailbox != PM_SENTBOX ? 'receiver = ' . $userdata['uid'] . ' AND location = ' . $mailbox : 'sender = ' . $userdata['uid'] . ' AND saved = 1' ); 600 $sql = 'SELECT COUNT(*) as count 601 FROM ' . PRIVATE_MESSAGES_TABLE . ' m, ' . USERS_TABLE . ' u 602 WHERE ' . $sql_where; 589 603 $result = $db->sql_query($sql); 590 604 $count = $count_pager = ( $row = $db->sql_fetchrow($result) ) ? intval($row['count']) : 0; 591 592 $box_limit = ( $mailbox != PM_SENTBOX ? $config['max_inbox_privmsgs'] : $config['max_sentbox_privmsgs'] );593 605 594 606 if ( $box_limit && ( $count > $box_limit ) && ( $userdata['class'] < UC_MODERATOR ) ) { … … 598 610 $count_pager = $box_limit; 599 611 } 600 list($pagertop, $pagerbottom, $offset_pager, $limit_pager) = pager(40, $count_pager, append_sid('message.php?action=viewmailbox&box=' . ( $mailbox == PM_SENTBOX ? PM_SENTBOX : PM_INBOX ) . '&' ));612 list($pagertop, $pagerbottom, $offset_pager, $limit_pager) = pager(40, $count_pager, 'message.php?action=viewmailbox&box=' . $mailbox . '&'); 601 613 602 614 $limit = ( isset($limit) ? $limit : $limit_pager ); … … 604 616 605 617 $pm_box_select = '<select name="box">'; 606 $pm_box_select .= '<option value="' . PM_INBOX . '"' . ( $mailbox == PM_INBOX ? ' selected="selected"' : '' ) . '>' . $lang['inbox'] . '</option>';607 $pm_box_select .= '<option value="' . PM_SENTBOX . '"' . ( $mailbox == PM_SENTBOX ? ' selected="selected"' : '' ) . '>' . $lang['sentbox'] . '</option>';608 $pm_box_select .= '</select>';609 610 $template->assign_vars(array(618 $pm_box_select .= '<option value="' . PM_INBOX . '"' . ( $mailbox == PM_INBOX ? ' selected="selected"' : '' ) . '>' . $lang['inbox'] . '</option>'; 619 $pm_box_select .= '<option value="' . PM_SENTBOX . '"' . ( $mailbox == PM_SENTBOX ? ' selected="selected"' : '' ) . '>' . $lang['sentbox'] . '</option>'; 620 $pm_box_select .= '</select>'; 621 622 $template->assign_vars(array( 611 623 'S_FORM_ACTION' => append_sid('message.php'), 612 'MAILBOX' => $mailbox, 613 'MAILBOX_NAME' => $mailbox_name, 614 'PM_BOX_SELECT' => $pm_box_select, 615 'SENDER_RECEIVER' => ( $mailbox == PM_INBOX ? $lang['sender'] : $lang['receiver'] ), 616 'PAGERBOTTOM' => $pagerbottom, 617 618 'S_LIMIT_REACHED_WARNING' => $warning_text 624 'MAILBOX' => $mailbox, 625 'MAILBOX_NAME' => $mailbox_name, 626 'PM_BOX_SELECT' => $pm_box_select, 627 'SENDER_RECEIVER' => $sender_title, 628 'PAGERBOTTOM' => $pagerbottom, 629 630 'MESSAGES_COUNT' => $count, 631 632 'S_LIMIT_REACHED_WARNING' => $warning_text 619 633 )); 620 634 621 $where = ( $mailbox != PM_SENTBOX ? 'm.receiver = ' . $userdata['uid'] . ' AND m.location = ' . $mailbox . ' AND m.sender = u.uid' : 'm.sender=' . $userdata['uid'] . ' AND m.saved = 1 AND m.receiver = u.uid' ); 622 623 $sql = 'SELECT m.*, u.name 635 $sql = 'SELECT m.*, u.name, u.uid, u.class 624 636 FROM ' . PRIVATE_MESSAGES_TABLE . ' m, ' . USERS_TABLE . ' u 625 WHERE ' . $ where .626 ' ORDER BY added DESC';627 $result = $db->sql_query_limit($sql, $limit, $offset);637 WHERE ' . $sql_where . 638 ' ORDER BY added DESC'; 639 $result = $db->sql_query_limit($sql, $limit, $offset); 628 640 629 641 if ( !$count ) { 630 $template->assign_block_vars('no_pms', array()); 631 if ( $userdata['user_unread_pms'] ) { 632 $sql = 'UPDATE ' . USERS_TABLE . ' SET user_unread_pms = 0 WHERE uid = ' . $userdata['uid']; 633 $db->sql_query($sql); 634 } 635 } 636 else { 642 if ( $userdata['user_unread_pms'] ) { 643 $sql = 'UPDATE ' . USERS_TABLE . ' SET user_unread_pms = 0 WHERE uid = ' . $userdata['uid']; 644 $db->sql_query($sql); 645 } 646 } 647 else { 637 648 $unread_pms = 0; 649 638 650 while ( $row = $db->sql_fetchrow($result) ) { 639 if ( $mailbox != PM_SENTBOX ) { 640 $username = ( $row['sender'] <> ANONYMOUS ? '<a href="' . append_sid('userdetails.php?id=' . $row['sender']) . '">' . $row['name'] . '</a>' : $lang['system'] ); 641 } 642 else { 643 $username = ( $row['receiver'] <> ANONYMOUS ? '<a href="' . append_sid('userdetails.php?id=' . $row['receiver']) . '">' . $row['name'] . '</a>' : $lang['system'] ); 644 } 645 646 $subject = ( !$row['subject'] ? $lang['no_subject'] : $row['subject'] ); 651 $username = parse_username($row); 652 653 $subject = ( !$row['subject'] ? $lang['no_subject'] : $row['subject'] ); 647 654 648 655 $template->assign_block_vars('messages_row', array( 649 656 'U_MESSAGE' => append_sid('message.php?action=viewmessage&id=' . $row['id']), 650 'ID' => $row['id'],651 'SENDER_RECEIVER_NAME' => $username,652 'SUBJECT' => $row['subject'],653 'IMG_SRC' => ( $row['unread'] && $mailbox != PM_SENTBOX ? $images['inboxnew'] : $images['inbox'] ),654 'IMG_TITLE' => ( $row['unread'] && $mailbox != PM_SENTBOX ? $lang['new_unread_pm'] : $lang['old_read_pm'] ),655 'DATE' => create_date($row['added'])657 'ID' => $row['id'], 658 'SENDER_RECEIVER_NAME' => $username, 659 'SUBJECT' => $row['subject'], 660 'IMG_SRC' => ( $row['unread'] && $mailbox != PM_SENTBOX ? $images['inboxnew'] : $images['inbox'] ), 661 'IMG_TITLE' => ( $row['unread'] && $mailbox != PM_SENTBOX ? $lang['new_unread_pm'] : $lang['old_read_pm'] ), 662 'DATE' => create_date($row['added']) 656 663 )); 657 if ( $row['unread'] && $mailbox != PM_SENTBOX ) { 664 665 if ( $row['unread'] && $mailbox != PM_SENTBOX ) { 658 666 ++$unread_pms; 659 }660 661 }662 //if ( $unread_pms <> $userdata['user_unread_pms'] && $mailbox != PM_SENTBOX ) {667 } 668 669 } 670 //if ( $unread_pms <> $userdata['user_unread_pms'] && $mailbox != PM_SENTBOX ) { 663 671 // $sql = 'UPDATE ' . USERS_TABLE . ' SET user_unread_pms = ' . $unread_pms . ' WHERE uid = ' . $userdata['uid']; 664 672 // $db->sql_query($sql); 665 //}666 }667 668 stdhead($mailbox_name);673 //} 674 } 675 676 stdhead($mailbox_name); 669 677 $template->set_filenames(array( 670 678 'body' => 'message_viewmailbox.html' 671 679 )); 672 stdfoot();680 stdfoot(); 673 681 break; 674 682 }
