1 | <?php
|
---|
2 | /*
|
---|
3 | * Project Name: MiniManager for Mangos Server
|
---|
4 | * Date: 17.10.2006 inital version (0.0.1a)
|
---|
5 | * Author: Q.SA
|
---|
6 | * Copyright: Q.SA
|
---|
7 | * Email: *****
|
---|
8 | * License: GNU General Public License (GPL)
|
---|
9 | */
|
---|
10 |
|
---|
11 | require_once("header.php");
|
---|
12 | valid_login(1);
|
---|
13 |
|
---|
14 | $ticket_type = Array(
|
---|
15 | 0 => array(0,$lang_ticket['other']),
|
---|
16 | 1 => array(1,$lang_ticket['stuck']),
|
---|
17 | 2 => array(2,$lang_ticket['behavior']),
|
---|
18 | 3 => array(3,$lang_ticket['guild']),
|
---|
19 | 4 => array(4,$lang_ticket['item']),
|
---|
20 | 5 => array(5,$lang_ticket['environmental']),
|
---|
21 | 6 => array(6,$lang_ticket['creep']),
|
---|
22 | 7 => array(7,$lang_ticket['quest']),
|
---|
23 | 8 => array(8,$lang_ticket['technical']),
|
---|
24 | 9 => array(9,$lang_ticket['account']),
|
---|
25 | 10 => array(10,$lang_ticket['character'])
|
---|
26 | );
|
---|
27 |
|
---|
28 | //########################################################################################################################
|
---|
29 | // BROWSE TICKETS
|
---|
30 | //########################################################################################################################
|
---|
31 | function browse_tickets() {
|
---|
32 | global $lang_global, $lang_ticket, $output, $mangos_db, $realm_id, $itemperpage, $ticket_type;
|
---|
33 |
|
---|
34 | $mysql = new MySQL;
|
---|
35 | $link = $mysql->connect($mangos_db[$realm_id]['addr'], $mangos_db[$realm_id]['user'], $mangos_db[$realm_id]['pass'], $mangos_db[$realm_id]['name']);
|
---|
36 |
|
---|
37 | if(isset($_GET['start'])) $start = $mysql->quote_smart($_GET['start']);
|
---|
38 | else $start = 0;
|
---|
39 |
|
---|
40 | if(isset($_GET['order_by'])) $order_by = $mysql->quote_smart($_GET['order_by']);
|
---|
41 | else $order_by = "ticket_id";
|
---|
42 |
|
---|
43 | //get total number of items
|
---|
44 | $query_1 = $mysql->query("SELECT count(*) FROM character_ticket");
|
---|
45 | $all_record = $mysql->result($query_1,0);
|
---|
46 |
|
---|
47 | $sql = "SELECT ticket_id, guid, SUBSTRING_INDEX(ticket_text,' ',6), ticket_category FROM character_ticket ORDER BY $order_by DESC LIMIT $start, $itemperpage";
|
---|
48 | $query = $mysql->query($sql);
|
---|
49 | $this_page = $mysql->num_rows($query);
|
---|
50 |
|
---|
51 | $output .="<script type=\"text/javascript\" src=\"js/check.js\"></script>
|
---|
52 | <center><table class=\"top_hidden\">
|
---|
53 | <tr><td>";
|
---|
54 | $index_url = "ticket.php?action=browse_tickets&order_by=$order_by";
|
---|
55 | $paging = generate_pagination($index_url, $all_record, $itemperpage, $start);
|
---|
56 |
|
---|
57 | $output .= $paging;
|
---|
58 | $output .= "</td></tr></table>";
|
---|
59 |
|
---|
60 | $output .= "
|
---|
61 | <form method=\"get\" action=\"ticket.php\" name=\"form\">
|
---|
62 | <input type=\"hidden\" name=\"action\" value=\"delete_tickets\">
|
---|
63 | <input type=\"hidden\" name=\"start\" value=\"$start\">
|
---|
64 | <table class=\"lined\">
|
---|
65 | <tr>
|
---|
66 | <td width=\"5%\" class=\"head\"><input name=\"allbox\" type=\"checkbox\" value=\"Check All\" onclick=\"CheckAll(document.form);\" /></td>
|
---|
67 | <td width=\"5%\" class=\"head\">{$lang_global['edit']}</td>
|
---|
68 | <td width=\"8%\" class=\"head\"><a href=\"ticket.php?order_by=ticket_id\" class=\"head_link\">{$lang_ticket['id']}</a></td>
|
---|
69 | <td width=\"15%\" class=\"head\"><a href=\"ticket.php?order_by=guid\" class=\"head_link\">{$lang_ticket['sender']}</a></td>
|
---|
70 | <td width=\"55%\" class=\"head\"><a href=\"ticket.php?order_by=ticket_text\" class=\"head_link\">{$lang_ticket['ticket_text']}</a></td>
|
---|
71 | <td width=\"13%\" class=\"head\"><a href=\"ticket.php?order_by=ticket_category\" class=\"head_link\">{$lang_ticket['category']}</a></td>
|
---|
72 | </tr>";
|
---|
73 |
|
---|
74 | if ($this_page < $itemperpage) $looping = $this_page; else $looping = $itemperpage;
|
---|
75 |
|
---|
76 | for ($i=1; $i<=$looping; $i++) {
|
---|
77 | $ticket = $mysql->fetch_row($query);
|
---|
78 |
|
---|
79 | $que = $mysql->query("SELECT name FROM `character` WHERE guid ='$ticket[1]'");
|
---|
80 | $owner_name = $mysql->result($que, 0, 'name');
|
---|
81 |
|
---|
82 | $output .= "<tr>
|
---|
83 | <td><input type=\"checkbox\" name=\"check[]\" value=\"$ticket[0]\" onclick=\"CheckCheckAll(document.form);\" /></td>
|
---|
84 | <td><a href=\"ticket.php?action=edit_ticket&error=4&id=$ticket[0]\">{$lang_global['edit']}</a></td>
|
---|
85 | <td>$ticket[0]</td>
|
---|
86 | <td><a href=\"char.php?id=$ticket[1]\">$owner_name</a></td>
|
---|
87 | <td>$ticket[2] ...</td>
|
---|
88 | <td>{$ticket_type[$ticket[3]][1]}</td>
|
---|
89 | </tr>";
|
---|
90 | }
|
---|
91 |
|
---|
92 | $output .= "<tr><td colspan=\"12\" class=\"hidden\"><br/></td></tr>
|
---|
93 | <tr>
|
---|
94 | <td colspan=\"4\" align=\"left\" class=\"hidden\">";
|
---|
95 | makebutton($lang_ticket['del_selected_tickets'], "javascript:do_submit()",200);
|
---|
96 | $output .= "</td>
|
---|
97 | <td colspan=\"2\" align=\"right\" class=\"hidden\">{$lang_ticket['tot_tickets']}: $all_record</td>
|
---|
98 | </tr>
|
---|
99 | </table>
|
---|
100 | </form><br/></center>";
|
---|
101 |
|
---|
102 | $mysql->close();
|
---|
103 |
|
---|
104 | }
|
---|
105 |
|
---|
106 |
|
---|
107 | //########################################################################################################################
|
---|
108 | // DELETE TICKETS
|
---|
109 | //########################################################################################################################
|
---|
110 | function delete_tickets() {
|
---|
111 | global $lang_global, $mangos_db, $realm_id;
|
---|
112 |
|
---|
113 | $mysql = new MySQL;
|
---|
114 | $link = $mysql->connect($mangos_db[$realm_id]['addr'], $mangos_db[$realm_id]['user'], $mangos_db[$realm_id]['pass'], $mangos_db[$realm_id]['name']);
|
---|
115 |
|
---|
116 | if(isset($_GET['check'])) $check = $mysql->quote_smart($_GET['check']);
|
---|
117 | else redirect("ticket.php?error=1");
|
---|
118 |
|
---|
119 | $deleted_tickets = 0;
|
---|
120 |
|
---|
121 | for ($i=0; $i<count($check); $i++) {
|
---|
122 | if ($check[$i] != "" ) {
|
---|
123 | $query = $mysql->query("DELETE FROM character_ticket WHERE ticket_id = '$check[$i]'");
|
---|
124 | $deleted_tickets++;
|
---|
125 | }
|
---|
126 | }
|
---|
127 |
|
---|
128 | $mysql->close();
|
---|
129 |
|
---|
130 | if ($deleted_tickets == 0) redirect("ticket.php?error=3");
|
---|
131 | else redirect("ticket.php?error=2");
|
---|
132 | }
|
---|
133 |
|
---|
134 |
|
---|
135 | //########################################################################################################################
|
---|
136 | // EDIT TICKET
|
---|
137 | //########################################################################################################################
|
---|
138 | function edit_ticket() {
|
---|
139 | global $lang_global, $lang_ticket, $output, $mangos_db, $realm_id, $ticket_type;
|
---|
140 |
|
---|
141 | $mysql = new MySQL;
|
---|
142 | $link = $mysql->connect($mangos_db[$realm_id]['addr'], $mangos_db[$realm_id]['user'], $mangos_db[$realm_id]['pass'], $mangos_db[$realm_id]['name']);
|
---|
143 |
|
---|
144 | if(isset($_GET['id'])) $id = $mysql->quote_smart($_GET['id']);
|
---|
145 | else redirect("ticket.php?error=1");
|
---|
146 |
|
---|
147 | $query = $mysql->query("SELECT ticket_id, guid, ticket_text, ticket_category FROM character_ticket WHERE ticket_id = '$id'");
|
---|
148 |
|
---|
149 | if ($mysql->num_rows($query) == 1) {
|
---|
150 | $ticket = $mysql->fetch_row($query);
|
---|
151 |
|
---|
152 | $que = $mysql->query("SELECT name FROM `character` WHERE guid ='$ticket[1]'");
|
---|
153 | $owner_name = $mysql->result($que, 0, 'name');
|
---|
154 |
|
---|
155 | $output .= "<center>
|
---|
156 | <fieldset style=\"width: 550px;\">
|
---|
157 | <legend>{$lang_ticket['edit_reply']}</legend>
|
---|
158 | <form method=\"POST\" action=\"ticket.php?action=do_edit_ticket\" name=\"form\">
|
---|
159 | <input type=\"hidden\" name=\"id\" value=\"$id\" />
|
---|
160 | <table class=\"flat\">
|
---|
161 | <tr>
|
---|
162 | <td>{$lang_ticket['ticket_id']}</td>
|
---|
163 | <td>$ticket[0]</td>
|
---|
164 | </tr>
|
---|
165 | <tr>
|
---|
166 | <td>{$lang_ticket['submitted_by']}:</td>
|
---|
167 | <td><a href=\"char.php?id=$ticket[1]\">$owner_name</a></td>
|
---|
168 | </tr>
|
---|
169 | <tr>
|
---|
170 | <td valign=\"top\">{$lang_ticket['ticket_text']}</td>
|
---|
171 | <td><TEXTAREA NAME=\"new_text\" ROWS=5 COLS=40>$ticket[2]</TEXTAREA></td>
|
---|
172 | </tr>
|
---|
173 | <tr>
|
---|
174 | <td>{$lang_ticket['category']}</td>
|
---|
175 | <td><select name=\"new_category\">";
|
---|
176 | foreach ($ticket_type as $type){
|
---|
177 | $output .= "<option value=\"{$type[0]}\" ";
|
---|
178 | if ($ticket[3]==$type[0]) $output .= "SELECTED ";
|
---|
179 | $output .= ">{$type[1]}</option>";
|
---|
180 | }
|
---|
181 | $output .= "</select></td>
|
---|
182 | </tr>
|
---|
183 | <tr>
|
---|
184 | <td>";
|
---|
185 | makebutton($lang_ticket['update'], "javascript:do_submit()",130);
|
---|
186 | $output .= "</td>
|
---|
187 | <td>
|
---|
188 | <table class=\"hidden\">
|
---|
189 | <tr>
|
---|
190 | <td>";
|
---|
191 | makebutton($lang_ticket['send_ingame_mail'], "mail.php?type=ingame_mail&to=$owner_name",205);
|
---|
192 | makebutton($lang_global['back'], "ticket.php",120);
|
---|
193 | $output .= "</td>
|
---|
194 | </tr>
|
---|
195 | </table>";
|
---|
196 | $output .= "</td></tr>
|
---|
197 | </table>
|
---|
198 | </form></fieldset><br/><br/></center>";
|
---|
199 | } else error($lang_global['err_no_records_found']);
|
---|
200 |
|
---|
201 | $mysql->close();
|
---|
202 | }
|
---|
203 |
|
---|
204 |
|
---|
205 | //########################################################################################################################
|
---|
206 | // DO EDIT TICKET
|
---|
207 | //########################################################################################################################
|
---|
208 | function do_edit_ticket() {
|
---|
209 | global $mangos_db, $realm_id;
|
---|
210 |
|
---|
211 | if((!isset($_POST['new_category'])) ||($_POST['new_category'] === '')|| empty($_POST['new_text']) || empty($_POST['id']) ) {
|
---|
212 | redirect("ticket.php?error=1");
|
---|
213 | }
|
---|
214 |
|
---|
215 | $mysql = new MySQL;
|
---|
216 | $link = $mysql->connect($mangos_db[$realm_id]['addr'], $mangos_db[$realm_id]['user'], $mangos_db[$realm_id]['pass'], $mangos_db[$realm_id]['name']);
|
---|
217 |
|
---|
218 | $new_category = $mysql->quote_smart($_POST['new_category']);
|
---|
219 | $new_text = $mysql->quote_smart($_POST['new_text']);
|
---|
220 | $id = $mysql->quote_smart($_POST['id']);
|
---|
221 |
|
---|
222 | $sql = "UPDATE character_ticket SET ticket_text='$new_text', ticket_category ='$new_category' WHERE ticket_id = '$id'";
|
---|
223 | $query = $mysql->query($sql);
|
---|
224 |
|
---|
225 | if (mysql_affected_rows() != 0) {
|
---|
226 | $mysql->close();
|
---|
227 | redirect("ticket.php?error=5");
|
---|
228 | } else {
|
---|
229 | $mysql->close();
|
---|
230 | redirect("ticket.php?error=6");
|
---|
231 | }
|
---|
232 | }
|
---|
233 |
|
---|
234 |
|
---|
235 | //########################################################################################################################
|
---|
236 | // MAIN
|
---|
237 | //########################################################################################################################
|
---|
238 | if(isset($_GET['error'])) $err = $_GET['error'];
|
---|
239 | else $err = NULL;
|
---|
240 |
|
---|
241 | $output .= "<div class=\"top\">";
|
---|
242 | switch ($err) {
|
---|
243 | case 1:
|
---|
244 | $output .= "<h1><font class=\"error\">{$lang_global['empty_fields']}</font></h1>";
|
---|
245 | break;
|
---|
246 | case 2:
|
---|
247 | $output .= "<h1><font class=\"error\">{$lang_ticket['ticked_deleted']}</font></h1>";
|
---|
248 | break;
|
---|
249 | case 3:
|
---|
250 | $output .= "<h1><font class=\"error\">{$lang_ticket['ticket_not_deleted']}</font></h1>";
|
---|
251 | break;
|
---|
252 | case 4:
|
---|
253 | $output .= "<h1>{$lang_ticket['edit_ticked']}</h1>";
|
---|
254 | break;
|
---|
255 | case 5:
|
---|
256 | $output .= "<h1><font class=\"error\">{$lang_ticket['ticket_updated']}</font></h1>";
|
---|
257 | break;
|
---|
258 | case 6:
|
---|
259 | $output .= "<h1><font class=\"error\">{$lang_ticket['ticket_update_err']}</font></h1>";
|
---|
260 | break;
|
---|
261 | default: //no error
|
---|
262 | $output .= "<h1>{$lang_ticket['browse_tickets']}</h1>";
|
---|
263 | }
|
---|
264 | $output .= "</div>";
|
---|
265 |
|
---|
266 | if(isset($_GET['action'])) $action = $_GET['action'];
|
---|
267 | else $action = NULL;
|
---|
268 |
|
---|
269 | switch ($action) {
|
---|
270 | case "browse_tickets":
|
---|
271 | browse_tickets();
|
---|
272 | break;
|
---|
273 | case "delete_tickets":
|
---|
274 | delete_tickets();
|
---|
275 | break;
|
---|
276 | case "edit_ticket":
|
---|
277 | edit_ticket();
|
---|
278 | break;
|
---|
279 | case "do_edit_ticket":
|
---|
280 | do_edit_ticket();
|
---|
281 | break;
|
---|
282 | default:
|
---|
283 | browse_tickets();
|
---|
284 | }
|
---|
285 |
|
---|
286 | require_once("footer.php");
|
---|
287 | ?>
|
---|