/** * method build_page * param * return main method, loads everything */ private function build_page() { // some values by default $parse = $this->_lang; $parse['js_path'] = XGP_ROOT . JS_PATH; // display an specific category of items if (isset($_GET['dsp']) && $_GET['dsp'] == 1 && $this->_have_premium) { $mode = ''; $get_messages = ''; foreach ($_GET as $field => $value) { if (Functions_Lib::in_multiarray($field, $this->_message_type)) { $type_id = Functions_lib::recursive_array_search($field, $this->_message_type); $get_messages .= $type_id . ','; $active[$type_id] = 1; } } // get list of messages $message_list = parent::$db->query("SELECT *\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM `" . MESSAGES . "`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `message_receiver` = " . $this->_current_user['user_id'] . "\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND `message_type` IN (" . rtrim($get_messages, ',') . ");"); // set messages as read parent::$db->query("UPDATE `" . MESSAGES . "`\n\t\t\t\t\t\t\t\t\tSET `message_read` = '1'\n\t\t\t\t\t\t\t\t\tWHERE `message_receiver` = " . $this->_current_user['user_id'] . "\n\t\t\t\t\t\t\t\t\t\tAND `message_type` IN (" . rtrim($get_messages, ',') . ");"); } else { $mode = isset($_GET['mode']) ? $_GET['mode'] : NULL; } // to delete something $to_delete = isset($_POST['deletemessages']) ? $_POST['deletemessages'] : NULL; if (isset($to_delete)) { $mode = "delete"; } $write_to = isset($_GET['id']) ? (int) $_GET['id'] : NULL; switch ($mode) { case 'write': $text = ''; $error_page = ''; if (!is_numeric($write_to)) { Functions_Lib::redirect('game.php?page=messages'); } else { $OwnerHome = parent::$db->query_fetch("SELECT u.`user_name`, p.`planet_galaxy`, p.`planet_system`, p.`planet_planet`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM " . PLANETS . " AS p\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN " . USERS . " as u ON p.planet_user_id = u.user_id\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE p.`planet_user_id` = '" . (int) $write_to . "';"); if (!$OwnerHome) { Functions_Lib::redirect('game.php?page=messages'); } } if ($_POST) { $error = 0; if (!$_POST['subject']) { $error++; $parse['error_text'] = $this->_lang['mg_no_subject']; $parse['error_color'] = '#FF0000'; $error_page = parent::$page->parse_template(parent::$page->get_template('messages/messages_error_table'), $parse); } if (!$_POST['text']) { $error++; $parse['error_text'] = $this->_lang['mg_no_text']; $parse['error_color'] = '#FF0000'; $error_page = parent::$page->parse_template(parent::$page->get_template('messages/messages_error_table'), $parse); } if ($error == 0) { $parse['error_text'] = $this->_lang['mg_msg_sended']; $parse['error_color'] = '#00FF00'; $error_page = parent::$page->parse_template(parent::$page->get_template('messages/messages_error_table'), $parse); $Owner = $write_to; $Sender = $this->_current_user['user_id']; $From = $this->_current_user['user_name'] . ' [' . $this->_current_user['user_galaxy'] . ':' . $this->_current_user['user_system'] . ':' . $this->_current_user['user_planet'] . ']'; $Subject = $_POST['subject']; $Message = Functions_Lib::format_text($_POST['text']); Functions_Lib::send_message($Owner, $Sender, '', 4, $From, $Subject, $Message); $subject = ''; $text = ''; } } $parse['id'] = $write_to; $parse['to'] = $OwnerHome['user_name'] . ' [' . $OwnerHome['planet_galaxy'] . ':' . $OwnerHome['planet_system'] . ':' . $OwnerHome['planet_planet'] . ']'; $parse['subject'] = !isset($subject) ? $this->_lang['mg_no_subject'] : $subject; $parse['text'] = $text; $parse['status_message'] = $error_page; parent::$page->display(parent::$page->parse_template(parent::$page->get_template('messages/messages_pm_form_view'), $parse)); break; case 'delete': if ($to_delete == 'deleteall') { parent::$db->query("DELETE FROM " . MESSAGES . "\n\t\t\t\t\t\t\t\t\t\tWHERE `message_receiver` = '" . $this->_current_user['user_id'] . "';"); } elseif ($to_delete == 'deletemarked') { foreach ($_POST as $Message => $Answer) { if (preg_match("/delmes/i", $Message) && $Answer == 'on') { $MessId = str_replace("delmes", "", $Message); $MessHere = parent::$db->query_fetch("SELECT *\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM " . MESSAGES . "\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `message_id` = '" . (int) $MessId . "' AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t`message_receiver` = '" . $this->_current_user['user_id'] . "';"); if ($MessHere) { parent::$db->query("DELETE FROM " . MESSAGES . "\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `message_id` = '" . (int) $MessId . "';"); } } } } elseif ($to_delete == '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 = parent::$db->query_fetch("SELECT *\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM " . MESSAGES . "\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `message_id` = '" . (int) $MessId . "' AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t`message_receiver` = '" . $this->_current_user['user_id'] . "';"); if ($MessHere) { parent::$db->query_fetch("DELETE FROM " . MESSAGES . "\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `message_id` = '" . (int) $MessId . "';"); } } } } Functions_Lib::redirect('game.php?page=messages'); break; default: if ($this->_have_premium) { $type_row_template = parent::$page->get_template('messages/messages_body_premium_row_view'); $rows = ''; $this->make_counts(); while ($messages_list = parent::$db->fetch_assoc($this->_messages_count)) { $this->_message_type[$messages_list['message_type']]['count'] = $messages_list['message_type_count']; $this->_message_type[$messages_list['message_type']]['unread'] = $messages_list['unread_count']; } foreach ($this->_message_type as $id => $data) { $parse['message_type'] = $data['type_name']; $parse['message_type_name'] = $this->_lang['mg_type'][$id]; $parse['message_amount'] = isset($data['count']) ? $data['count'] : 0; $parse['message_unread'] = isset($data['unread']) ? $data['unread'] : 0; $parse['checked'] = isset($active[$id]) ? 'checked' : ''; $parse['checked_status'] = isset($active[$id]) ? 1 : 0; $rows .= parent::$page->parse_template($type_row_template, $parse); } $parse['message_type_rows'] = $rows; $parse['buddys_count'] = $this->_extra_count['buddys_count']; $parse['alliance_count'] = $this->_extra_count['alliance_count']; $parse['operators_count'] = $this->_extra_count['operators_count']; $parse['notes_count'] = $this->_extra_count['notes_count']; $parse['message_list'] = isset($message_list) ? $this->load_messages($message_list) : ''; $parse['delete_options'] = isset($_GET['dsp']) ? $this->load_delete_box() : ''; } else { // get list of messages $message_list = parent::$db->query("SELECT *\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM `" . MESSAGES . "`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `message_receiver` = " . $this->_current_user['user_id'] . ";"); // set messages as read parent::$db->query("UPDATE `" . MESSAGES . "`\n\t\t\t\t\t\t\t\t\t\t\tSET `message_read` = '1'\n\t\t\t\t\t\t\t\t\t\t\tWHERE `message_receiver` = " . $this->_current_user['user_id'] . ";"); $single_message_template = parent::$page->get_template('messages/messages_list_row_view'); $list_of_messages = ''; while ($message = parent::$db->fetch_array($message_list)) { $message['message_text'] = nl2br($message['message_text']); $list_of_messages .= parent::$page->parse_template($single_message_template, $message); } $parse['message_list'] = $list_of_messages; } parent::$page->display(parent::$page->parse_template($this->set_default_template(), $parse)); break; } }