source: trunk/test_server/char_achieve.php@ 649

Last change on this file since 649 was 649, checked in by barny, 15 years ago

*Přidán minimanager pro test server

File size: 29.5 KB
Line 
1<?php
2
3
4// page header, and any additional required libraries
5require_once 'header.php';
6require_once 'libs/char_lib.php';
7require_once 'libs/archieve_lib.php';
8// minimum permission to view page
9valid_login($action_permission['read']);
10
11//#############################################################################
12// SHOW CHARACTERS ACHIEVEMENTS
13//#############################################################################
14function char_achievements(&$sqlr, &$sqlc)
15{
16 global $output, $lang_global, $lang_char,
17 $realm_id, $characters_db, $mmfpm_db,
18 $action_permission, $user_lvl, $user_name,
19 $achievement_datasite;
20
21 // this page uses wowhead tooltops
22 wowhead_tt();
23
24 // we need at least an id or we would have nothing to show
25 if (empty($_GET['id']))
26 error($lang_global['empty_fields']);
27
28 // this is multi realm support, as of writing still under development
29 // this page is already implementing it
30 if (empty($_GET['realm']))
31 $realmid = $realm_id;
32 else
33 {
34 $realmid = $sqlr->quote_smart($_GET['realm']);
35 if (is_numeric($realmid))
36 $sqlc->connect($characters_db[$realmid]['addr'], $characters_db[$realmid]['user'], $characters_db[$realmid]['pass'], $characters_db[$realmid]['name']);
37 else
38 $realmid = $realm_id;
39 }
40
41 //-------------------SQL Injection Prevention--------------------------------
42 // no point going further if we don have a valid ID
43 $id = $sqlc->quote_smart($_GET['id']);
44 if (is_numeric($id));
45 else error($lang_global['empty_fields']);
46
47 $show_type = (isset($_POST['show_type'])) ? $sqlc->quote_smart($_POST['show_type']) : 0;
48 if (is_numeric($show_type)); else $show_type = 0;
49
50 // getting character data from database
51 $result = $sqlc->query('SELECT account, name, race, class, level, gender
52 FROM characters WHERE guid = '.$id.' LIMIT 1');
53
54 // no point going further if character does not exist
55 if ($sqlc->num_rows($result))
56 {
57 $char = $sqlc->fetch_assoc($result);
58
59 // we get user permissions first
60 $owner_acc_id = $sqlc->result($result, 0, 'account');
61 $result = $sqlr->query('SELECT gmlevel, username FROM account WHERE id = '.$char['account'].'');
62 $owner_gmlvl = $sqlr->result($result, 0, 'gmlevel');
63 $owner_name = $sqlr->result($result, 0, 'username');
64
65 // check user permission
66 if ( ($user_lvl > $owner_gmlvl) || ($owner_name === $user_name) )
67 {
68 //------------------------Character Tabs---------------------------------
69 // we start with a lead of 10 spaces,
70 // because last line of header is an opening tag with 8 spaces
71 // keep html indent in sync, so debuging from browser source would be easy to read
72 $output .= '
73 <!-- start of char_achieve.php -->
74 <center>
75 <script type="text/javascript">
76 function expand(thistag)
77 {
78 var i = 0;
79 %%REPLACE%%
80
81 if (thistag == \'tsummary\')
82 {
83 document.getElementById(\'tsummary\').style.display="table";
84 document.getElementById(\'divsummary\').innerHTML = \'[-] '.$lang_char['summary'].'\' ;
85 for(x in main_cats)
86 {
87 if(document.getElementById(main_cats[x]).style.display=="table")
88 {
89 document.getElementById(main_cats[x]).style.display="none";
90 document.getElementById(main_cats_achieve[x]).style.display="none";
91 document.getElementById(main_cats_div[x]).innerHTML = \'[+] \' + main_cats_name[x];
92 }
93 }
94 for(x in main_sub_cats)
95 {
96 if(document.getElementById(main_sub_cats_achieve[x]).style.display=="table")
97 {
98 document.getElementById(main_sub_cats_achieve[x]).style.display="none";
99 document.getElementById(main_sub_cats_div[x]).innerHTML = \'[+] \' + main_sub_cats_name[x];
100 }
101 }
102 }
103 else
104 {
105 if (document.getElementById(\'tsummary\').style.display="table")
106 {
107 document.getElementById(\'tsummary\').style.display="none";
108 document.getElementById(\'divsummary\').innerHTML = \'[+] '.$lang_char['summary'].'\' ;
109 }
110 for(x in main_cats)
111 {
112 if (main_cats[x] == thistag)
113 {
114 i = 1;
115 }
116 }
117
118 if (i == 1)
119 {
120 for(x in main_cats)
121 {
122 if (main_cats[x] == thistag)
123 {
124 if(document.getElementById(main_cats[x]).style.display=="table")
125 {
126 document.getElementById(main_cats[x]).style.display="none";
127 document.getElementById(main_cats_achieve[x]).style.display="none";
128 document.getElementById(main_cats_div[x]).innerHTML = \'[+] \' + main_cats_name[x];
129 document.getElementById(\'tsummary\').style.display="table";
130 document.getElementById(\'divsummary\').innerHTML = \'[-] '.$lang_char['summary'].'\' ;
131 }
132 else
133 {
134 document.getElementById(main_cats[x]).style.display="table";
135 document.getElementById(main_cats_achieve[x]).style.display="table";
136 document.getElementById(main_cats_div[x]).innerHTML = \'[-] \' + main_cats_name[x];
137 }
138 }
139 else
140 {
141 if(document.getElementById(main_cats[x]).style.display=="table")
142 {
143 document.getElementById(main_cats[x]).style.display="none";
144 document.getElementById(main_cats_achieve[x]).style.display="none";
145 document.getElementById(main_cats_div[x]).innerHTML = \'[+] \' + main_cats_name[x];
146 }
147 }
148 }
149 for(x in main_sub_cats)
150 {
151 if(document.getElementById(main_sub_cats_achieve[x]).style.display=="table")
152 {
153 document.getElementById(main_sub_cats_achieve[x]).style.display="none";
154 document.getElementById(main_sub_cats_div[x]).innerHTML = \'[+] \' + main_sub_cats_name[x];
155 }
156 }
157 }
158 else if (i == 0)
159 {
160 for(x in main_sub_cats)
161 {
162 if (main_sub_cats[x] == thistag)
163 {
164 if(document.getElementById(main_sub_cats_achieve[x]).style.display=="table")
165 {
166 document.getElementById(main_sub_cats_achieve[x]).style.display="none";
167 document.getElementById(main_sub_cats_div[x]).innerHTML = \'[+] \' + main_sub_cats_name[x];
168 }
169 else
170 {
171 document.getElementById(main_sub_cats_achieve[x]).style.display="table";
172 document.getElementById(main_sub_cats_div[x]).innerHTML = \'[-] \' + main_sub_cats_name[x];
173 }
174 }
175 else
176 {
177 if(document.getElementById(main_sub_cats_achieve[x]).style.display=="table")
178 {
179 document.getElementById(main_sub_cats_achieve[x]).style.display="none";
180 document.getElementById(main_sub_cats_div[x]).innerHTML = \'[+] \' + main_sub_cats_name[x];
181 }
182 }
183 }
184 for(x in main_cats)
185 {
186 if(document.getElementById(main_cats_achieve[x]).style.display=="table")
187 {
188 document.getElementById(main_cats_achieve[x]).style.display="none";
189 }
190 }
191 }
192 }
193 }
194 </script>
195 <div id="tab">
196 <ul>
197 <li><a href="char.php?id='.$id.'&amp;realm='.$realmid.'">'.$lang_char['char_sheet'].'</a></li>
198 <li><a href="char_inv.php?id='.$id.'&amp;realm='.$realmid.'">'.$lang_char['inventory'].'</a></li>
199 '.(($char['level'] < 10) ? '' : '<li><a href="char_talent.php?id='.$id.'&amp;realm='.$realmid.'">'.$lang_char['talents'].'</a></li>').'
200 <li id="selected"><a href="char_achieve.php?id='.$id.'&amp;realm='.$realmid.'">'.$lang_char['achievements'].'</a></li>
201 <li><a href="char_quest.php?id='.$id.'&amp;realm='.$realmid.'">'.$lang_char['quests'].'</a></li>
202 <li><a href="char_friends.php?id='.$id.'&amp;realm='.$realmid.'">'.$lang_char['friends'].'</a></li>
203 </ul>
204 </div>
205 <div id="tab_content">
206 <font class="bold">
207 '.htmlentities($char['name']).' -
208 <img src="img/c_icons/'.$char['race'].'-'.$char['gender'].'.gif"
209 onmousemove="toolTip(\''.char_get_race_name($char['race']).'\', \'item_tooltip\')" onmouseout="toolTip()" alt="" />
210 <img src="img/c_icons/'.$char['class'].'.gif"
211 onmousemove="toolTip(\''.char_get_class_name($char['class']).'\', \'item_tooltip\')" onmouseout="toolTip()" alt="" /> - lvl '.char_get_level_color($char['level']).'
212 </font>
213 <br /><br />';
214 //---------------Page Specific Data Starts Here--------------------------
215
216 $sqlm = new SQL;
217 $sqlm->connect($mmfpm_db['addr'], $mmfpm_db['user'], $mmfpm_db['pass'], $mmfpm_db['name']);
218
219 $output .= '
220 <table class="top_hidden" style="width: 90%;">
221 <tr>
222 <td width="30%">
223 </td>
224 %%REPLACE_POINTS%%
225 <td align="right">
226 <form action="char_achieve.php?id='.$id.'&amp;realm='.$realmid.'" method="post" name="form">
227 '.$lang_char['show'].' :
228 <select name="show_type">
229 <option value="1"';
230 if (1 == $show_type)
231 $output .= ' selected="selected"';
232 $output .= '>'.$lang_char['all'].'</option>
233 <option value="0"';
234 if (0 == $show_type)
235 $output .= ' selected="selected"';
236 $output .= '>'.$lang_char['earned'].'</option>
237 <option value="2"';
238 if (2 == $show_type)
239 $output .= ' selected="selected"';
240 $output .= '>'.$lang_char['incomplete'].'</option>
241 </select>
242 </form>
243 </td>
244 <td align="right">';
245 makebutton('View', 'javascript:do_submit()', 130);
246 $output .= '
247 </td>
248 </tr>
249 </table>
250 <table class="lined" style="width: 90%;">
251 <tr valign="top">
252 <td width="30%">
253 <table class="hidden" style="width: 100%">
254 <tr>
255 <th align="left">
256 <div id="divsummary" onclick="expand(\'tsummary\')">[-] '.$lang_char['summary'].'</div>
257 </th>
258 </tr>
259 <tr>
260 <td>
261 </td>
262 </tr>';
263 $result = $sqlc->query('SELECT achievement, date FROM character_achievement WHERE guid = '.$id.'');
264 $char_achieve = array();
265 while ($temp = $sqlc->fetch_assoc($result))
266 $char_achieve[$temp['achievement']] = $temp['date'];
267 $result = $sqlc->query('SELECT achievement, date FROM character_achievement WHERE guid = \''.$id.'\' order by date DESC limit 4');
268
269 $points = 0;
270
271 $main_cats = achieve_get_main_category($sqlm);
272 $sub_cats = achieve_get_sub_category($sqlm);
273
274 $output_achieve_main_cat = array();
275 $output_u_achieve_main_cat = array();
276 $output_achieve_sub_cat = array();
277 $output_u_achieve_sub_cat = array();
278
279 $js_main_cats = '
280 var main_cats = new Array();
281 var main_cats_div = new Array();
282 var main_cats_name = new Array();
283 var main_cats_achieve = new Array();
284 var main_sub_cats = new Array();
285 var main_sub_cats_div = new Array();
286 var main_sub_cats_name = new Array();
287 var main_sub_cats_achieve = new Array();';
288
289 foreach($main_cats as $cat_id => $cat)
290 {
291 if (isset($cat['name01']))
292 {
293 $i=0;
294 $output_achieve_main_cat[$cat_id] = '';
295 $output_u_achieve_main_cat[$cat_id] = '';
296 $achieve_main_cat = achieve_get_id_category($cat['id'], $sqlm);
297 foreach($achieve_main_cat as $achieve_id => $cid)
298 {
299 if (isset($achieve_id) && isset($cid['id']))
300 {
301 if (isset($char_achieve[$cid['id']]))
302 {
303 if (2 > $show_type)
304 {
305 $cid['name01'] = str_replace('&', '&amp;', $cid['name01']);
306 $cid['description01'] = str_replace('&', '&amp;', $cid['description01']);
307 $cid['rewarddesc01'] = str_replace('&', '&amp;', $cid['rewarddesc01']);
308 $output_achieve_main_cat[$cat_id] .= '
309 <tr>
310 <td width="1%" align="left">
311 <a href="'.$achievement_datasite.$cid['id'].'" target="_blank">
312 <img src="'.achieve_get_icon($cid['id'], $sqlm).'" width="36" height="36" class="icon_border_0" alt="" />
313 </a>
314 </td>
315 <td colspan="2" align="left">
316 <a href="'.$achievement_datasite.$cid['id'].'" target="_blank">'.$cid['name01'].'</a><br />
317 '.$cid['description01'].'<br />
318 '.$cid['rewarddesc01'].'
319 </td>
320 <td width="5%" align="right">'.$cid['rewpoints'].' <img src="img/money_achievement.gif" alt="" /></td>
321 <td width="15%" align="right">'.date('o-m-d', $char_achieve[$cid['id']]).'</td>
322 </tr>';
323 ++$i;
324 }
325 $points += $cid['rewpoints'];
326 }
327 elseif ($show_type && isset($achieve_id))
328 {
329 $cid['name01'] = str_replace('&', '&amp;', $cid['name01']);
330 $cid['description01'] = str_replace('&', '&amp;', $cid['description01']);
331 $cid['rewarddesc01'] = str_replace('&', '&amp;', $cid['rewarddesc01']);
332 $output_u_achieve_main_cat[$cat_id] .= '
333 <tr>
334 <td width="1%" align="left">
335 <a href="'.$achievement_datasite.$cid['id'].'" target="_blank">
336 <span style="opacity:0.2;">
337 <img src="'.achieve_get_icon($cid['id'], $sqlm).'" width="36" height="36" class="icon_border_0" alt="" />
338 </span>
339 </a>
340 </td>
341 <td colspan="2" align="left">
342 <a href="'.$achievement_datasite.$cid['id'].'" target="_blank">'.$cid['name01'].'</a><br />
343 '.$cid['description01'].'<br />
344 '.$cid['rewarddesc01'].'
345 </td>
346 <td width="5%" align="right">'.$cid['rewpoints'].' <img src="img/money_achievement.gif" alt="" /></td>
347 <td width="15%" align="right">'.$lang_char['incomplete'].'</td>
348 </tr>';
349 ++$i;
350 }
351 }
352 }
353 unset($achieve_main_cat);
354 $output_achieve_main_cat[$cat_id] = '
355 <table class="hidden" id="ta'.$cat_id.'" style="width: 100%; display: none;">
356 <tr>
357 <th colspan="3" align="left">'.$lang_char['achievement_title'].'</th>
358 <th width="5%">'.$lang_char['achievement_points'].'</th>
359 <th width="15%">'.$lang_char['achievement_date'].'</th>
360 </tr>'.$output_achieve_main_cat[$cat_id].$output_u_achieve_main_cat[$cat_id].'
361 </table>';
362 unset($output_u_achieve_main_cat);
363 $js_main_cats .='
364 main_cats_achieve['.$cat_id.'] = "ta'.$cat_id.'";';
365
366 $output_sub_cat = '';
367 $total_sub_cat = 0;
368 if (isset($sub_cats[$cat['id']]))
369 {
370 $main_sub_cats = $sub_cats[$cat['id']];
371 foreach($main_sub_cats as $sub_cat_id => $sub_cat)
372 {
373 if (isset($sub_cat))
374 {
375 $j=0;
376 $output_achieve_sub_cat[$sub_cat_id] = '';
377 $output_u_achieve_sub_cat[$sub_cat_id] = '';
378 $achieve_sub_cat = achieve_get_id_category($sub_cat_id, $sqlm);
379 foreach($achieve_sub_cat as $achieve_id => $cid)
380 {
381 if (isset($achieve_id) && isset($cid['id']))
382 {
383 if (isset($char_achieve[$cid['id']]))
384 {
385 if (2 > $show_type)
386 {
387 $cid['name01'] = str_replace('&', '&amp;', $cid['name01']);
388 $cid['description01'] = str_replace('&', '&amp;', $cid['description01']);
389 $cid['rewarddesc01'] = str_replace('&', '&amp;', $cid['rewarddesc01']);
390 $output_achieve_sub_cat[$sub_cat_id] .= '
391 <tr>
392 <td width="1%" align="left">
393 <a href="'.$achievement_datasite.$cid['id'].'" target="_blank">
394 <img src="'.achieve_get_icon($cid['id'], $sqlm).'" width="36" height="36" class="icon_border_0" alt="" />
395 </a>
396 </td>
397 <td colspan="2" align="left">
398 <a href="'.$achievement_datasite.$cid['id'].'" target="_blank">'.$cid['name01'].'</a><br />
399 '.$cid['description01'].'<br />
400 '.$cid['rewarddesc01'].'
401 </td>
402 <td width="5%" align="right">'.$cid['rewpoints'].' <img src="img/money_achievement.gif" alt="" /></td>
403 <td width="15%" align="right">'.date('o-m-d', $char_achieve[$cid['id']]).'</td>
404 </tr>';
405 ++$j;
406 }
407 $points += $cid['rewpoints'];
408 }
409 elseif ($show_type && isset($achieve_id))
410 {
411 $cid['name01'] = str_replace('&', '&amp;', $cid['name01']);
412 $cid['description01'] = str_replace('&', '&amp;', $cid['description01']);
413 $cid['rewarddesc01'] = str_replace('&', '&amp;', $cid['rewarddesc01']);
414 $output_u_achieve_sub_cat[$sub_cat_id] .= '
415 <tr>
416 <td width="1%" align="left">
417 <a href="'.$achievement_datasite.$cid['id'].'" target="_blank">
418 <span style="opacity:0.2;">
419 <img src="'.achieve_get_icon($cid['id'], $sqlm).'" width="36" height="36" class="icon_border_0" alt="" />
420 </span>
421 </a>
422 </td>
423 <td colspan="2" align="left">
424 <a href="'.$achievement_datasite.$cid['id'].'" target="_blank">'.$cid['name01'].'</a><br />
425 '.$cid['description01'].'<br />
426 '.$cid['rewarddesc01'].'
427 </td>
428 <td width="5%" align="right">'.$cid['rewpoints'].' <img src="img/money_achievement.gif" alt="" /></td>
429 <td width="15%" align="right">'.$lang_char['incomplete'].'</td>
430 </tr>';
431 ++$j;
432 }
433 }
434 }
435 unset($achieve_sub_cat);
436 $total_sub_cat = $total_sub_cat + $j;
437 if($j)
438 {
439 $sub_cat['name01'] = str_replace('&', '&amp;', $sub_cat['name01']);
440 $output_sub_cat .='
441 <tr>
442 <th align="left">
443 <div id="divs'.$sub_cat_id.'" onclick="expand(\'tsa'.$sub_cat_id.'\');">[+] '.$sub_cat.' ('.$j.')</div>
444 </th>
445 </tr>';
446 $js_main_cats .='
447 main_sub_cats['.$sub_cat_id.'] = "tsa'.$sub_cat_id.'";
448 main_sub_cats_div['.$sub_cat_id.'] = "divs'.$sub_cat_id.'";
449 main_sub_cats_name['.$sub_cat_id.'] = "'.$sub_cat.' ('.$j.')";';
450 $output_achieve_sub_cat[$sub_cat_id] = '
451 <table class="hidden" id="tsa'.$sub_cat_id.'" style="width: 100%; display: none;">
452 <tr>
453 <th colspan="3" align="left">'.$lang_char['achievement_title'].'</th>
454 <th width="5%">'.$lang_char['achievement_points'].'</th>
455 <th width="15%">'.$lang_char['achievement_date'].'</th>
456 </tr>'.$output_achieve_sub_cat[$sub_cat_id].$output_u_achieve_sub_cat[$sub_cat_id].'
457 </table>';
458 unset($output_u_achieve_sub_cat);
459 $js_main_cats .='
460 main_sub_cats_achieve['.$sub_cat_id.'] = "tsa'.$sub_cat_id.'";';
461 }
462 }
463 }
464 unset($main_sub_cats);
465 }
466 if($total_sub_cat || $i)
467 {
468 $cat['name01'] = str_replace('&', '&amp;', $cat['name01']);
469 $output .='
470 <tr>
471 <th align="left">
472 <div id="div'.$cat_id.'" onclick="expand(\'t'.$cat_id.'\');">[+] '.$cat['name01'].' ('.($i+$total_sub_cat).')</div>
473 </th>
474 </tr>
475 <tr>
476 <td>
477 <table class="hidden" id="t'.$cat_id.'" style="width: 100%; display: none;">'.$output_sub_cat.'
478 </table>
479 </td>
480 </tr>';
481 $js_main_cats .='
482 main_cats['.$cat_id.'] = "t'.$cat_id.'";
483 main_cats_div['.$cat_id.'] = "div'.$cat_id.'";
484 main_cats_name['.$cat_id.'] = "'.$cat['name01'].' ('.($i+$total_sub_cat).')";';
485 }
486 unset($output_sub_cat);
487 }
488 }
489 unset($sub_cats);
490 unset($main_cats);
491 unset($char_achieve);
492
493 $output = str_replace('%%REPLACE%%', $js_main_cats, $output);
494 unset($js_main_cats);
495 $output = str_replace('%%REPLACE_POINTS%%', '
496 <td align="right">
497 '.$lang_char['achievements'].' '.$lang_char['achievement_points'].': '.$points.'
498 </td>', $output);
499 unset($point);
500 $output .= '
501 </table>
502 </td>
503 <td>';
504
505 foreach($output_achieve_main_cat as $temp)
506 $output .= $temp;
507 foreach($output_achieve_sub_cat as $temp)
508 $output .= $temp;
509 unset($temp);
510 unset($output_achieve_main_cat);
511 unset($output_achieve_sub_cat);
512
513 $output .= '
514 <table class="hidden" id="tsummary" style="width: 100%; display: table;">
515 <tr>
516 <th colspan="5">
517 '.$lang_char['recent'].' '.$lang_char['achievements'].'
518 </th>
519 </tr>
520 <tr>
521 <th colspan="3" align="left">'.$lang_char['achievement_title'].'</th>
522 <th width="5%">'.$lang_char['achievement_points'].'</th>
523 <th width="15%">'.$lang_char['achievement_date'].'</th>
524 </tr>';
525 while ($temp = $sqlc->fetch_assoc($result))
526 {
527 $cid = achieve_get_details($temp['achievement'], $sqlm);
528 $cid['name01'] = str_replace('&', '&amp;', $cid['name01']);
529 $cid['description01'] = str_replace('&', '&amp;', $cid['description01']);
530 $cid['rewarddesc01'] = str_replace('&', '&amp;', $cid['rewarddesc01']);
531 $output .= '
532 <tr>
533 <td width="1%" align="left">
534 <a href="'.$achievement_datasite.$cid['id'].'" target="_blank">
535 <img src="'.achieve_get_icon($cid['id'], $sqlm).'" width="36" height="36" class="icon_border_0" alt="" />
536 </a>
537 </td>
538 <td colspan="2" align="left">
539 <a href="'.$achievement_datasite.$cid['id'].'" target="_blank">'.$cid['name01'].'</a><br />
540 '.$cid['description01'].'<br />
541 '.$cid['rewarddesc01'].'
542 </td>
543 <td width="5%" align="right">'.$cid['rewpoints'].' <img src="img/money_achievement.gif" alt="" /></td>
544 <td width="15%" align="right">'.date('o-m-d', $temp['date']).'</td>
545 </tr>';
546 }
547 unset($cid);
548 unset($temp);
549 unset($result);
550 $output .= '
551 </table>
552 </td>';
553 //---------------Page Specific Data Ends here----------------------------
554 //---------------Character Tabs Footer-----------------------------------
555 $output .= '
556 </tr>
557 </table>
558 </div>
559 <br />
560 <table class="hidden">
561 <tr>
562 <td>';
563 // button to user account page, user account page has own security
564 makebutton($lang_char['chars_acc'], 'user.php?action=edit_user&amp;id='.$owner_acc_id.'', 130);
565 $output .= '
566 </td>
567 <td>';
568
569 // only higher level GM with delete access can edit character
570 // character edit allows removal of character items, so delete permission is needed
571 if ( ($user_lvl > $owner_gmlvl) && ($user_lvl >= $action_permission['delete']) )
572 {
573 makebutton($lang_char['edit_button'], 'char_edit.php?id='.$id.'&amp;realm='.$realmid.'', 130);
574 $output .= '
575 </td>
576 <td>';
577 }
578 // only higher level GM with delete access, or character owner can delete character
579 if ( ( ($user_lvl > $owner_gmlvl) && ($user_lvl >= $action_permission['delete']) ) || ($owner_name === $user_name) )
580 {
581 makebutton($lang_char['del_char'], 'char_list.php?action=del_char_form&amp;check%5B%5D='.$id.'" type="wrn', 130);
582 $output .= '
583 </td>
584 <td>';
585 }
586 // only GM with update permission can send mail, mail can send items, so update permission is needed
587 if ($user_lvl >= $action_permission['update'])
588 {
589 makebutton($lang_char['send_mail'], 'mail.php?type=ingame_mail&amp;to='.$char['name'].'', 130);
590 $output .= '
591 </td>
592 <td>';
593 }
594 makebutton($lang_global['back'], 'javascript:window.history.back()" type="def', 130);
595 $output .= '
596 </td>
597 </tr>
598 </table>
599 <br />
600 </center>
601 <!-- end of char_achieve.php -->';
602 }
603 else
604 error($lang_char['no_permission']);
605 }
606 else
607 error($lang_char['no_char_found']);
608
609}
610
611
612//#############################################################################
613// MAIN
614//#############################################################################
615
616// action variable reserved for future use
617//$action = (isset($_GET['action'])) ? $_GET['action'] : NULL;
618
619// load language
620$lang_char = lang_char();
621
622// we getting links to realm database and character database left behind by header
623// header does not need them anymore, might as well reuse the link
624char_achievements($sqlr, $sqlc);
625
626//unset($action);
627unset($action_permission);
628unset($lang_char);
629
630require_once 'footer.php';
631
632
633?>
Note: See TracBrowser for help on using the repository browser.