| [ PHPXref.com ] | [ Generated: Sun Jul 20 20:57:59 2008 ] | [ vtiger Forums 1.1 ] |
| [ Index ] [ Variables ] [ Functions ] [ Classes ] [ Constants ] [ Statistics ] | ||
[Summary view] [Print] [Text view]
1 <?php 2 //-- mod : sub-template ---------------------------------------------------------------------------- 3 /*************************************************************************** 4 * privmsgs.php 5 * ------------------- 6 * begin : Saturday, Jun 9, 2001 7 * copyright : (C) 2001 The phpBB Group 8 * email : support@phpbb.com 9 * 10 * $Id: privmsg.php,v 1.2 2005/03/31 12:28:53 isaac Exp $ 11 * 12 * 13 ***************************************************************************/ 14 15 /*************************************************************************** 16 * 17 * This program is free software; you can redistribute it and/or modify 18 * it under the terms of the GNU General Public License as published by 19 * the Free Software Foundation; either version 2 of the License, or 20 * (at your option) any later version. 21 * 22 ***************************************************************************/ 23 24 define('IN_PHPBB', true); 25 //-- mod : sub-template ---------------------------------------------------------------------------- 26 //-- add 27 define('IN_PRIVMSG', true); 28 //-- fin mod : sub-template ------------------------------------------------------------------------ 29 30 $phpbb_root_path = './'; 31 include ($phpbb_root_path . 'extension.inc'); 32 include($phpbb_root_path . 'common.'.$phpEx); 33 include($phpbb_root_path . 'includes/bbcode.'.$phpEx); 34 include($phpbb_root_path . 'includes/functions_post.'.$phpEx); 35 36 // 37 // Is PM disabled? 38 // 39 if ( !empty($board_config['privmsg_disable']) ) 40 { 41 message_die(GENERAL_MESSAGE, 'PM_disabled'); 42 } 43 44 $html_entities_match = array('#&(?!(\#[0-9]+;))#', '#<#', '#>#'); 45 $html_entities_replace = array('&', '<', '>'); 46 47 // 48 // Parameters 49 // 50 $submit = ( isset($HTTP_POST_VARS['post']) ) ? TRUE : 0; 51 $submit_search = ( isset($HTTP_POST_VARS['usersubmit']) ) ? TRUE : 0; 52 $submit_msgdays = ( isset($HTTP_POST_VARS['submit_msgdays']) ) ? TRUE : 0; 53 $cancel = ( isset($HTTP_POST_VARS['cancel']) ) ? TRUE : 0; 54 $preview = ( isset($HTTP_POST_VARS['preview']) ) ? TRUE : 0; 55 $confirm = ( isset($HTTP_POST_VARS['confirm']) ) ? TRUE : 0; 56 $delete = ( isset($HTTP_POST_VARS['delete']) ) ? TRUE : 0; 57 $delete_all = ( isset($HTTP_POST_VARS['deleteall']) ) ? TRUE : 0; 58 $save = ( isset($HTTP_POST_VARS['save']) ) ? TRUE : 0; 59 60 $refresh = $preview || $submit_search; 61 62 $mark_list = ( !empty($HTTP_POST_VARS['mark']) ) ? $HTTP_POST_VARS['mark'] : 0; 63 64 if ( isset($HTTP_POST_VARS['folder']) || isset($HTTP_GET_VARS['folder']) ) 65 { 66 $folder = ( isset($HTTP_POST_VARS['folder']) ) ? $HTTP_POST_VARS['folder'] : $HTTP_GET_VARS['folder']; 67 $folder = htmlspecialchars($folder); 68 69 if ( $folder != 'inbox' && $folder != 'outbox' && $folder != 'sentbox' && $folder != 'savebox' ) 70 { 71 $folder = 'inbox'; 72 } 73 } 74 else 75 { 76 $folder = 'inbox'; 77 } 78 79 // 80 // Start session management 81 // 82 $userdata = session_pagestart($user_ip, PAGE_PRIVMSGS); 83 init_userprefs($userdata); 84 // 85 // End session management 86 // 87 88 // 89 // Cancel 90 // 91 if ( $cancel ) 92 { 93 redirect(append_sid("privmsg.$phpEx?folder=$folder", true)); 94 } 95 96 // 97 // Var definitions 98 // 99 if ( !empty($HTTP_POST_VARS['mode']) || !empty($HTTP_GET_VARS['mode']) ) 100 { 101 $mode = ( !empty($HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode']; 102 $mode = htmlspecialchars($mode); 103 } 104 else 105 { 106 $mode = ''; 107 } 108 109 $start = ( !empty($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0; 110 111 if ( isset($HTTP_POST_VARS[POST_POST_URL]) || isset($HTTP_GET_VARS[POST_POST_URL]) ) 112 { 113 $privmsg_id = ( isset($HTTP_POST_VARS[POST_POST_URL]) ) ? intval($HTTP_POST_VARS[POST_POST_URL]) : intval($HTTP_GET_VARS[POST_POST_URL]); 114 } 115 else 116 { 117 $privmsg_id = ''; 118 } 119 120 $error = FALSE; 121 122 // 123 // Define the box image links 124 // 125 $inbox_img = ( $folder != 'inbox' || $mode != '' ) ? '<a href="' . append_sid("privmsg.$phpEx?folder=inbox") . '"><img src="' . $images['pm_inbox'] . '" border="0" alt="' . $lang['Inbox'] . '" /></a>' : '<img src="' . $images['pm_inbox'] . '" border="0" alt="' . $lang['Inbox'] . '" />'; 126 $inbox_url = ( $folder != 'inbox' || $mode != '' ) ? '<a href="' . append_sid("privmsg.$phpEx?folder=inbox") . '">' . $lang['Inbox'] . '</a>' : $lang['Inbox']; 127 128 $outbox_img = ( $folder != 'outbox' || $mode != '' ) ? '<a href="' . append_sid("privmsg.$phpEx?folder=outbox") . '"><img src="' . $images['pm_outbox'] . '" border="0" alt="' . $lang['Outbox'] . '" /></a>' : '<img src="' . $images['pm_outbox'] . '" border="0" alt="' . $lang['Outbox'] . '" />'; 129 $outbox_url = ( $folder != 'outbox' || $mode != '' ) ? '<a href="' . append_sid("privmsg.$phpEx?folder=outbox") . '">' . $lang['Outbox'] . '</a>' : $lang['Outbox']; 130 131 $sentbox_img = ( $folder != 'sentbox' || $mode != '' ) ? '<a href="' . append_sid("privmsg.$phpEx?folder=sentbox") . '"><img src="' . $images['pm_sentbox'] . '" border="0" alt="' . $lang['Sentbox'] . '" /></a>' : '<img src="' . $images['pm_sentbox'] . '" border="0" alt="' . $lang['Sentbox'] . '" />'; 132 $sentbox_url = ( $folder != 'sentbox' || $mode != '' ) ? '<a href="' . append_sid("privmsg.$phpEx?folder=sentbox") . '">' . $lang['Sentbox'] . '</a>' : $lang['Sentbox']; 133 134 $savebox_img = ( $folder != 'savebox' || $mode != '' ) ? '<a href="' . append_sid("privmsg.$phpEx?folder=savebox") . '"><img src="' . $images['pm_savebox'] . '" border="0" alt="' . $lang['Savebox'] . '" /></a>' : '<img src="' . $images['pm_savebox'] . '" border="0" alt="' . $lang['Savebox'] . '" />'; 135 $savebox_url = ( $folder != 'savebox' || $mode != '' ) ? '<a href="' . append_sid("privmsg.$phpEx?folder=savebox") . '">' . $lang['Savebox'] . '</a>' : $lang['Savebox']; 136 137 execute_privmsgs_attachment_handling($mode); 138 // ---------- 139 // Start main 140 // 141 142 if ( $mode == 'newpm' ) 143 { 144 $gen_simple_header = TRUE; 145 146 $page_title = $lang['Private_Messaging']; 147 include($phpbb_root_path . 'includes/page_header.'.$phpEx); 148 149 $template->set_filenames(array( 150 'body' => 'privmsgs_popup.tpl') 151 ); 152 153 if ( $userdata['session_logged_in'] ) 154 { 155 if ( $userdata['user_new_privmsg'] ) 156 { 157 $l_new_message = ( $userdata['user_new_privmsg'] == 1 ) ? $lang['You_new_pm'] : $lang['You_new_pms']; 158 } 159 else 160 { 161 $l_new_message = $lang['You_no_new_pm']; 162 } 163 164 $l_new_message .= '<br /><br />' . sprintf($lang['Click_view_privmsg'], '<a href="' . append_sid("privmsg.".$phpEx."?folder=inbox") . '" onclick="jump_to_inbox();return false;" target="_new">', '</a>'); 165 } 166 else 167 { 168 $l_new_message = $lang['Login_check_pm']; 169 } 170 171 $template->assign_vars(array( 172 'L_CLOSE_WINDOW' => $lang['Close_window'], 173 'L_MESSAGE' => $l_new_message) 174 ); 175 176 $template->pparse('body'); 177 178 include($phpbb_root_path . 'includes/page_tail.'.$phpEx); 179 180 } 181 else if ( $mode == 'read' ) 182 { 183 if ( !empty($HTTP_GET_VARS[POST_POST_URL]) ) 184 { 185 $privmsgs_id = intval($HTTP_GET_VARS[POST_POST_URL]); 186 } 187 else 188 { 189 message_die(GENERAL_ERROR, $lang['No_post_id']); 190 } 191 192 if ( !$userdata['session_logged_in'] ) 193 { 194 redirect(append_sid("login.$phpEx?redirect=privmsg.$phpEx&folder=$folder&mode=$mode&" . POST_POST_URL . "=$privmsgs_id", true)); 195 } 196 197 // 198 // SQL to pull appropriate message, prevents nosey people 199 // reading other peoples messages ... hopefully! 200 // 201 switch( $folder ) 202 { 203 case 'inbox': 204 $l_box_name = $lang['Inbox']; 205 $pm_sql_user = "AND pm.privmsgs_to_userid = " . $userdata['user_id'] . " 206 AND ( pm.privmsgs_type = " . PRIVMSGS_READ_MAIL . " 207 OR pm.privmsgs_type = " . PRIVMSGS_NEW_MAIL . " 208 OR pm.privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )"; 209 break; 210 case 'outbox': 211 $l_box_name = $lang['Outbox']; 212 $pm_sql_user = "AND pm.privmsgs_from_userid = " . $userdata['user_id'] . " 213 AND ( pm.privmsgs_type = " . PRIVMSGS_NEW_MAIL . " 214 OR pm.privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " ) "; 215 break; 216 case 'sentbox': 217 $l_box_name = $lang['Sentbox']; 218 $pm_sql_user = "AND pm.privmsgs_from_userid = " . $userdata['user_id'] . " 219 AND pm.privmsgs_type = " . PRIVMSGS_SENT_MAIL; 220 break; 221 case 'savebox': 222 $l_box_name = $lang['Savebox']; 223 $pm_sql_user .= "AND ( ( pm.privmsgs_to_userid = " . $userdata['user_id'] . " 224 AND pm.privmsgs_type = " . PRIVMSGS_SAVED_IN_MAIL . " ) 225 OR ( pm.privmsgs_from_userid = " . $userdata['user_id'] . " 226 AND pm.privmsgs_type = " . PRIVMSGS_SAVED_OUT_MAIL . " ) 227 )"; 228 break; 229 default: 230 message_die(GENERAL_ERROR, $lang['No_such_folder']); 231 break; 232 } 233 234 // 235 // Major query obtains the message ... 236 // 237 $sql = "SELECT u.username AS username_1, u.user_id AS user_id_1, u2.username AS username_2, u2.user_id AS user_id_2, u.user_sig_bbcode_uid, u.user_posts, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_regdate, u.user_msnm, u.user_viewemail, u.user_rank, u.user_sig, u.user_avatar, pm.*, pmt.privmsgs_bbcode_uid, pmt.privmsgs_text 238 FROM " . PRIVMSGS_TABLE . " pm, " . PRIVMSGS_TEXT_TABLE . " pmt, " . USERS_TABLE . " u, " . USERS_TABLE . " u2 239 WHERE pm.privmsgs_id = $privmsgs_id 240 AND pmt.privmsgs_text_id = pm.privmsgs_id 241 $pm_sql_user 242 AND u.user_id = pm.privmsgs_from_userid 243 AND u2.user_id = pm.privmsgs_to_userid"; 244 if ( !($result = $db->sql_query($sql)) ) 245 { 246 message_die(GENERAL_ERROR, 'Could not query private message post information', '', __LINE__, __FILE__, $sql); 247 } 248 249 // 250 // Did the query return any data? 251 // 252 if ( !($privmsg = $db->sql_fetchrow($result)) ) 253 { 254 redirect(append_sid("privmsg.$phpEx?folder=$folder", true)); 255 } 256 257 $privmsg_id = $privmsg['privmsgs_id']; 258 259 // 260 // Is this a new message in the inbox? If it is then save 261 // a copy in the posters sent box 262 // 263 if (($privmsg['privmsgs_type'] == PRIVMSGS_NEW_MAIL || $privmsg['privmsgs_type'] == PRIVMSGS_UNREAD_MAIL) && $folder == 'inbox') 264 { 265 // Update appropriate counter 266 switch ($privmsg['privmsgs_type']) 267 { 268 case PRIVMSGS_NEW_MAIL: 269 $sql = "user_new_privmsg = user_new_privmsg - 1"; 270 break; 271 case PRIVMSGS_UNREAD_MAIL: 272 $sql = "user_unread_privmsg = user_unread_privmsg - 1"; 273 break; 274 } 275 276 $sql = "UPDATE " . USERS_TABLE . " 277 SET $sql 278 WHERE user_id = " . $userdata['user_id']; 279 if ( !$db->sql_query($sql) ) 280 { 281 message_die(GENERAL_ERROR, 'Could not update private message read status for user', '', __LINE__, __FILE__, $sql); 282 } 283 284 $sql = "UPDATE " . PRIVMSGS_TABLE . " 285 SET privmsgs_type = " . PRIVMSGS_READ_MAIL . " 286 WHERE privmsgs_id = " . $privmsg['privmsgs_id']; 287 if ( !$db->sql_query($sql) ) 288 { 289 message_die(GENERAL_ERROR, 'Could not update private message read status', '', __LINE__, __FILE__, $sql); 290 } 291 292 // Check to see if the poster has a 'full' sent box 293 $sql = "SELECT COUNT(privmsgs_id) AS sent_items, MIN(privmsgs_date) AS oldest_post_time 294 FROM " . PRIVMSGS_TABLE . " 295 WHERE privmsgs_type = " . PRIVMSGS_SENT_MAIL . " 296 AND privmsgs_from_userid = " . $privmsg['privmsgs_from_userid']; 297 if ( !($result = $db->sql_query($sql)) ) 298 { 299 message_die(GENERAL_ERROR, 'Could not obtain sent message info for sendee', '', __LINE__, __FILE__, $sql); 300 } 301 302 $sql_priority = ( SQL_LAYER == 'mysql' ) ? 'LOW_PRIORITY' : ''; 303 304 if ( $sent_info = $db->sql_fetchrow($result) ) 305 { 306 if ( $sent_info['sent_items'] >= $board_config['max_sentbox_privmsgs'] ) 307 { 308 $sql = "SELECT privmsgs_id FROM " . PRIVMSGS_TABLE . " 309 WHERE privmsgs_type = " . PRIVMSGS_SENT_MAIL . " 310 AND privmsgs_date = " . $sent_info['oldest_post_time'] . " 311 AND privmsgs_from_userid = " . $privmsg['privmsgs_from_userid']; 312 if ( !$result = $db->sql_query($sql) ) 313 { 314 message_die(GENERAL_ERROR, 'Could not find oldest privmsgs', '', __LINE__, __FILE__, $sql); 315 } 316 $old_privmsgs_id = $db->sql_fetchrow($result); 317 $old_privmsgs_id = $old_privmsgs_id['privmsgs_id']; 318 319 $sql = "DELETE $sql_priority FROM " . PRIVMSGS_TABLE . " 320 WHERE privmsgs_id = $old_privmsgs_id"; 321 if ( !$db->sql_query($sql) ) 322 { 323 message_die(GENERAL_ERROR, 'Could not delete oldest privmsgs (sent)', '', __LINE__, __FILE__, $sql); 324 } 325 326 $sql = "DELETE $sql_priority FROM " . PRIVMSGS_TEXT_TABLE . " 327 WHERE privmsgs_text_id = $old_privmsgs_id"; 328 if ( !$db->sql_query($sql) ) 329 { 330 message_die(GENERAL_ERROR, 'Could not delete oldest privmsgs text (sent)', '', __LINE__, __FILE__, $sql); 331 } 332 } 333 } 334 335 // 336 // This makes a copy of the post and stores it as a SENT message from the sendee. Perhaps 337 // not the most DB friendly way but a lot easier to manage, besides the admin will be able to 338 // set limits on numbers of storable posts for users ... hopefully! 339 // 340 $sql = "INSERT $sql_priority INTO " . PRIVMSGS_TABLE . " (privmsgs_type, privmsgs_subject, privmsgs_from_userid, privmsgs_to_userid, privmsgs_date, privmsgs_ip, privmsgs_enable_html, privmsgs_enable_bbcode, privmsgs_enable_smilies, privmsgs_attach_sig) 341 VALUES (" . PRIVMSGS_SENT_MAIL . ", '" . str_replace("\'", "''", addslashes($privmsg['privmsgs_subject'])) . "', " . $privmsg['privmsgs_from_userid'] . ", " . $privmsg['privmsgs_to_userid'] . ", " . $privmsg['privmsgs_date'] . ", '" . $privmsg['privmsgs_ip'] . "', " . $privmsg['privmsgs_enable_html'] . ", " . $privmsg['privmsgs_enable_bbcode'] . ", " . $privmsg['privmsgs_enable_smilies'] . ", " . $privmsg['privmsgs_attach_sig'] . ")"; 342 if ( !$db->sql_query($sql) ) 343 { 344 message_die(GENERAL_ERROR, 'Could not insert private message sent info', '', __LINE__, __FILE__, $sql); 345 } 346 347 $privmsg_sent_id = $db->sql_nextid(); 348 349 $sql = "INSERT $sql_priority INTO " . PRIVMSGS_TEXT_TABLE . " (privmsgs_text_id, privmsgs_bbcode_uid, privmsgs_text) 350 VALUES ($privmsg_sent_id, '" . $privmsg['privmsgs_bbcode_uid'] . "', '" . str_replace("\'", "''", addslashes($privmsg['privmsgs_text'])) . "')"; 351 if ( !$db->sql_query($sql) ) 352 { 353 message_die(GENERAL_ERROR, 'Could not insert private message sent text', '', __LINE__, __FILE__, $sql); 354 } 355 } 356 $attachment_mod['pm']->duplicate_attachment_pm($privmsg['privmsgs_attachment'], $privmsg['privmsgs_id'], $privmsg_sent_id); 357 // 358 // Pick a folder, any folder, so long as it's one below ... 359 // 360 $post_urls = array( 361 'post' => append_sid("privmsg.$phpEx?mode=post"), 362 'reply' => append_sid("privmsg.$phpEx?mode=reply&" . POST_POST_URL . "=$privmsg_id"), 363 'quote' => append_sid("privmsg.$phpEx?mode=quote&" . POST_POST_URL . "=$privmsg_id"), 364 'edit' => append_sid("privmsg.$phpEx?mode=edit&" . POST_POST_URL . "=$privmsg_id") 365 ); 366 $post_icons = array( 367 'post_img' => '<a href="' . $post_urls['post'] . '"><img src="' . $images['pm_postmsg'] . '" alt="' . $lang['Post_new_pm'] . '" border="0" /></a>', 368 'post' => '<a href="' . $post_urls['post'] . '">' . $lang['Post_new_pm'] . '</a>', 369 'reply_img' => '<a href="' . $post_urls['reply'] . '"><img src="' . $images['pm_replymsg'] . '" alt="' . $lang['Post_reply_pm'] . '" border="0" /></a>', 370 'reply' => '<a href="' . $post_urls['reply'] . '">' . $lang['Post_reply_pm'] . '</a>', 371 'quote_img' => '<a href="' . $post_urls['quote'] . '"><img src="' . $images['pm_quotemsg'] . '" alt="' . $lang['Post_quote_pm'] . '" border="0" /></a>', 372 'quote' => '<a href="' . $post_urls['quote'] . '">' . $lang['Post_quote_pm'] . '</a>', 373 'edit_img' => '<a href="' . $post_urls['edit'] . '"><img src="' . $images['pm_editmsg'] . '" alt="' . $lang['Edit_pm'] . '" border="0" /></a>', 374 'edit' => '<a href="' . $post_urls['edit'] . '">' . $lang['Edit_pm'] . '</a>' 375 ); 376 377 if ( $folder == 'inbox' ) 378 { 379 $post_img = $post_icons['post_img']; 380 $reply_img = $post_icons['reply_img']; 381 $quote_img = $post_icons['quote_img']; 382 $edit_img = ''; 383 $post = $post_icons['post']; 384 $reply = $post_icons['reply']; 385 $quote = $post_icons['quote']; 386 $edit = ''; 387 $l_box_name = $lang['Inbox']; 388 } 389 else if ( $folder == 'outbox' ) 390 { 391 $post_img = $post_icons['post_img']; 392 $reply_img = ''; 393 $quote_img = ''; 394 $edit_img = $post_icons['edit_img']; 395 $post = $post_icons['post']; 396 $reply = ''; 397 $quote = ''; 398 $edit = $post_icons['edit']; 399 $l_box_name = $lang['Outbox']; 400 } 401 else if ( $folder == 'savebox' ) 402 { 403 if ( $privmsg['privmsgs_type'] == PRIVMSGS_SAVED_IN_MAIL ) 404 { 405 $post_img = $post_icons['post_img']; 406 $reply_img = $post_icons['reply_img']; 407 $quote_img = $post_icons['quote_img']; 408 $edit_img = ''; 409 $post = $post_icons['post']; 410 $reply = $post_icons['reply']; 411 $quote = $post_icons['quote']; 412 $edit = ''; 413 } 414 else 415 { 416 $post_img = $post_icons['post_img']; 417 $reply_img = ''; 418 $quote_img = ''; 419 $edit_img = ''; 420 $post = $post_icons['post']; 421 $reply = ''; 422 $quote = ''; 423 $edit = ''; 424 } 425 $l_box_name = $lang['Saved']; 426 } 427 else if ( $folder == 'sentbox' ) 428 { 429 $post_img = $post_icons['post_img']; 430 $reply_img = ''; 431 $quote_img = ''; 432 $edit_img = ''; 433 $post = $post_icons['post']; 434 $reply = ''; 435 $quote = ''; 436 $edit = ''; 437 $l_box_name = $lang['Sent']; 438 } 439 440 $s_hidden_fields = '<input type="hidden" name="mark[]" value="' . $privmsgs_id . '" />'; 441 442 $page_title = $lang['Read_pm']; 443 include($phpbb_root_path . 'includes/page_header.'.$phpEx); 444 445 // 446 // Load templates 447 // 448 $template->set_filenames(array( 449 'body' => 'privmsgs_read_body.tpl') 450 ); 451 make_jumpbox('viewforum.'.$phpEx); 452 453 $template->assign_vars(array( 454 'INBOX_IMG' => $inbox_img, 455 'SENTBOX_IMG' => $sentbox_img, 456 'OUTBOX_IMG' => $outbox_img, 457 'SAVEBOX_IMG' => $savebox_img, 458 'INBOX' => $inbox_url, 459 460 'POST_PM_IMG' => $post_img, 461 'REPLY_PM_IMG' => $reply_img, 462 'EDIT_PM_IMG' => $edit_img, 463 'QUOTE_PM_IMG' => $quote_img, 464 'POST_PM' => $post, 465 'REPLY_PM' => $reply, 466 'EDIT_PM' => $edit, 467 'QUOTE_PM' => $quote, 468 469 'SENTBOX' => $sentbox_url, 470 'OUTBOX' => $outbox_url, 471 'SAVEBOX' => $savebox_url, 472 473 'BOX_NAME' => $l_box_name, 474 475 'L_MESSAGE' => $lang['Message'], 476 'L_INBOX' => $lang['Inbox'], 477 'L_OUTBOX' => $lang['Outbox'], 478 'L_SENTBOX' => $lang['Sent'], 479 'L_SAVEBOX' => $lang['Saved'], 480 'L_FLAG' => $lang['Flag'], 481 'L_SUBJECT' => $lang['Subject'],