<commit_before><?php
/*
  This file is part of WOT Game.

    WOT Game is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    WOT Game 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 Affero General Public License for more details.

    You should have received a copy of the GNU Affero General Public License
    along with WOT Game.  If not, see <http://www.gnu.org/licenses/>.
*/


define('INSIDE', true);
$ugamela_root_path = './';
include($ugamela_root_path . 'extension.inc');
include($ugamela_root_path . 'common.'.$phpEx);

if(!check_user()){ header("Location: login.php"); die();}

includeLang('messages');

$dpath = (!$user["dpath"]) ? DEFAULT_SKINPATH : $user["dpath"];

include($ugamela_root_path . 'includes/planet_toggle.'.$phpEx);

$features = unserialize($user['diliziumFeatures']);

/*
	TABLA DE REFERENCIA:

	ID	Tipo
	0	Mensaje comun
	1	Mensaje entre jugadores
	2	Mensaje de la alianza
	3	Mensaje ------ alerta espionaje
	4	Mensaje ------- orden de la flota espionaje
	5	Mensaje ------ Llegada a un planeta
	6	Mensaje -----  aun no estan decididos los diferentes tipos de mensajes,
		salvo los primeros 3, el orden puede variar...

	ID	Type
	0	other messages
	1	player messages
	2	alliance messages
	3	combat reports
	4	espionage reports
	5	- without function -
	6	- without function -

*/

if($_GET["mode"] == 'write'){ //Formulario para mandar mensajes personales (PM)


	if(!is_numeric($_GET["id"])){ echo $_GET['id']; message("Error fatal, por favor contacte este error al programador.<br>Programador: Y depaso tomamos un cafecito ;)","Error intencionado...");}

	/*
	  Obtenemos informacion del id user al que se esta enviando el mensaje.
	  En caso de no existir, el mensaje de !is_numeric($id)  crea un error visual...
	  TOUH! HAY QUE REVISAR ESO EN LOS OTROS PHP... FUCK!
	*/
	$user_query = doquery("SELECT * FROM {{table}} WHERE id='{$_GET["id"]}'",'users',true);

	if(!$user_query){ message($lang['User_notexist'],$lang['Send_message']);}

	//No lo encuentro muy necesario...
	//$planet_query = doquery("SELECT * FROM {{table}} WHERE id=".$user_query["id_planet"],"planets",true);
	//if(!$planet_query){ error("Ha surgido un problema con el usuario al que estas mandando el mensaje.<br>Por favor, contacta a algun administrador para solucionar el problema.<br>Atte. el programador.<br><br>Asunto: Planeta principal no existe.","Enviar mensaje");}

	//if($_GET['id'] == 1072) echo $user_query["id_planet"];
	//$pos_query = doquery("SELECT * FROM {{table}} WHERE id_planet=".$user_query["id_planet"],"galaxy",true);
	//if(!$pos_query){ message("Ha surgido un problema con el usuario al que estas mandando el mensaje.<br>Por favor, contacta a algun administrador para solucionar el problema.<br>Atte. el programador.<br><br>Asunto: Planeta principal no tiene coordenadas.",$lang['Send_message']);}

	if($_POST){

		/*
		  Crear una nueva tabla donde se almacenaran los mensajes.  "message_sender = 1"
		  message_id,  message_owner, message_sender, message_type, message_time, message_subject,y message_text
		*/
		$error=0;
		if(!$_POST["subject"]){ $error++; $page .= "<center><br><font color=#FF0000>{$lang['No_Subject']}<br></font></center>";}
		if(!$_POST["text"]){ $error++; $page .= "<center><br><font color=#FF0000>{$lang['No_Text']}<br></font></center>";}
		if($error==0){

			$page .= "<center><font color=#00FF00>Nachricht erfolgreich verschickt!<br></font></center>";

			require_once(WCF_DIR.'lib/data/message/bbcode/MessageParser.class.php');
			$parser = MessageParser::getInstance();
			$parser->setOutputType('text/html');

			$message = MessageUtil::stripCrap(StringUtil::trim($_POST['text']));

			$message = $parser->parse($message);

			//query para agregar un mensaje
			require_once(LW_DIR.'lib/data/message/MessageEditor.class.php');
			$recipentID = intval($_GET['id']);
			$subject = escapeString(StringUtil::encodeHTML($_POST['subject']));
			MessageEditor::create($recipentID, $subject, $message);
			
			/*doquery("INSERT INTO {{table}} SET
				`message_owner`='".intval($_GET['id'])."',
				`message_sender`='{$user['id']}',
				`message_time`='".time()."',
				`message_type`='1',
				`message_from`='{$user['username']} [{$user['galaxy']}:{$user['system']}:{$user['planet']}]',
				`message_subject`='".WCF::getDB()->escapeString(StringUtil::encodeHTML($_POST['subject']))."',
				`message_text`='".WCF::getDB()->escapeString($message)."'"
				,'messages');
			$text = '';
			//query para agregar un contador al dueo de ese mensaje
			doquery("UPDATE {{table}} SET new_message = new_message + 1 WHERE id = '".$_GET['id']."'",'users');
*/
		}

	}

	$to = "{$user_query['username']} [{$user_query['galaxy']}:{$user_query['system']}:{$user_query['planet']}]";

	$lang['subject'] = (!isset($subject)) ? $lang['No_Subject']: $subject;
	$lang['to'] = $to;
	$lang['id'] = $_GET['id'];
	$lang['text'] = $text;

	$page .= parsetemplate(gettemplate('messages_pm_form'), $lang);

	display($page,$lang['Send_message']);
	die();

}

