source: trunk/test_server/guild.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: 31.5 KB
Line 
1<?php
2
3
4require_once 'header.php';
5require_once 'libs/char_lib.php';
6valid_login($action_permission['read']);
7
8//#############################################################################
9// BROWSE GUILDS
10//#############################################################################
11function browse_guilds(&$sqlr, &$sqlc)
12{
13 global $output, $lang_guild, $lang_global,
14 $realm_db, $characters_db, $realm_id,
15 $action_permission, $user_lvl, $user_id,
16 $itemperpage;
17
18 // this is multi realm support, as of writing still under development
19 // this page is already implementing it
20 if (empty($_GET['realm']))
21 $realmid = $realm_id;
22 else
23 {
24 $realmid = $sqlr->quote_smart($_GET['realm']);
25 if (is_numeric($realmid))
26 $sqlc->connect($characters_db[$realmid]['addr'], $characters_db[$realmid]['user'], $characters_db[$realmid]['pass'], $characters_db[$realmid]['name']);
27 else
28 $realmid = $realm_id;
29 }
30
31 //==========================$_GET and SECURE=================================
32 $start = (isset($_GET['start'])) ? $sqlc->quote_smart($_GET['start']) : 0;
33 if (is_numeric($start)); else $start=0;
34
35 $order_by = (isset($_GET['order_by'])) ? $sqlc->quote_smart($_GET['order_by']) : 'gid';
36 if (preg_match('/^[_[:lower:]]{1,10}$/', $order_by)); else $order_by='gid';
37
38 $dir = (isset($_GET['dir'])) ? $sqlc->quote_smart($_GET['dir']) : 1;
39 if (preg_match('/^[01]{1}$/', $dir)); else $dir=1;
40
41 $order_dir = ($dir) ? 'ASC' : 'DESC';
42 $dir = ($dir) ? 0 : 1;
43 //==========================$_GET and SECURE end=============================
44 //==========================MyGuild==========================================
45
46 $query_myGuild = $sqlc->query("SELECT g.guildid as gid, g.name, g.leaderguid AS lguid,
47 (SELECT name from characters where guid = lguid), (SELECT race in (2,5,6,8,10) from characters where guid = lguid) as faction,
48 (select count(*) from characters where guid in (select guid from guild_member where guildid = lguid) and online = 1) as gonline,
49 (select count(*) from guild_member where guildid = gid), SUBSTRING_INDEX(g.MOTD,' ',6), g.createdate,
50 (select account from characters where guid = lguid) FROM guild as g
51 left outer join guild_member as gm on gm.guildid = g.guildid left outer join characters as c on c.guid = gm.guid
52 where c.account = $user_id group by g.guildid order by gid");
53
54 if ($query_myGuild)
55 {
56 $output .= '
57 <center>
58 <fieldset>
59 <legend>'.$lang_guild['my_guilds'].'</legend>
60 <table class="lined" align="center">
61 <tr>
62 <th width="1%">'.$lang_guild['id'].'</th>
63 <th width="20%">'.$lang_guild['guild_name'].'</th>
64 <th width="10%">'.$lang_guild['guild_leader'].'</th>
65 <th width="1%">'.$lang_guild['guild_faction'].'</th>
66 <th width="10%">'.$lang_guild['tot_m_online'].'</th>
67 <th width="20%">'.$lang_guild['guild_motd'].'</th>
68 <th width="20%">'.$lang_guild['create_date'].'</th>
69 </tr>';
70 while ($data = $sqlr->fetch_row($query_myGuild))
71 {
72 $result = $sqlr->query("SELECT gmlevel FROM account WHERE id ='$data[9]'");
73 $owner_gmlvl = $sqlr->result($result, 0, 'gmlevel');
74 $output .= "
75 <tr>
76 <td>$data[0]</td>
77 <td><a href=\"guild.php?action=view_guild&amp;error=3&amp;realm=$realmid&amp;id=$data[0]\">$data[1]</a></td>";
78 $output .= ($user_lvl < $owner_gmlvl ) ? "<td>".htmlentities($data[3])."</td>" : "<td><a href=\"char.php?id=$data[2]&amp;realm=$realmid\">".htmlentities($data[3])."</a></td>";
79 $output .= "
80 <td><img src=\"img/".($data[4]==0 ? "alliance" : "horde")."_small.gif\" alt=\"\" /></td>
81 <td>$data[5]/$data[6]</td>
82 <td>".htmlentities($data[7])." ...</td>
83 <td class=\"small\">".date('o-m-d', $data[8])."</td>
84 </tr>";
85 }
86 unset($data);
87 unset($result);
88 $output .= '
89 </table>
90 </fieldset>
91 <br />
92 </center>';
93 }
94 //==========================MyGuild end======================================
95 //==========================Browse/Search Guilds CHECK=======================
96 $search_by ='';
97 $search_value = '';
98 if(isset($_GET['search_value']) && isset($_GET['search_by']))
99 {
100 $search_by = $sqlc->quote_smart($_GET['search_by']);
101 $search_value = $sqlc->quote_smart($_GET['search_value']);
102
103 $search_menu = array('name', 'leadername', 'guildid');
104 if (in_array($search_by, $search_menu)); else $search_by = 'name';
105
106 switch($search_by)
107 {
108 case "name":
109 if (preg_match('/^[\t\v\b\f\a\n\r\\\"\'\? <>[](){}_=+-|!@#$%^&*~`.,0123456789\0]{1,30}$/', $search_value)) redirect("guild.php?error=5&amp;realm=$realmid");
110 $query = $sqlc->query("SELECT g.guildid as gid, g.name,g.leaderguid as lguid,
111 (SELECT name from characters where guid = lguid) as lname, c.race in (2,5,6,8,10) as lfaction,
112 (select count(*) from guild_member where guildid = gid) as tot_chars, createdate, c.account as laccount
113 FROM guild as g left outer join characters as c on c.guid = g.leaderguid
114 where g.name like '%$search_value%' ORDER BY $order_by $order_dir LIMIT $start, $itemperpage");
115 $query_count = $sqlc->query("SELECT 1 from guild where name like '%$search_value%'");
116 break;
117 case "leadername" :
118 if (preg_match('/^[\t\v\b\f\a\n\r\\\"\'\? <>[](){}_=+-|!@#$%^&*~`.,0123456789\0]{1,30}$/', $search_value)) redirect("guild.php?error=5&amp;realm=$realmid");
119 $query = $sqlc->query("SELECT g.guildid as gid, g.name,g.leaderguid as lguid,
120 (SELECT name from characters where guid = lguid) as lname, c.race in (2,5,6,8,10) as lfaction,
121 (select count(*) from guild_member where guildid = gid) as tot_chars, createdate, c.account as laccount
122 FROM guild as g left outer join characters as c on c.guid = g.leaderguid where g.leaderguid in
123 (SELECT guid from characters where name like '%$search_value%') ORDER BY $order_by $order_dir LIMIT $start, $itemperpage");
124 $query_count = $sqlc->query("SELECT 1 from guild where leaderguid in (select guid from characters where name like '%$search_value%')");
125 break;
126 case "guildid" :
127 if (is_numeric($search_value)); else redirect("guild.php?error=5&amp;realm=$realmid");
128 $query = $sqlc->query("SELECT g.guildid as gid, g.name,g.leaderguid as lguid,
129 (SELECT name from characters where guid = lguid) as lname, c.race in (2,5,6,8,10) as lfaction,
130 (select count(*) from guild_member where guildid = gid) as tot_chars, createdate, c.account as laccount
131 FROM guild as g left outer join characters as c on c.guid = g.leaderguid
132 where g.guildid = '$search_value' ORDER BY $order_by $order_dir LIMIT $start, $itemperpage");
133 $query_count = $sqlc->query("SELECT 1 from guild where guildid = '$search_value'");
134 break;
135 default :
136 redirect("guild.php?error=2&amp;realm=$realmid");
137 }
138 }
139 else
140 {
141 $query = $sqlc->query("SELECT g.guildid as gid, g.name,g.leaderguid as lguid, (SELECT name from characters where guid = lguid) as lname, c.race in (2,5,6,8,10) as lfaction, (select count(*) from guild_member where guildid = gid) as tot_chars, createdate, c.account as laccount FROM guild as g left outer join characters as c on c.guid = g.leaderguid ORDER BY $order_by $order_dir LIMIT $start, $itemperpage");
142 $query_count = $sqlc->query("SELECT 1 from guild");
143 }
144 $all_record = $sqlc->num_rows($query_count);
145 //==========================Browse/Search Guilds CHECK end===================
146 //==========================Browse/Search Guilds=============================
147
148 $output .="
149 <center>
150 <table class=\"top_hidden\">
151 <tr align=\"left\">
152 <td>
153 <table class=\"hidden\">
154 <tr>
155 <td>
156 <form action=\"guild.php?realm=$realmid\" method=\"get\" name=\"form\">
157 <input type=\"hidden\" name=\"error\" value=\"4\" />
158 <input type=\"text\" size=\"24\" name=\"search_value\" value=\"{$search_value}\" />
159 <select name=\"search_by\">
160 <option value=\"name\"".($search_by == 'name' ? " selected=\"selected\"" : "").">{$lang_guild['by_name']}</option>
161 <option value=\"leadername\"".($search_by == 'leadername' ? " selected=\"selected\"" : "").">{$lang_guild['by_guild_leader']}</option>
162 <option value=\"guildid\"".($search_by == 'guildid' ? " selected=\"selected\"" : "").">{$lang_guild['by_id']}</option>
163 </select>
164 </form>
165 </td>
166 <td width=\"300\">";
167 makebutton($lang_global['search'], "javascript:do_submit()",80);
168 ($search_by && $search_value) ? makebutton($lang_guild['show_guilds'], "guild.php?realm=$realmid\" type=\"def", 130) : $output .= "";
169 $output .= "
170 </td>
171 </tr>
172 </table>
173 </td>
174 </tr>
175 </table>
176 </center>";
177 //==========================top tage navigaion ENDS here ====================
178 $output .= "
179 <center>
180 <fieldset>
181 <legend>{$lang_guild['browse_guilds']}</legend>
182 <table class=\"lined\" align=\"center\">
183 <tr class=\"hidden\">
184 <td colspan=\"6\" class=\"hidden\" align=\"right\" width=\"25%\">";
185 $output .= generate_pagination("guild.php?action=brows_guilds&amp;realm=$realmid&amp;order_by=$order_by&amp;".($search_value && $search_by ? "search_by=$search_by&amp;search_value=$search_value&amp" : "")."dir=".(($dir) ? 0 : 1)."", $all_record, $itemperpage, $start);
186 $output .= "
187 </td>
188 </tr>
189 <tr>
190 <th width=\"5%\"><a href=\"guild.php?order_by=gid&amp;realm=$realmid&amp;start=$start&amp;dir=$dir".( $search_value && $search_by ? "&amp;search_by=$search_by&amp;search_value=$search_value" : "" )."\">".($order_by=='gid' ? "<img src=\"img/arr_".($dir ? "up" : "dw").".gif\" alt=\"\" /> " : "")."{$lang_guild['id']}</a></th>
191 <th width=\"30%\"><a href=\"guild.php?order_by=name&amp;realm=$realmid&amp;start=$start&amp;dir=$dir".( $search_value && $search_by ? "&amp;search_by=$search_by&amp;search_value=$search_value" : "" )."\">".($order_by=='name' ? "<img src=\"img/arr_".($dir ? "up" : "dw").".gif\" alt=\"\" /> " : "")."{$lang_guild['guild_name']}</a></th>
192 <th width=\"20%\"><a href=\"guild.php?order_by=lname&amp;realm=$realmid&amp;start=$start&amp;dir=$dir".( $search_value && $search_by ? "&amp;search_by=$search_by&amp;search_value=$search_value" : "" )."\">".($order_by=='lname' ? "<img src=\"img/arr_".($dir ? "up" : "dw").".gif\" alt=\"\" /> " : "")."{$lang_guild['guild_leader']}</a></th>
193 <th width=\"10%\"><a href=\"guild.php?order_by=lfaction&amp;realm=$realmid&amp;start=$start&amp;dir=$dir".( $search_value && $search_by ? "&amp;search_by=$search_by&amp;search_value=$search_value" : "" )."\">".($order_by=='lfaction' ? "<img src=\"img/arr_".($dir ? "up" : "dw").".gif\" alt=\"\" /> " : "")."{$lang_guild['guild_faction']}</a></th>
194 <th width=\"15%\"><a href=\"guild.php?order_by=tot_chars&amp;realm=$realmid&amp;start=$start&amp;dir=$dir".( $search_value && $search_by ? "&amp;search_by=$search_by&amp;search_value=$search_value" : "" )."\">".($order_by=='tot_chars' ? "<img src=\"img/arr_".($dir ? "up" : "dw").".gif\" alt=\"\" /> " : "")."{$lang_guild['tot_members']}</a></th>
195 <th width=\"20%\"><a href=\"guild.php?order_by=createdate&amp;realm=$realmid&amp;start=$start&amp;dir=$dir".( $search_value && $search_by ? "&amp;search_by=$search_by&amp;search_value=$search_value" : "" )."\">".($order_by=='createdate' ? "<img src=\"img/arr_".($dir ? "up" : "dw").".gif\" alt=\"\" /> " : "")."{$lang_guild['create_date']}</a></th>
196 </tr>";
197 while ($data = $sqlr->fetch_row($query))
198 {
199 $result = $sqlr->query("SELECT gmlevel FROM account WHERE id ='$data[7]'");
200 $owner_gmlvl = $sqlr->result($result, 0, 'gmlevel');
201 $output .= "
202 <tr>
203 <td>$data[0]</td>";
204 $output .= ($user_lvl >= $action_permission['update']) ? "<td><a href=\"guild.php?action=view_guild&amp;realm=$realmid&amp;error=3&amp;id=$data[0]\">".htmlentities($data[1])."</a></td>" : "<td>".htmlentities($data[1])."</td>";
205 $output .= ($user_lvl < $owner_gmlvl ) ? "<td>".htmlentities($data[3])."</td>" : "<td><a href=\"char.php?id=$data[2]&amp;realm=$realmid\">".htmlentities($data[3])."</a></td>";
206 $output .= "
207 <td><img src=\"img/".($data[4]==0 ? "alliance" : "horde")."_small.gif\" alt=\"\" /></td>
208 <td>$data[5]</td>
209 <td class=\"small\">".date('o-m-d', $data[6])."</td>
210 </tr>";
211 }
212 $output .= "
213 <tr>
214 <td colspan=\"6\" class=\"hidden\" align=\"right\" width=\"25%\">".generate_pagination("guild.php?action=brows_guilds&amp;realm=$realmid&amp;order_by=$order_by&amp;".($search_value && $search_by ? "search_by=$search_by&amp;search_value=$search_value&amp" : "")."dir=".(($dir) ? 0 : 1)."", $all_record, $itemperpage, $start)."</td>
215 </tr>
216 <tr>
217 <td colspan=\"6\" class=\"hidden\" align=\"right\">{$lang_guild['tot_guilds']} : $all_record</td>
218 </tr>
219 </table>
220 </fieldset>
221 <br />
222 </center>
223";
224
225}
226 //==========================Browse/Search Guilds end=========================
227
228function count_days( $a, $b )
229{
230 $gd_a = getdate( $a );
231 $gd_b = getdate( $b );
232 $a_new = mktime( 12, 0, 0, $gd_a['mon'], $gd_a['mday'], $gd_a['year'] );
233 $b_new = mktime( 12, 0, 0, $gd_b['mon'], $gd_b['mday'], $gd_b['year'] );
234 return round( abs( $a_new - $b_new ) / 86400 );
235}
236
237
238//#############################################################################
239// VIEW GUILD
240//#############################################################################
241function view_guild()
242{
243 global $lang_guild, $lang_global, $output, $realm_db, $characters_db, $mmfpm_db, $realm_id, $itemperpage,
244 $action_permission, $user_lvl, $user_id, $showcountryflag;
245 if(!isset($_GET['id'])) redirect("guild.php?error=1&amp;realm=$realmid");
246
247 $sqlr = new SQL;
248 $sqlr->connect($realm_db['addr'], $realm_db['user'], $realm_db['pass'], $realm_db['name']);
249
250 if (empty($_GET['realm']))
251 $realmid = $realm_id;
252 else
253 {
254 $realmid = $sqlr->quote_smart($_GET['realm']);
255 if (!is_numeric($realmid)) $realmid = $realm_id;
256 }
257
258 $sqlc = new SQL;
259 $sqlc->connect($characters_db[$realmid]['addr'], $characters_db[$realmid]['user'], $characters_db[$realmid]['pass'], $characters_db[$realmid]['name']);
260
261 $guild_id = $sqlc->quote_smart($_GET['id']);
262 if(is_numeric($guild_id)); else redirect("guild.php?error=6&amp;realm=$realmid");
263
264 //==========================SQL INGUILD and GUILDLEADER======================
265 $q_inguild = $sqlc->query("select 1 from guild_member where guildid = '$guild_id' and guid in (select guid from characters where account = '$user_id')");
266 $inguild = $sqlc->result($q_inguild, 0, '1');
267 if ( $user_lvl < $action_permission['update'] && !$inguild )
268 redirect("guild.php?error=6&amp;realm=$realmid");
269
270 $q_amIguildleader = $sqlc->query("select 1 from guild where guildid = '$guild_id' and leaderguid in (select guid from characters where account = '$user_id')");
271 $amIguildleader = $sqlc->result($q_amIguildleader, 0, '1');
272
273 $q_guildmemberCount = $sqlc->query("SELECT 1 from guild_member where guildid = '$guild_id'");
274 $guildmemberCount = $sqlc->num_rows($q_guildmemberCount);
275 //====================SQL INGUILD and GUILDLEADER end========================
276
277 //==========================$_GET and SECURE=================================
278 $start = (isset($_GET['start'])) ? $sqlc->quote_smart($_GET['start']) : 0;
279 if (is_numeric($start)); else $start=0;
280
281 $order_by = (isset($_GET['order_by'])) ? $sqlc->quote_smart($_GET['order_by']) : "mrank";
282 if (!preg_match("/^[_[:lower:]]{1,10}$/", $order_by)) $order_by="mrank";
283
284 $dir = (isset($_GET['dir'])) ? $sqlc->quote_smart($_GET['dir']) : 1;
285 if (!preg_match("/^[01]{1}$/", $dir)) $dir=1;
286
287 $order_dir = ($dir) ? "ASC" : "DESC";
288 $dir = ($dir) ? 0 : 1;
289 //==========================$_GET and SECURE end=============================
290
291 $query = $sqlc->query("SELECT guildid, name, info, MOTD, createdate,
292 (select count(*) from guild_member where guildid = '$guild_id') as mtotal,
293 (select count(*) from guild_member where guildid = '$guild_id' and guid in
294 (select guid from characters where online = 1)) as monline
295 FROM guild WHERE guildid = '$guild_id'");
296 $guild_data = $sqlc->fetch_row($query);
297
298 $output .= "
299 <script type=\"text/javascript\">
300 answerbox.btn_ok='{$lang_global['yes']}';
301 answerbox.btn_cancel='{$lang_global['no']}';
302 </script>
303 <center>
304 <fieldset>
305 <legend>{$lang_guild['guild']}</legend>
306 <table class=\"hidden\" style=\"width: 100%;\">
307 <tr>
308 <td>
309 <table class=\"lined\">
310 <tr>
311 <td width=\"25%\"><b>{$lang_guild['create_date']}:</b><br />".date('o-m-d', $guild_data[4])."</td>
312 <td width=\"50%\" class=\"bold\">$guild_data[1]</td>
313 <td width=\"25%\"><b>{$lang_guild['tot_m_online']}:</b><br />$guild_data[6] / $guild_data[5]</td>
314 </tr>";
315 if ($guild_data[2] != '')
316 $output .= "
317 <tr>
318 <td colspan=\"3\"><b>{$lang_guild['info']}:</b><br />$guild_data[2]</td>
319 </tr>";
320 if ($guild_data[3] != '')
321 $output .= "
322 <tr>
323 <td colspan=\"3\"><b>{$lang_guild['motd']}:</b><br />$guild_data[3]</td>
324 </tr>";
325 $output .="
326 </table>
327 </td>
328 </tr>
329 <tr>
330 <td align=\"right\">".generate_pagination("guild.php?action=view_guild&amp;realm=$realmid&amp;id=$guild_id&amp;order_by=$order_by&amp;dir=".(($dir) ? 0 : 1)."", $guildmemberCount, $itemperpage, $start)."</td>
331 </tr>
332 <tr>
333 <td>
334 <table class=\"lined\">
335 <tr>
336 <th width=\"1%\">{$lang_guild['remove']}</th>
337 <th width=\"15%\"><a href=\"guild.php?action=view_guild&amp;error=3&amp;realm=$realmid&amp;id=$guild_id&amp;order_by=cname&amp;start=$start&amp;dir=$dir\">".($order_by=='cname' ? "<img src=\"img/arr_".($dir ? "up" : "dw").".gif\" alt=\"\" /> " : "")."{$lang_guild['name']}</a></th>
338 <th width=\"1%\"><a href=\"guild.php?action=view_guild&amp;error=3&amp;realm=$realmid&amp;id=$guild_id&amp;order_by=crace&amp;start=$start&amp;dir=$dir\">".($order_by=='crace' ? "<img src=\"img/arr_".($dir ? "up" : "dw").".gif\" alt=\"\" /> " : "")."{$lang_guild['race']}</a></th>
339 <th width=\"1%\"><a href=\"guild.php?action=view_guild&amp;error=3&amp;realm=$realmid&amp;id=$guild_id&amp;order_by=class&amp;start=$start&amp;dir=$dir\">".($order_by=='cclass' ? "<img src=\"img/arr_".($dir ? "up" : "dw").".gif\" alt=\"\" /> " : "")."{$lang_guild['class']}</a></th>
340 <th width=\"1%\"><a href=\"guild.php?action=view_guild&amp;error=3&amp;realm=$realmid&amp;id=$guild_id&amp;order_by=clevel&amp;start=$start&amp;dir=$dir\">".($order_by=='clevel' ? "<img src=\"img/arr_".($dir ? "up" : "dw").".gif\" alt=\"\" /> " : "")."{$lang_guild['level']}</a></th>
341 <th width=\"15%\"><a href=\"guild.php?action=view_guild&amp;error=3&amp;realm=$realmid&amp;id=$guild_id&amp;order_by=mrank&amp;start=$start&amp;dir=$dir\">".($order_by=='mrank' ? "<img src=\"img/arr_".($dir ? "up" : "dw").".gif\" alt=\"\" /> " : "")."{$lang_guild['rank']}</a></th>
342 <th width=\"15%\">{$lang_guild['pnote']}</th>
343 <th width=\"15%\">{$lang_guild['offnote']}</th>
344 <th width=\"15%\"><a href=\"guild.php?action=view_guild&amp;error=3&amp;realm=$realmid&amp;id=$guild_id&amp;order_by=clogout&amp;start=$start&amp;dir=$dir\">".($order_by=='clogout' ? "<img src=\"img/arr_".($dir ? "up" : "dw").".gif\" alt=\"\" /> " : "")."{$lang_guild['llogin']}</a></th>
345 <th width=\"1%\"><a href=\"guild.php?action=view_guild&amp;error=3&amp;realm=$realmid&amp;id=$guild_id&amp;order_by=conline&amp;start=$start&amp;dir=$dir\">".($order_by=='conline' ? "<img src=\"img/arr_".($dir ? "up" : "dw").".gif\" alt=\"\" /> " : "")."{$lang_guild['online']}</a></th>";
346
347 if ($showcountryflag)
348 {
349 require_once 'libs/misc_lib.php';
350
351 $sqlm = new SQL;
352 $sqlm->connect($mmfpm_db['addr'], $mmfpm_db['user'], $mmfpm_db['pass'], $mmfpm_db['name']);
353
354 $output .="
355 <th width=\"1%\">{$lang_global['country']}</th>";
356 }
357
358 $output .="
359 </tr>";
360 $members = $sqlc->query("SELECT gm.guid as cguid, c.name as cname, c.`race` as crace ,c.`class` as cclass,
361 c.`level` AS clevel,
362 gm.rank AS mrank, (SELECT rname FROM guild_rank WHERE guildid ='$guild_id' AND rid = mrank) AS rname,
363 gm.Pnote, gm.OFFnote, gender,
364 c.`online` as conline, c.`account`, c.`logout_time` as clogout
365 FROM guild_member as gm left outer join characters as c on c.guid = gm.guid
366 WHERE gm.guildid = '$guild_id' ORDER BY $order_by $order_dir LIMIT $start, $itemperpage");
367
368 while ($member = $sqlr->fetch_row($members))
369 {
370 $result = $sqlr->query("SELECT gmlevel FROM account WHERE id ='$member[11]'");
371 $owner_gmlvl = $sqlr->result($result, 0, 'gmlevel');
372 $output .= "
373 <tr>";
374 // gm, gildleader or own account! are allowed to remove from guild
375 $output .= ($user_lvl >= $action_permission['delete'] || $amIguildleader || $member[11] == $user_id) ? "
376 <td>
377 <img src=\"img/aff_cross.png\" alt=\"\" onclick=\"answerBox('{$lang_global['delete']}: &lt;font color=white&gt;{$member[1]}&lt;/font&gt;&lt;br /&gt;{$lang_global['are_you_sure']}', 'guild.php?action=rem_char_from_guild&amp;realm=$realmid&amp;id=$member[0]&amp;guld_id=$guild_id');\" style=\"cursor:pointer;\" />
378 </td>" : "
379 <td>
380 </td>";
381 $output .= ($user_lvl < $owner_gmlvl ) ? "
382 <td>".htmlentities($member[1])."</td>" : "
383 <td><a href=\"char.php?id=$member[0]&amp;realm=$realmid\">".htmlentities($member[1])."</a></td>";
384 $output .= "
385 <td><img src='img/c_icons/{$member[2]}-{$member[9]}.gif' onmousemove='toolTip(\"".char_get_race_name($member[2])."\",\"item_tooltip\")' onmouseout='toolTip()' alt=\"\" /></td>
386 <td><img src='img/c_icons/{$member[3]}.gif' onmousemove='toolTip(\"".char_get_class_name($member[3])."\",\"item_tooltip\")' onmouseout='toolTip()' alt=\"\" /></td>
387 <td>".char_get_level_color($member[4])."</td>
388 <td>".htmlentities($member[6])." (".$member[5].")</td>
389 <td>".htmlentities($member[7])."</td>
390 <td>".htmlentities($member[8])."</td>
391 <td>".get_days_with_color($member[12])."</td>
392 <td>".(($member[10]) ? "<img src=\"img/up.gif\" alt=\"\" />" : "-")."</td>";
393
394 if ($showcountryflag)
395 {
396 $country = misc_get_country_by_account($member[11], $sqlr, $sqlm);
397 $output .="
398 <td>".(($country['code']) ? "<img src='img/flags/".$country['code'].".png' onmousemove='toolTip(\"".($country['country'])."\",\"item_tooltip\")' onmouseout='toolTip()' alt=\"\" />" : "-")."</td>";
399 }
400
401 $output .="
402 </tr>";
403 }
404 unset($member);
405 $output .= "
406 </table>
407 </td>
408 </tr>
409 <tr>
410 <td align=\"right\">".generate_pagination("guild.php?action=view_guild&amp;error=3&amp;realm=$realmid&amp;id=$guild_id&amp;order_by=$order_by&amp;dir=".!$dir, $guildmemberCount, $itemperpage, $start)."</td>
411 </tr>
412 </table>
413 <br />";
414 $output .= "
415 <table class=\"hidden\">
416 <tr>
417 <td>";
418 if ($user_lvl >= $action_permission['delete'] || $amIguildleader)
419 {
420 makebutton($lang_guild['del_guild'], "guild.php?action=del_guild&amp;realm=$realmid&amp;id=$guild_id\" type=\"wrn", 130);
421 $output .= "
422 </td>
423 <td>";
424 }
425 makebutton($lang_guild['guildbank'], "guildbank.php?id=$guild_id&amp;realm=$realmid", 130);
426 $output .= "
427 </td>
428 <td>";
429 makebutton($lang_guild['show_guilds'], "guild.php?realm=$realmid\" type=\"def", 130);
430 $output .= "
431 </td>
432 </tr>
433 </table>
434 </fieldset>
435 </center>
436";
437}
438
439
440//#############################################################################
441// ARE YOU SURE YOU WOULD LIKE TO OPEN YOUR AIRBAG?
442//#############################################################################
443function del_guild()
444{
445 global $lang_guild, $lang_global, $output, $characters_db, $realm_id,
446 $action_permission, $user_lvl, $user_id;
447
448 $sqlr = new SQL;
449 $sqlr->connect($realm_db['addr'], $realm_db['user'], $realm_db['pass'], $realm_db['name']);
450
451 if (empty($_GET['realm']))
452 $realmid = $realm_id;
453 else
454 {
455 $realmid = $sqlr->quote_smart($_GET['realm']);
456 if (!is_numeric($realmid)) $realmid = $realm_id;
457 }
458
459 if(isset($_GET['id']))
460 $id = $_GET['id'];
461 else
462 redirect("guild.php?error=1&amp;realm=$realmid");
463 if (is_numeric($id));
464 else
465 redirect("guild.php?error=5&amp;realm=$realmid");
466 $sqlc = new SQL;
467 $sqlc->connect($characters_db[$realmid]['addr'], $characters_db[$realmid]['user'], $characters_db[$realmid]['pass'], $characters_db[$realmid]['name']);
468 $q_amIguildleader = $sqlc->query("select 1 from guild where guildid = '$id' and leaderguid in (select guid from characters where account = '$user_id')");
469 $amIguildleader = $sqlc->result($q_amIguildleader, 0, '1');
470 if ($user_lvl < $action_permission['delete'] && !$amIguildleader)
471 redirect("guild.php?error=6&amp;realm=$realmid");
472 $output .= "
473 <center>
474 <h1><font class=\"error\">{$lang_global['are_you_sure']}</font></h1>
475 <br />
476 <font class=\"bold\">{$lang_guild['guild_id']}: $id {$lang_global['will_be_erased']}</font>
477 <br /><br />
478 <form action=\"cleanup.php?action=docleanup\" method=\"post\" name=\"form\">
479 <input type=\"hidden\" name=\"type\" value=\"guild\" />
480 <input type=\"hidden\" name=\"check\" value=\"-$id\" />
481 <input type=\"hidden\" name=\"override\" value=\"1\" />
482 <table class=\"hidden\">
483 <tr>
484 <td>";
485 makebutton($lang_global['yes'], "javascript:do_submit()\" type=\"wrn",130);
486 $output .= "
487 </td>
488 <td>";
489 makebutton($lang_global['no'], "guild.php?action=view_guild&amp;realm=$realmid&amp;id=$id\" type=\"def",130);
490 $output .= '
491 </td>
492 </tr>
493 </table>
494 </form>
495 </center>
496 <br />';
497
498}
499
500
501//#############################################################################
502//REMOVE CHAR FROM GUILD
503//#############################################################################
504function rem_char_from_guild(&$sqlr, &$sqlc)
505{
506 global $characters_db, $realm_id, $user_lvl, $user_id;
507
508 // this is multi realm support, as of writing still under development
509 // this page is already implementing it
510 if (empty($_GET['realm']))
511 $realmid = $realm_id;
512 else
513 {
514 $realmid = $sqlr->quote_smart($_GET['realm']);
515 if (is_numeric($realmid))
516 $sqlc->connect($characters_db[$realmid]['addr'], $characters_db[$realmid]['user'], $characters_db[$realmid]['pass'], $characters_db[$realmid]['name']);
517 else
518 $realmid = $realm_id;
519 }
520
521 if(isset($_GET['id']))
522 $guid = $_GET['id'];
523 else
524 redirect("guild.php?error=1&amp;realm=$realmid");
525 if (is_numeric($guid));
526 else redirect("guild.php?error=5&amp;realm=$realmid");
527 if(isset($_GET['guld_id']))
528 $guld_id = $_GET['guld_id'];
529 else
530 redirect("guild.php?error=1&amp;realm=$realmid");
531 if (is_numeric($guld_id));
532 else redirect("guild.php?error=5&amp;realm=$realmid");
533
534 $q_amIguildleaderOrSelfRemoval = $sqlc->query("select 1 from guild as g left outer join guild_member as gm on gm.guildid = g.guildid
535 where g.guildid = '$guld_id' and
536 (g.leaderguid in (select guid from characters where account = '$user_id')
537 or gm.guid in (select guid from characters where account = '$user_id' and guid = '$guid'))");
538 $amIguildleaderOrSelfRemoval = $sqlc->result($q_amIguildleaderOrSelfRemoval, 0, '1');
539 if ($user_lvl < $action_permission['delete'] && !$amIguildleaderOrSelfRemoval )
540 redirect("guild.php?error=6&amp;realm=$realmid");
541 $char_data = $sqlc->query("SELECT data FROM `characters` WHERE guid = '$guid'");
542 $data = $sqlc->result($char_data, 0, 'data');
543 $data = explode(' ',$data);
544 $data[CHAR_DATA_OFFSET_GUILD_ID] = 0;
545 $data[CHAR_DATA_OFFSET_GUILD_RANK] = 0;
546 $data = implode(' ',$data);
547 $sqlc->query("UPDATE `characters` SET data = '$data' WHERE guid = '$guid'");
548 $sqlc->query("DELETE FROM guild_member WHERE guid = '$guid'");
549 redirect("guild.php?action=view_guild&amp;realm=$realmid&amp;id=$guld_id");
550}
551
552
553//#############################################################################
554// MAIN
555//#############################################################################
556$err = (isset($_GET['error'])) ? $_GET['error'] : NULL;
557
558$output .= '
559 <div class="top">';
560
561$lang_guild = lang_guild();
562
563switch ($err)
564{
565 case 1:
566 $output .= "
567 <h1><font class=\"error\">{$lang_global['err_empty_fields']}</font></h1>";
568 break;
569 case 2:
570 $output .= "
571 <h1><font class=\"error\">{$lang_global['err_no_search_passed']}</font></h1>";
572 break;
573 case 3: //keep blank
574 break;
575 case 4:
576 $output .= "
577 <h1><font class=\"error\">{$lang_guild['guild_search_result']}:</font></h1>";
578 break;
579 case 5:
580 $output .= "
581 <h1><font class=\"error\">{$lang_global['err_invalid_input']}:</h1>";
582 break;
583 case 6:
584 $output .= "
585 <h1><font class=\"error\">{$lang_global['err_no_permission']}:</font></h1>";
586 break;
587 default: //no error
588 $output .= "
589 <h1>{$lang_guild['browse_guilds']}</h1>";
590}
591
592unset($err);
593
594$output .= '
595 </div>';
596
597$action = (isset($_GET['action'])) ? $_GET['action'] : NULL;
598
599if ('view_guild' == $action)
600 view_guild();
601elseif ('del_guild' == $action)
602 del_guild();
603elseif ('rem_char_from_guild' == $action)
604 rem_char_from_guild($sqlr, $sqlc);
605else
606 browse_guilds($sqlr, $sqlc);
607
608unset($action);
609unset($action_permission);
610unset($lang_guild);
611
612require_once 'footer.php';
613
614
615?>
Note: See TracBrowser for help on using the repository browser.