source: minimanager/tele.php@ 142

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

Minimanager 0.1.5b

File size: 19.7 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 v2(GPL)
9 */
10
11require_once("header.php");
12valid_login(1);
13require_once("scripts/id_tab.php");
14
15//########################################################################################################################
16// BROWSE TELEPORT LOCATIONS
17//########################################################################################################################
18function browse_tele() {
19 global $lang_tele, $lang_global, $output, $mangos_db, $realm_id, $itemperpage;
20
21 $sql = new SQL;
22 $sql->connect($mangos_db[$realm_id]['addr'], $mangos_db[$realm_id]['user'], $mangos_db[$realm_id]['pass'], $mangos_db[$realm_id]['name']);
23
24 $start = (isset($_GET['start'])) ? $sql->quote_smart($_GET['start']) : 0;
25 $order_by = (isset($_GET['order_by'])) ? $sql->quote_smart($_GET['order_by']) : "id";
26
27 $dir = (isset($_GET['dir'])) ? $sql->quote_smart($_GET['dir']) : 1;
28 $order_dir = ($dir) ? "ASC" : "DESC";
29 $dir = ($dir) ? 0 : 1;
30
31//get total number of items
32 $query_1 = $sql->query("SELECT count(*) FROM game_tele");
33 $all_record = $sql->result($query_1,0);
34 $query = $sql->query("SELECT id, name, map, position_x, position_y, position_z, orientation
35 FROM game_tele ORDER BY $order_by $order_dir LIMIT $start, $itemperpage");
36 $this_page = $sql->num_rows($query);
37
38//==========================top tage navigaion starts here========================
39 $output .="<center><table class=\"top_hidden\">
40 <tr><td width=\"80%\">
41 <table class=\"hidden\">
42 <tr><td>";
43 makebutton($lang_tele['add_new'], "tele.php?action=add_tele",80);
44 $output .="<form action=\"tele.php\" method=\"get\" name=\"form\">
45 <input type=\"hidden\" name=\"action\" value=\"search\" />
46 <input type=\"hidden\" name=\"error\" value=\"4\" />
47 <input type=\"text\" size=\"30\" name=\"search_value\" />
48 <select name=\"search_by\">
49 <option value=\"name\">{$lang_tele['loc_name']}</option>
50 <option value=\"id\">{$lang_tele['loc_id']}</option>
51 <option value=\"map\">{$lang_tele['on_map']}</option>
52 </select></form></td><td>";
53 makebutton($lang_global['search'], "javascript:do_submit()",80);
54 $output .= "</td></tr></table>
55 <td width=\"20%\" align=\"right\">";
56 $output .= generate_pagination("tele.php?action=browse_tele&amp;order_by=$order_by&amp;dir=".!$dir, $all_record, $itemperpage, $start);
57 $output .= "</td></tr></table>";
58//==========================top tage navigaion ENDS here ========================
59
60 $output .= "<script type=\"text/javascript\">
61 answerbox.btn_ok='{$lang_global['yes_low']}';
62 answerbox.btn_cancel='{$lang_global['no']}';
63 var question = '{$lang_global['are_you_sure']}';
64 var del_tele = 'tele.php?action=del_tele&amp;order_by=$order_by&amp;start=$start&amp;dir=$dir&amp;id=';
65 </script>
66 <table class=\"lined\">
67 <tr>
68 <th width=\"5%\">{$lang_global['delete_short']}</th>
69 <th width=\"5%\"><a href=\"tele.php?order_by=id&amp;start=$start&amp;dir=$dir\"".($order_by=='id' ? " class=\"$order_dir\"" : "").">{$lang_tele['id']}</a></th>
70 <th width=\"28%\"><a href=\"tele.php?order_by=name&amp;start=$start&amp;dir=$dir\"".($order_by=='name' ? " class=\"$order_dir\"" : "").">{$lang_tele['name']}</a></th>
71 <th width=\"22%\><a href=\"tele.php?order_by=map&amp;start=$start&amp;dir=$dir\"".($order_by=='map' ? " class=\"$order_dir\"" : "").">{$lang_tele['map']}</a></th>
72 <th width=\"9%\"><a href=\"tele.php?order_by=position_x&amp;start=$start&amp;dir=$dir\"".($order_by=='position_x' ? " class=\"$order_dir\"" : "").">{$lang_tele['x']}</a></th>
73 <th width=\"9%\"><a href=\"tele.php?order_by=position_y&amp;start=$start&amp;dir=$dir\"".($order_by=='position_y' ? " class=\"$order_dir\"" : "").">{$lang_tele['y']}</a></th>
74 <th width=\"9%\"><a href=\"tele.php?order_by=position_z&amp;start=$start&amp;dir=$dir\"".($order_by=='position_z' ? " class=\"$order_dir\"" : "").">{$lang_tele['z']}</a></th>
75 <th width=\"10%\"><a href=\"tele.php?order_by=orientation&amp;start=$start&amp;dir=$dir\"".($order_by=='orientation' ? " class=\"$order_dir\"" : "").">{$lang_tele['orientation']}</a></th>
76 </tr>";
77
78while ($data = $sql->fetch_row($query)){
79 $output .= "<tr>
80 <td><img src=\"img/aff_cross.png\" alt=\"\" onclick=\"answerBox('{$lang_global['delete']}: <font color=white>{$data[1]}</font> <br /> ' + question, del_tele + $data[0]);\" style=\"cursor:pointer;\" /></td>
81 <td>$data[0]</td>
82 <td><a href=\"tele.php?action=edit_tele&amp;id=$data[0]\">$data[1]</a></td>
83 <td>".get_map_name($data[2])." ($data[2])</td>
84 <td>$data[3]</td>
85 <td>$data[4]</td>
86 <td>$data[5]</td>
87 <td>$data[6]</td>
88 </tr>";
89}
90
91 $output .= "<tr><td colspan=\"8\" class=\"hidden\" align=\"right\">{$lang_tele['tot_locations']} : $all_record</td></tr>
92 </table></center>";
93
94 $sql->close();
95}
96
97
98//########################################################################################################################
99// SEARCH
100//########################################################################################################################
101function search() {
102 global $lang_tele, $lang_global, $output, $mangos_db, $realm_id, $sql_search_limit;
103
104 if(empty($_GET['search_value']) || empty($_GET['search_by'])) redirect("guild.php?error=2");
105
106 $sql = new SQL;
107 $sql->connect($mangos_db[$realm_id]['addr'], $mangos_db[$realm_id]['user'], $mangos_db[$realm_id]['pass'], $mangos_db[$realm_id]['name']);
108
109 $search_value = $sql->quote_smart($_GET['search_value']);
110 $search_by = $sql->quote_smart($_GET['search_by']);
111
112 $order_by = (isset($_GET['order_by'])) ? $sql->quote_smart($_GET['order_by']) : "id";
113 $dir = (isset($_GET['dir'])) ? $sql->quote_smart($_GET['dir']) : 1;
114 $order_dir = ($dir) ? "ASC" : "DESC";
115 $dir = ($dir) ? 0 : 1;
116
117 $query = $sql->query("SELECT id, name, map, position_x, position_y, position_z, orientation
118 FROM game_tele WHERE $search_by LIKE '%$search_value%' ORDER BY $order_by $order_dir LIMIT $sql_search_limit");
119 $total_found = $sql->num_rows($query);
120
121//==========================top tage navigaion starts here========================
122 $output .="<script type=\"text/javascript\">
123 answerbox.btn_ok='{$lang_global['yes_low']}';
124 answerbox.btn_cancel='{$lang_global['no']}';
125 var question = '{$lang_global['are_you_sure']}';
126 var del_tele = 'tele.php?action=del_tele&amp;order_by=$order_by&amp;dir=$dir&amp;id=';
127 </script>
128 <center><table class=\"top_hidden\">
129 <tr><td>";
130 makebutton($lang_tele['add_new'], "tele.php?action=add_tele",90);
131 $output .="<form action=\"tele.php\" method=\"get\" name=\"form\">
132 <input type=\"hidden\" name=\"action\" value=\"search\" />
133 <input type=\"hidden\" name=\"error\" value=\"4\" />
134 <input type=\"text\" size=\"45\" name=\"search_value\" />
135 <select name=\"search_by\">
136 <option value=\"name\">{$lang_tele['loc_name']}</option>
137 <option value=\"id\">{$lang_tele['loc_id']}</option>
138 <option value=\"map\">{$lang_tele['on_map']}</option>
139 </select></form></td><td>";
140 makebutton($lang_global['search'], "javascript:do_submit()",80);
141 makebutton($lang_global['back'], "javascript:window.history.back()", 80);
142$output .= "</td></tr></table>";
143//==========================top tage navigaion ENDS here ========================
144
145 $output .= "<table class=\"lined\">
146 <tr>
147 <th width=\"5%\">{$lang_global['delete_short']}</th>
148 <th width=\"5%\"><a href=\"tele.php?action=search&amp;error=4&amp;order_by=id&amp;search_by=$search_by&amp;search_value=$search_value&amp;dir=$dir\"".($order_by=='id' ? " class=\"$order_dir\"" : "").">{$lang_tele['id']}</a></th>
149 <th width=\"28%\"><a href=\"tele.php?action=search&amp;error=4&amp;order_by=name&amp;search_by=$search_by&amp;search_value=$search_value&amp;dir=$dir\"".($order_by=='name' ? " class=\"$order_dir\"" : "").">{$lang_tele['name']}</a></th>
150 <th width=\"22%\"><a href=\"tele.php?action=search&amp;error=4&amp;order_by=map&amp;search_by=$search_by&amp;search_value=$search_value&amp;dir=$dir\"".($order_by=='map' ? " class=\"$order_dir\"" : "").">{$lang_tele['map']}</a></th>
151 <th width=\"9%\"><a href=\"tele.php?action=search&amp;error=4&amp;order_by=position_x&amp;search_by=$search_by&amp;search_value=$search_value&amp;dir=$dir\"".($order_by=='position_x' ? " class=\"$order_dir\"" : "").">{$lang_tele['x']}</a></th>
152 <th width=\"9%\"><a href=\"tele.php?action=search&amp;error=4&amp;order_by=position_y&amp;search_by=$search_by&amp;search_value=$search_value&amp;dir=$dir\"".($order_by=='position_y' ? " class=\"$order_dir\"" : "").">{$lang_tele['y']}</a></th>
153 <th width=\"9%\"><a href=\"tele.php?action=search&amp;error=4&amp;order_by=position_z&amp;search_by=$search_by&amp;search_value=$search_value&amp;dir=$dir\"".($order_by=='position_z' ? " class=\"$order_dir\"" : "").">{$lang_tele['z']}</a></th>
154 <th width=\"10%\"><a href=\"tele.php?action=search&amp;error=4&amp;order_by=orientation&amp;search_by=$search_by&amp;search_value=$search_value&amp;dir=$dir\"".($order_by=='orientation' ? " class=\"$order_dir\"" : "").">{$lang_tele['orientation']}</a></th>
155 </tr>";
156
157while ($data = $sql->fetch_row($query)){
158 $output .= "<tr>
159 <td><img src=\"img/aff_cross.png\" alt=\"\" onclick=\"answerBox('{$lang_global['delete']}: <font color=white>{$data[1]}</font> <br /> ' + question, del_tele + $data[0]);\" style=\"cursor:pointer;\" /></td>
160 <td>$data[0]</td>
161 <td><a href=\"tele.php?action=edit_tele&amp;id=$data[0]\">$data[1]</a></td>
162 <td>".get_map_name($data[2])." ($data[2])</td>
163 <td>$data[3]</td>
164 <td>$data[4]</td>
165 <td>$data[5]</td>
166 <td>$data[6]</td>
167 </tr>";
168}
169
170 $output .= "<tr>
171 <td colspan=\"8\" class=\"hidden\" align=\"right\">{$lang_tele['total_found']} : $total_found {$lang_global['limit']} : $sql_search_limit</td>
172 </tr>
173 </table></center>";
174
175 $sql->close();
176}
177
178
179//########################################################################################################################
180// DO DELETE TELE FROM LIST
181//########################################################################################################################
182function del_tele() {
183 global $mangos_db, $realm_id;
184
185 $sql = new SQL;
186 $sql->connect($mangos_db[$realm_id]['addr'], $mangos_db[$realm_id]['user'], $mangos_db[$realm_id]['pass'], $mangos_db[$realm_id]['name']);
187
188 if(isset($_GET['id'])) $id = $sql->quote_smart($_GET['id']);
189 else redirect("Location: tele.php?error=1");
190
191 $start = (isset($_GET['start'])) ? $sql->quote_smart($_GET['start']) : 0;
192 $order_by = (isset($_GET['order_by'])) ? $sql->quote_smart($_GET['order_by']) : "id";
193 $dir = (isset($_GET['dir'])) ? $sql->quote_smart($_GET['dir']) : 1;
194 $dir = ($dir) ? 0 : 1;
195
196 $sql->query("DELETE FROM game_tele WHERE id = '$id'");
197
198 if ($sql->affected_rows() != 0) {
199 $sql->close();
200 redirect("tele.php?error=3&order_by=$order_by&start=$start&dir=$dir");
201 } else {
202 $sql->close();
203 redirect("tele.php?error=5");
204 }
205}
206
207
208//########################################################################################################################
209// EDIT TELE
210//########################################################################################################################
211function edit_tele() {
212 global $lang_tele, $lang_global, $output, $mangos_db, $realm_id, $map_id;
213
214 $sql = new SQL;
215 $sql->connect($mangos_db[$realm_id]['addr'], $mangos_db[$realm_id]['user'], $mangos_db[$realm_id]['pass'], $mangos_db[$realm_id]['name']);
216
217 if(isset($_GET['id'])) $id = $sql->quote_smart($_GET['id']);
218 else redirect("tele.php?error=1");
219
220 $query = $sql->query("SELECT id, name, map, position_x, position_y, position_z, orientation FROM game_tele WHERE id = '$id'");
221
222 if ($sql->num_rows($query) == 1) {
223 $tele = $sql->fetch_row($query);
224
225 $output .= "<script type=\"text/javascript\">
226 answerbox.btn_ok='{$lang_global['yes_low']}';
227 answerbox.btn_cancel='{$lang_global['no']}';
228 </script>
229 <center>
230 <fieldset class=\"half_frame\">
231 <legend>{$lang_tele['edit_tele']}</legend>
232 <form method=\"get\" action=\"tele.php\" name=\"form\">
233 <input type=\"hidden\" name=\"action\" value=\"do_edit_tele\" />
234 <input type=\"hidden\" name=\"id\" value=\"$id\" />
235 <table class=\"flat\">
236 <tr>
237 <td>{$lang_tele['loc_id']}</td>
238 <td>$tele[0]</td>
239 </tr>
240 <tr>
241 <td>{$lang_tele['loc_name']}</td>
242 <td><input type=\"text\" name=\"new_name\" size=\"42\" maxlength=\"98\" value=\"$tele[1]\" /></td>
243 </tr>
244 <tr>
245 <td>{$lang_tele['on_map']}</td>
246 <td><select name=\"new_map\">";
247 foreach ($map_id as $map){
248 $output .= "<option value=\"{$map[0]}\" ";
249 if ($tele[2] == $map[0]) $output .= "selected=\"selected\" ";
250 $output .= ">{$map[0]} : {$map[1]}</option>";
251 }
252 $output .= "</select></td>
253 </tr>
254 <tr>
255 <td>{$lang_tele['position_x']}</td>
256 <td><input type=\"text\" name=\"new_x\" size=\"42\" maxlength=\"36\" value=\"$tele[3]\" /></td>
257 </tr>
258 <tr>
259 <td>{$lang_tele['position_y']}</td>
260 <td><input type=\"text\" name=\"new_y\" size=\"42\" maxlength=\"36\" value=\"$tele[4]\" /></td>
261 </tr>
262 <tr>
263 <td>{$lang_tele['position_z']}</td>
264 <td><input type=\"text\" name=\"new_z\" size=\"42\" maxlength=\"36\" value=\"$tele[5]\" /></td>
265 </tr>
266 <tr>
267 <td>{$lang_tele['orientation']}</td>
268 <td><input type=\"text\" name=\"new_orientation\" size=\"42\" maxlength=\"36\" value=\"$tele[6]\" /></td>
269 </tr>
270 <tr><td>";
271 makebutton($lang_tele['delete_tele'], "#\" onclick=\"answerBox('{$lang_global['delete']}: <font color=white>{$tele[1]}</font> <br /> {$lang_global['are_you_sure']}', 'tele.php?action=del_tele&amp;id=$id');\" type=\"wrn",148);
272$output .= "</td><td>
273 <table class=\"hidden\">
274 <tr><td>";
275 makebutton($lang_tele['update_tele'], "javascript:do_submit()",130);
276 makebutton($lang_global['back'], "tele.php\" type=\"def",148);
277$output .= "</td></tr>
278 </table>";
279 $output .= "</td></tr>
280 </table>
281 </form></fieldset><br /><br /></center>";
282 } else error($lang_global['err_no_records_found']);
283
284 $sql->close();
285}
286
287
288//########################################################################################################################
289// DO EDIT TELE LOCATION
290//########################################################################################################################
291function do_edit_tele() {
292 global $mangos_db, $realm_id;
293
294 if( empty($_GET['id']) || !isset($_GET['new_name']) || !isset($_GET['new_map']) || !isset($_GET['new_x'])
295 || !isset($_GET['new_y'])|| !isset($_GET['new_z'])|| !isset($_GET['new_orientation']))
296 redirect("tele.php?error=1");
297
298 $sql = new SQL;
299 $sql->connect($mangos_db[$realm_id]['addr'], $mangos_db[$realm_id]['user'], $mangos_db[$realm_id]['pass'], $mangos_db[$realm_id]['name']);
300
301 $id = $sql->quote_smart($_GET['id']);
302 $new_name = $sql->quote_smart($_GET['new_name']);
303 $new_map = $sql->quote_smart($_GET['new_map']);
304 $new_x = $sql->quote_smart($_GET['new_x']);
305 $new_y = $sql->quote_smart($_GET['new_y']);
306 $new_z = $sql->quote_smart($_GET['new_z']);
307 $new_orientation = $sql->quote_smart($_GET['new_orientation']);
308
309 $sql->query("UPDATE game_tele SET position_x='$new_x', position_y ='$new_y', position_z ='$new_z', orientation ='$new_orientation', map ='$new_map', name ='$new_name' WHERE id = '$id'");
310
311 if ($sql->affected_rows()) {
312 $sql->close();
313 redirect("tele.php?error=3");
314 } else {
315 $sql->close();
316 redirect("tele.php?error=5");
317 }
318}
319
320
321//########################################################################################################################
322// ADD NEW TELE
323//########################################################################################################################
324function add_tele() {
325 global $output, $lang_tele, $lang_global, $map_id;
326
327 $output .= "<center>
328 <fieldset class=\"half_frame\">
329 <legend>{$lang_tele['add_new_tele']}</legend>
330 <form method=\"get\" action=\"tele.php\" name=\"form\">
331 <input type=\"hidden\" name=\"action\" value=\"do_add_tele\" />
332 <table class=\"flat\">
333 <tr>
334 <td>{$lang_tele['loc_name']}</td>
335 <td><input type=\"text\" name=\"name\" size=\"42\" maxlength=\"98\" value=\"{$lang_tele['name']}\" /></td>
336 </tr>
337 <tr>
338 <td>{$lang_tele['on_map']}</td>
339 <td><select name=\"map\">";
340 foreach ($map_id as $map) $output .= "<option value=\"{$map[0]}\">{$map[0]} : {$map[1]}</option>";
341 $output .= "</select></td>
342 </tr>
343 <tr>
344 <td>{$lang_tele['position_x']}</td>
345 <td><input type=\"text\" name=\"x\" size=\"42\" maxlength=\"36\" value=\"0.0000\" /></td>
346 </tr>
347 <tr>
348 <td>{$lang_tele['position_y']}</td>
349 <td><input type=\"text\" name=\"y\" size=\"42\" maxlength=\"36\" value=\"0.0000\" /></td>
350 </tr>
351 <tr>
352 <td>{$lang_tele['position_z']}</td>
353 <td><input type=\"text\" name=\"z\" size=\"42\" maxlength=\"36\" value=\"0.0000\" /></td>
354 </tr>
355 <tr>
356 <td>{$lang_tele['orientation']}</td>
357 <td><input type=\"text\" name=\"orientation\" size=\"42\" maxlength=\"36\" value=\"0\" /></td>
358 </tr>
359 <tr><td>";
360 makebutton($lang_tele['add_new'], "javascript:do_submit()",130);
361$output .= "</td><td>
362 <table class=\"hidden\">
363 <tr><td>";
364 makebutton($lang_global['back'], "tele.php",310);
365$output .= "</td></tr>
366 </table>";
367 $output .= "</td></tr>
368 </table>
369 </form></fieldset><br /><br /></center>";
370}
371
372
373//########################################################################################################################
374// DO ADD TELE LOCATION
375//########################################################################################################################
376function do_add_tele() {
377 global $mangos_db, $realm_id;
378
379 if( !isset($_GET['name']) || !isset($_GET['map']) || !isset($_GET['x'])
380 || !isset($_GET['y'])|| !isset($_GET['z'])|| !isset($_GET['orientation']))
381 redirect("tele.php?error=1");
382
383 $sql = new SQL;
384 $sql->connect($mangos_db[$realm_id]['addr'], $mangos_db[$realm_id]['user'], $mangos_db[$realm_id]['pass'], $mangos_db[$realm_id]['name']);
385
386 $name = $sql->quote_smart($_GET['name']);
387 $map = $sql->quote_smart($_GET['map']);
388 $x = $sql->quote_smart($_GET['x']);
389 $y = $sql->quote_smart($_GET['y']);
390 $z = $sql->quote_smart($_GET['z']);
391 $orientation = $sql->quote_smart($_GET['orientation']);
392
393 $sql->query("INSERT INTO game_tele VALUES (NULL,'$x','$y', '$z' ,'$orientation' ,'$map' ,'$name')");
394
395 if ($sql->affected_rows()) {
396 $sql->close();
397 redirect("tele.php?error=3");
398 } else {
399 $sql->close();
400 redirect("tele.php?error=5");
401 }
402}
403
404
405//########################################################################################################################
406// MAIN
407//########################################################################################################################
408$err = (isset($_GET['error'])) ? $_GET['error'] : NULL;
409
410$output .= "<div class=\"top\">";
411switch ($err) {
412case 1:
413 $output .= "<h1><font class=\"error\">{$lang_global['empty_fields']}</font></h1>";
414 break;
415case 2:
416 $output .= "<h1><font class=\"error\">{$lang_global['err_no_search_passed']}</font></h1>";
417 break;
418case 3:
419 $output .= "<h1><font class=\"error\">{$lang_tele['tele_updated']}</font></h1>";
420 break;
421case 4:
422 $output .= "<h1><font class=\"error\">{$lang_tele['search_results']}</font></h1>";
423 break;
424case 5:
425 $output .= "<h1><font class=\"error\">{$lang_tele['error_updating']}</font></h1>";
426 break;
427default: //no error
428 $output .= "<h1>{$lang_tele['tele_locations']}</h1>";
429}
430$output .= "</div>";
431
432$action = (isset($_GET['action'])) ? $_GET['action'] : NULL;
433
434switch ($action) {
435case "browse_tele":
436 browse_tele();
437 break;
438case "search":
439 search();
440 break;
441case "edit_tele":
442 edit_tele();
443 break;
444case "do_edit_tele":
445 do_edit_tele();
446 break;
447case "add_tele":
448 add_tele();
449 break;
450case "do_add_tele":
451 do_add_tele();
452 break;
453case "del_tele":
454 del_tele();
455 break;
456default:
457 browse_tele();
458}
459
460require_once("footer.php");
461?>
Note: See TracBrowser for help on using the repository browser.