//Marcamos los mensajes como leidos
doquery("UPDATE {{table}} SET new_message=0 WHERE id={$user['id']}",'users');
/*
  Aqui se borran los mensajes. por medio de deletemessage y deletemarked
*/
if (isset($_POST['deletemessages']))

if ($_POST['deletemessages'] == 'deleteall') {
	//Se borran todos los mensajes del jugador
	$sql = "INSERT INTO ugml_archive_messages
			SELECT * FROM ugml_messages
				WHERE message_owner = ".WCF::getUser()->userID;
	WCF::getDB()->sendQuery($sql);

	$sql = "DELETE FROM ugml_messages<commit_msg>Korrekte Anzeige der Zahl neuer Nachrichten<commit_after><?php
/*
  This file is part of WOT Game.

    WOT Game is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    WOT Game 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 Affero General Public License for more details.

    You should have received a copy of the GNU Affero General Public License
    along with WOT Game.  If not, see <http://www.gnu.org/licenses/>.
*/


define('INSIDE', true);
$ugamela_root_path = './';
include($ugamela_root_path . 'extension.inc');
include($ugamela_root_path . 'common.'.$phpEx);

if(!check_user()){ header("Location: login.php"); die();}

includeLang('messages');

$dpath = (!$user["dpath"]) ? DEFAULT_SKINPATH : $user["dpath"];

include($ugamela_root_path . 'includes/planet_toggle.'.$phpEx);

$features = unserialize($user['diliziumFeatures']);

/*
	TABLA DE REFERENCIA:

	ID	Tipo
	0	Mensaje comun
	1	Mensaje entre jugadores
	2	Mensaje de la alianza
	3	Mensaje ------ alerta espionaje
	4	Mensaje ------- orden de la flota espionaje
	5	Mensaje ------ Llegada a un planeta
	6	Mensaje -----  aun no estan decididos los diferentes tipos de mensajes,
		salvo los primeros 3, el orden puede variar...

	ID	Type
	0	other messages
	1	player messages
	2	alliance messages
	3	combat reports
	4	espionage reports
	5	- without function -
	6	- without function -

*/

if($_GET["mode"] == 'write'){ //Formulario para mandar mensajes personales (PM)


	if(!is_numeric($_GET["id"])){ echo $_GET['id']; message("Error fatal, por favor contacte este error al programador.<br>Programador: Y depaso tomamos un cafecito ;)","Error intencionado...");}

	/*
	  Obtenemos informacion del id user al que se esta enviando el mensaje.
	  En caso de no existir, el mensaje de !is_numeric($id)  crea un error visual...
	  TOUH! HAY QUE REVISAR ESO EN LOS OTROS PHP... FUCK!
	*/
	$user_query = doquery("SELECT * FROM {{table}} WHERE id='{$_GET["id"]}'",'users',true);

	if(!$user_query){ message($lang['User_notexist'],$lang['Send_message']);}

	//No lo encuentro muy necesario...
	//$planet_query = doquery("SELECT * FROM {{table}} WHERE id=".$user_query["id_planet"],"planets",true);
	//if(!$planet_query){ error("Ha surgido un problema con el usuario al que estas mandando el mensaje.<br>Por favor, contacta a algun administrador para solucionar el problema.<br>Atte. el programador.<br><br>Asunto: Planeta principal no existe.","Enviar mensaje");}

	//if($_GET['id'] == 1072) echo $user_query["id_planet"];
	//$pos_query = doquery("SELECT * FROM {{table}} WHERE id_planet=".$user_query["id_planet"],"galaxy",true);
	//if(!$pos_query){ message("Ha surgido un problema con el usuario al que estas mandando el mensaje.<br>Por favor, contacta a algun administrador para solucionar el problema.<br>Atte. el programador.<br><br>Asunto: Planeta principal no tiene coordenadas.",$lang['Send_message']);}

	if($_POST){

		/*
		  Crear una nueva tabla donde se almacenaran los mensajes.  "message_sender = 1"
		  message_id,  message_owner, message_sender, message_type, message_time, message_subject,y message_text
		*/
		$error=0;
		if(!$_POST["subject"]){ $error++; $page .= "<center><br><font color=#FF0000>{$lang['No_Subject']}<br></font></center>";}
		if(!$_POST["text"]){ $error++; $page .= "<center><br><font color=#FF0000>{$lang['No_Text']}<br></font></center>";}
		if($error==0){

			$page .= "<center><font color=#00FF00>Nachricht erfolgreich verschickt!<br></font></center>";

			require_once(WCF_DIR.'lib/data/message/bbcode/MessageParser.class.php');
			$parser = MessageParser::getInstance();
			$parser->setOutputType('text/html');

			$message = MessageUtil::stripCrap(StringUtil::trim($_POST['text']));

			$message = $parser->parse($message);

			//query para agregar un mensaje
			require_once(LW_DIR.'lib/data/message/MessageEditor.class.php');
			$recipentID = intval($_GET['id']);
			$subject = escapeString(StringUtil::encodeHTML($_POST['subject']));
			MessageEditor::create($recipentID, $subject, $message);
			
			/*doquery("INSERT INTO {{table}} SET
				`message_owner`='".intval($_GET['id'])."',
				`message_sender`='{$user['id']}',
				`message_time`='".time()."',
				`message_type`='1',
				`message_from`='{$user['username']} [{$user['galaxy']}:{$user['system']}:{$user['planet']}]',
				`message_subject`='".WCF::getDB()->escapeString(StringUtil::encodeHTML($_POST['subject']))."',
				`message_text`='".WCF::getDB()->escapeString($message)."'"
				,'messages');
			$text = '';
			//query para agregar un contador al dueo de ese mensaje
			doquery("UPDATE {{table}} SET new_message = new_message + 1 WHERE id = '".$_GET['id']."'",'users');
*/
		}

	}

	$to = "{$user_query['username']} [{$user_query['galaxy']}:{$user_query['system']}:{$user_query['planet']}]";

	$lang['subject'] = (!isset($subject)) ? $lang['No_Subject']: $subject;
	$lang['to'] = $to;
	$lang['id'] = $_GET['id'];
	$lang['text'] = $text;

	$page .= parsetemplate(gettemplate('messages_pm_form'), $lang);

	display($page,$lang['Send_message']);
	die();

}

//Marcamos los mensajes como leidos
doquery("UPDATE {{table}} SET new_message=0 WHERE id={$user['id']}",'users');
WCF::getUser()->new_message = 1;
WCF::getSession()->setUpdate(true);
/*
  Aqui se borran los mensajes. por medio de deletemessage y deletemarked
*/
if (isset($_POST['deletemessages']))

if ($_POST['deletemessages'] == 'deleteall') {
	//Se borran todos los mensajes del jugador
	$sql = "INSERT INTO ugml_archive_messages
			SELECT * FROM ugml_messages
				WHERE message_owner = ".WCF::getUser()->userID;
	WCF::getDB()->sendQuery($sql);

	$sql = "DELETE FROM ugml_messages
{'fraction_non_alphanumeric': 0.17485365232883684, 'fraction_numerical': 0.0065326206838041915, 'mean_word_length': 4.929577464788732, 'pattern_counts': {'":': 0, '<': 59, '<?xml version=': 0, '>': 71, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5869749', 'n_tokens_mistral': 4195, 'n_tokens_neox': 3915, 'n_words': 1035}