source: minimanager_/ticket.php@ 5

Last change on this file since 5 was 5, checked in by george, 18 years ago

import

File size: 10.2 KB
Line 
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
11require_once("header.php");
12valid_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//########################################################################################################################
31function 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&amp;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&amp;error=4&amp;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//########################################################################################################################
110function delete_tickets() {
111global $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//########################################################################################################################
138function 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&amp;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//########################################################################################################################
208function 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//########################################################################################################################
238if(isset($_GET['error'])) $err = $_GET['error'];
239 else $err = NULL;
240
241$output .= "<div class=\"top\">";
242switch ($err) {
243case 1:
244 $output .= "<h1><font class=\"error\">{$lang_global['empty_fields']}</font></h1>";
245 break;
246case 2:
247 $output .= "<h1><font class=\"error\">{$lang_ticket['ticked_deleted']}</font></h1>";
248 break;
249case 3:
250 $output .= "<h1><font class=\"error\">{$lang_ticket['ticket_not_deleted']}</font></h1>";
251 break;
252case 4:
253 $output .= "<h1>{$lang_ticket['edit_ticked']}</h1>";
254 break;
255case 5:
256 $output .= "<h1><font class=\"error\">{$lang_ticket['ticket_updated']}</font></h1>";
257 break;
258case 6:
259 $output .= "<h1><font class=\"error\">{$lang_ticket['ticket_update_err']}</font></h1>";
260 break;
261default: //no error
262 $output .= "<h1>{$lang_ticket['browse_tickets']}</h1>";
263}
264$output .= "</div>";
265
266if(isset($_GET['action'])) $action = $_GET['action'];
267 else $action = NULL;
268
269switch ($action) {
270case "browse_tickets":
271 browse_tickets();
272 break;
273case "delete_tickets":
274 delete_tickets();
275 break;
276case "edit_ticket":
277 edit_ticket();
278 break;
279case "do_edit_ticket":
280 do_edit_ticket();
281 break;
282default:
283 browse_tickets();
284}
285
286require_once("footer.php");
287?>
Note: See TracBrowser for help on using the repository browser.