Example #1
0
 /**
  * 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 (FunctionsLib::in_multiarray($field, $this->_message_type)) {
                 $type_id = FunctionsLib::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                                                                                                            FROM `" . MESSAGES . "`\n                                                                                                            WHERE `message_receiver` = " . $this->_current_user['user_id'] . "\n                                                                                                                    AND `message_type` IN (" . rtrim($get_messages, ',') . ");");
         // set messages as read
         parent::$db->query("UPDATE `" . MESSAGES . "`\n                                                                    SET `message_read` = '1'\n                                                                    WHERE `message_receiver` = " . $this->_current_user['user_id'] . "\n                                                                            AND `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)) {
                 FunctionsLib::redirect('game.php?page=messages');
             } else {
                 $OwnerHome = parent::$db->queryFetch("SELECT u.`user_name`, p.`planet_galaxy`, p.`planet_system`, p.`planet_planet`\n                                                                                                                                            FROM " . PLANETS . " AS p\n                                                                                                                                            INNER JOIN " . USERS . " as u ON p.planet_user_id = u.user_id\n                                                                                                                                            WHERE p.`planet_user_id` = '" . (int) $write_to . "';");
                 if (!$OwnerHome) {
                     FunctionsLib::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 = FunctionsLib::format_text($_POST['text']);
                     FunctionsLib::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                                                                            WHERE `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->queryFetch("SELECT *\n                                                                                                                                    FROM " . MESSAGES . "\n                                                                                                                                    WHERE `message_id` = '" . (int) $MessId . "' AND\n                                                                                                                                                    `message_receiver` = '" . $this->_current_user['user_id'] . "';");
                         if ($MessHere) {
                             parent::$db->query("DELETE FROM " . MESSAGES . "\n                                                                                                            WHERE `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->queryFetch("SELECT *\n                                                                                                                                    FROM " . MESSAGES . "\n                                                                                                                                    WHERE `message_id` = '" . (int) $MessId . "' AND\n                                                                                                                                                    `message_receiver` = '" . $this->_current_user['user_id'] . "';");
                         if ($MessHere) {
                             parent::$db->queryFetch("DELETE FROM " . MESSAGES . "\n                                                                                                                    WHERE `message_id` = '" . (int) $MessId . "';");
                         }
                     }
                 }
             }
             FunctionsLib::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->fetchAssoc($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                                        FROM `" . MESSAGES . "`\n                                        WHERE `message_receiver` = " . $this->_current_user['user_id'] . " \n                                        ORDER BY `message_time` DESC;");
                 // set messages as read
                 parent::$db->query("UPDATE `" . MESSAGES . "`\n                                                                                    SET `message_read` = '1'\n                                                                                    WHERE `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->fetchArray($message_list)) {
                     $message['message_text'] = nl2br($message['message_text']);
                     $message['message_time'] = date('m-d h:i:s', $message['message_time']);
                     $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;
     }
 }