* All rights reserved. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * --> NOTICE <-- * This file is part of the core development branch, changing its contents will * make you unable to use the automatic updates manager. Please refer to the * documentation for further information about customizing Wootook. * */ define('INSIDE' , true); define('INSTALL' , false); require_once dirname(__FILE__) .'/application/bootstrap.php'; include(ROOT_PATH . 'includes/functions/BBcodeFunction.' . PHPEXT); if(!isset($user['authlevel'])) { header("Location: login.php"); } includeLang('messages'); $OwnerID = $_GET['id']; $MessCategory = $_GET['messcat']; $MessPageMode = (string) $_GET['mode']; $DeleteWhat = $_POST['deletemessages']; if (isset ($DeleteWhat)) { $MessPageMode = "delete"; } $UsrMess = doquery("SELECT * FROM {{table}} WHERE `message_owner` = '".strval($user['id'])."' ORDER BY `message_time` DESC", 'messages'); $UnRead = doquery("SELECT * FROM {{table}} WHERE `id` = '". strval($user['id']) ."'", 'users', true); $MessageType = array (0, 1, 2, 3, 4, 5, 15, 99, 100 ); $TitleColor = array (0 => '#FFFF00', 1 => '#FF6699', 2 => '#FF3300', 3 => '#FF9900', 4 => '#773399', 5 => '#009933', 15 => '#030070', 99 => '#007070', 100 => '#ABABAB'); $BackGndColor = array (0 => '#663366', 1 => '#336666', 2 => '#000099', 3 => '#666666', 4 => '#999999', 5 => '#999999', 15 => '#999999', 99 => '#999999', 100 => '#999999'); for ($MessType = 0; $MessType < 101; $MessType++) { if (in_array($MessType, $MessageType) ) { $WaitingMess[$MessType] = $UnRead[$messfields[$MessType]]; $TotalMess[$MessType] = 0; } } while ($CurMess = $UsrMess->fetch(PDO::FETCH_BOTH)) { $MessType = $CurMess['message_type']; $TotalMess[$MessType] += 1; $TotalMess[100] += 1; } switch ($MessPageMode) { case 'write': // ------------------------------------------------------------------------------------------------------- // Envoi d'un messages if ( !is_numeric( $OwnerID ) ) { message ($lang['mess_no_ownerid'], $lang['mess_error']); } $OwnerRecord = doquery("SELECT * FROM {{table}} WHERE `id` = '".strval($OwnerID)."';", 'users', true); if (!$OwnerRecord) { message ($lang['mess_no_owner'] , $lang['mess_error']); } $OwnerHome = doquery("SELECT * FROM {{table}} WHERE `id_planet` = '". $OwnerRecord["id_planet"] ."';", 'galaxy', true); if (!$OwnerHome) { message ($lang['mess_no_ownerpl'], $lang['mess_error']); } if ($_POST) { $error = 0; if (!$_POST["subject"]) { $error++; $page .= "

".$lang['mess_no_subject']."
"; } if (!$_POST["text"]) { $error++; $page .= "

".$lang['mess_no_text']."
"; } if ($error == 0) { $page .= "
".$lang['mess_sended']."
"; $_POST['text'] = str_replace("'", ''', $_POST['text']); // $_POST['text'] = str_replace('\r\n', '
', $_POST['text']); $Owner = $OwnerID; $Sender = $user['id']; $From = $user['username'] ." [".$user['galaxy'].":".$user['system'].":".$user['planet']."]"; $Subject = $_POST['subject']; if($gameConfig['enable_bbcode'] == 1) { $Message = trim ( nl2br (bbcode ( image ( strip_tags ( $_POST['text'], '
' ) ) ) ) ); } else { $Message = trim ( nl2br ( strip_tags ( $_POST['text'], '
' ) ) ); } SendSimpleMessage ( $Owner, $Sender, '', 1, $From, $Subject, $Message); $subject = ""; $text = ""; } } $parse['Send_message'] = $lang['mess_pagetitle']; $parse['Recipient'] = $lang['mess_recipient']; $parse['Subject'] = $lang['mess_subject']; $parse['Message'] = $lang['mess_message']; $parse['characters'] = $lang['mess_characters']; $parse['Envoyer'] = $lang['mess_envoyer']; $parse['id'] = $OwnerID; $parse['to'] = $OwnerRecord['username'] ." [".$OwnerHome['galaxy'].":".$OwnerHome['system'].":".$OwnerHome['planet']."]"; $parse['subject'] = (!isset($subject)) ? $lang['mess_no_subject'] : $subject ; $parse['text'] = $text; if($gameConfig['enable_bbcode'] == 1) { $page .= parsetemplate(gettemplate('messages_pm_form_bb'), $parse); } else { $page .= parsetemplate(gettemplate('messages_pm_form'), $parse); } break; case 'delete': // ------------------------------------------------------------------------------------------------------- // Suppression des messages selectionnés $DeleteWhat = $_POST['deletemessages']; if ($DeleteWhat == 'deleteall') { doquery("DELETE FROM {{table}} WHERE `message_owner` = '". $user['id'] ."';", 'messages'); } elseif ($DeleteWhat == 'deletemarked') { foreach($_POST as $Message => $Answer) { if (preg_match("/delmes/i", $Message) && $Answer == 'on') { $MessId = str_replace("delmes", "", $Message); $MessHere = doquery("SELECT * FROM {{table}} WHERE `message_id` = '". $MessId ."' AND `message_owner` = '". $user['id'] ."';", 'messages'); if ($MessHere) { doquery("DELETE FROM {{table}} WHERE `message_id` = '".$MessId."';", 'messages'); } } } } elseif ($DeleteWhat == 'deleteunmarked') { foreach($_POST as $Message => $Answer) { $CurMess = preg_match("/showmes/i", $Message); $MessId = str_replace("showmes", "", $Message); $Selected = "delmes".$MessId; $IsSelected = $_POST[ $Selected ]; if (preg_match("/showmes/i", $Message) && !isset($IsSelected)) { $MessHere = doquery("SELECT * FROM {{table}} WHERE `message_id` = '". $MessId ."' AND `message_owner` = '". $user['id'] ."';", 'messages'); if ($MessHere) { doquery("DELETE FROM {{table}} WHERE `message_id` = '".$MessId."';", 'messages'); } } } } $MessCategory = $_POST['category']; case 'show': // ------------------------------------------------------------------------------------------------------- // Affichage de la page des messages $page = "\n"; $page .= "
"; $page .= ""; $page .= ""; $page .= ""; $page .= ""; $page .= "
\n"; $page .= ""; $page .= "
"; $page .= ""; $page .= ""; $page .= ""; $page .= ""; $page .= "
\n"; $page .= ""; $page .= ""; $page .= ""; $page .= ""; $page .= ""; $page .= ""; $page .= ""; $page .= ""; $page .= ""; $page .= ""; $page .= ""; if ($MessCategory == 100) { $UsrMess = doquery("SELECT * FROM {{table}} WHERE `message_owner` = '".$user['id']."' ORDER BY `message_time` DESC;", 'messages'); $SubUpdateQry = ""; for ($MessType = 0; $MessType < 101; $MessType++) { if ( in_array($MessType, $MessageType) ) { $SubUpdateQry .= "`". $messfields[$MessType] ."` = '0', "; } } $QryUpdateUser = "UPDATE {{table}} SET "; $QryUpdateUser .= $SubUpdateQry; $QryUpdateUser .= "`id` = '".$user['id']."' "; $QryUpdateUser .= "WHERE "; $QryUpdateUser .= "`id` = '".$user['id']."';"; doquery ( $QryUpdateUser, 'users' ); while ($CurMess = $UsrMess->fetch(PDO::FETCH_BOTH)) { $page .= "\n"; $page .= ""; $page .= ""; $page .= ""; $page .= ""; $page .= ""; } else { $page .= ""; } $page .= ""; $page .= ""; $page .= ""; $page .= ""; } } else { $UsrMess = doquery("SELECT * FROM {{table}} WHERE `message_owner` = '".$user['id']."' AND `message_type` = '".$MessCategory."' ORDER BY `message_time` DESC;", 'messages'); if ($WaitingMess[$MessCategory] <> '') { $QryUpdateUser = "UPDATE {{table}} SET "; $QryUpdateUser .= "`".$messfields[$MessCategory]."` = '0', "; $QryUpdateUser .= "`".$messfields[100]."` = `".$messfields[100]."` - '".$WaitingMess[$MessCategory]."' "; $QryUpdateUser .= "WHERE "; $QryUpdateUser .= "`id` = '".$user['id']."';"; doquery ( $QryUpdateUser, 'users' ); } while ($CurMess = $UsrMess->fetch(PDO::FETCH_BOTH)) { if ($CurMess['message_type'] == $MessCategory) { $page .= "\n"; $page .= ""; $page .= ""; $page .= ""; $page .= ""; $page .= ""; } else { $page .= ""; } $page .= ""; $page .= ""; $page .= ""; $page .= ""; } } } $page .= ""; $page .= ""; $page .= ""; $page .= ""; $page .= ""; $page .= ""; $page .= ""; $page .= "
"; $page .= ""; $page .= ""; $page .= "
"; $page .= ""; $page .= "".$lang['mess_partialreport']."
".$lang['mess_action']."".$lang['mess_date']."".$lang['mess_from']."".$lang['mess_subject']."
". date("m-d H:i:s O", $CurMess['message_time']) ."". stripslashes( $CurMess['message_from'] ) ."". stripslashes( $CurMess['message_subject'] ) ." "; if ($CurMess['message_type'] == 1) { $page .= ""; $page .= "\"".$lang['mess_answer']."\"
". stripslashes( nl2br( $CurMess['message_text'] ) ) ."
". date("m-d H:i:s O", $CurMess['message_time']) ."". stripslashes( $CurMess['message_from'] ) ."". stripslashes( $CurMess['message_subject'] ) ." "; if ($CurMess['message_type'] == 1) { $page .= ""; $page .= "\"".$lang['mess_answer']."\"
". nl2br( stripslashes( $CurMess['message_text'] ) ) ."
"; $page .= "".$lang['mess_partialreport']."
"; $page .= ""; $page .= ""; $page .= "
\n"; $page .= "
\n"; $page .= ""; $page .= "
\n"; $page .= "
"; break; default: $page = "\n"; $page .= "
"; $page .= "
"; $page .= ""; $page .= ""; $page .= " "; $page .= ""; $page .= " "; $page .= " "; $page .= " "; $page .= ""; $page .= ""; $page .= " "; $page .= " "; $page .= " "; $page .= ""; for ($MessType = 0; $MessType < 100; $MessType++) { if ( in_array($MessType, $MessageType) ) { $page .= ""; $page .= " "; $page .= " "; $page .= " "; $page .= ""; } } $page .= "
". $lang['title'] ."
". $lang['head_type'] ."". $lang['head_count'] ."". $lang['head_total'] ."
". $lang['type'][100] ."". $WaitingMess[100] ."". $TotalMess[100] ."
". $lang['type'][$MessType] ."". $WaitingMess[$MessType] ."". $TotalMess[$MessType] ."
"; $page .= "
"; break; } display($page, $lang['mess_pagetitle']); // ----------------------------------------------------------------------------------------------------------- // History version // 1.0 - Version originelle (Tom1991) // 1.1 - Mise a plat, linearisation, suppression des doublons / triplons / 'n'gnions dans le code (Chlorel) // 1.2 - Regroupage des 2 fichiers vers 1 seul plus simple a mettre en oeuvre et a gerer ! ?>