1 | <?php
|
---|
2 |
|
---|
3 |
|
---|
4 | // page header, and any additional required libraries
|
---|
5 | require_once 'header.php';
|
---|
6 | require_once 'libs/char_lib.php';
|
---|
7 | require_once 'libs/archieve_lib.php';
|
---|
8 | // minimum permission to view page
|
---|
9 | valid_login($action_permission['read']);
|
---|
10 |
|
---|
11 | //#############################################################################
|
---|
12 | // SHOW CHARACTERS ACHIEVEMENTS
|
---|
13 | //#############################################################################
|
---|
14 | function 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.'&realm='.$realmid.'">'.$lang_char['char_sheet'].'</a></li>
|
---|
198 | <li><a href="char_inv.php?id='.$id.'&realm='.$realmid.'">'.$lang_char['inventory'].'</a></li>
|
---|
199 | '.(($char['level'] < 10) ? '' : '<li><a href="char_talent.php?id='.$id.'&realm='.$realmid.'">'.$lang_char['talents'].'</a></li>').'
|
---|
200 | <li id="selected"><a href="char_achieve.php?id='.$id.'&realm='.$realmid.'">'.$lang_char['achievements'].'</a></li>
|
---|
201 | <li><a href="char_quest.php?id='.$id.'&realm='.$realmid.'">'.$lang_char['quests'].'</a></li>
|
---|
202 | <li><a href="char_friends.php?id='.$id.'&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.'&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('&', '&', $cid['name01']);
|
---|
306 | $cid['description01'] = str_replace('&', '&', $cid['description01']);
|
---|
307 | $cid['rewarddesc01'] = str_replace('&', '&', $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('&', '&', $cid['name01']);
|
---|
330 | $cid['description01'] = str_replace('&', '&', $cid['description01']);
|
---|
331 | $cid['rewarddesc01'] = str_replace('&', '&', $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('&', '&', $cid['name01']);
|
---|
388 | $cid['description01'] = str_replace('&', '&', $cid['description01']);
|
---|
389 | $cid['rewarddesc01'] = str_replace('&', '&', $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('&', '&', $cid['name01']);
|
---|
412 | $cid['description01'] = str_replace('&', '&', $cid['description01']);
|
---|
413 | $cid['rewarddesc01'] = str_replace('&', '&', $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('&', '&', $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('&', '&', $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('&', '&', $cid['name01']);
|
---|
529 | $cid['description01'] = str_replace('&', '&', $cid['description01']);
|
---|
530 | $cid['rewarddesc01'] = str_replace('&', '&', $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&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.'&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&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&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
|
---|
624 | char_achievements($sqlr, $sqlc);
|
---|
625 |
|
---|
626 | //unset($action);
|
---|
627 | unset($action_permission);
|
---|
628 | unset($lang_char);
|
---|
629 |
|
---|
630 | require_once 'footer.php';
|
---|
631 |
|
---|
632 |
|
---|
633 | ?>
|
---|