1 | <?php
|
---|
2 |
|
---|
3 |
|
---|
4 | require_once 'header.php';
|
---|
5 | require_once 'libs/char_lib.php';
|
---|
6 | valid_login($action_permission['read']);
|
---|
7 |
|
---|
8 | //#############################################################################
|
---|
9 | // BROWSE GUILDS
|
---|
10 | //#############################################################################
|
---|
11 | function 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&error=3&realm=$realmid&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]&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&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&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&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&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&realm=$realmid&order_by=$order_by&".($search_value && $search_by ? "search_by=$search_by&search_value=$search_value&" : "")."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&realm=$realmid&start=$start&dir=$dir".( $search_value && $search_by ? "&search_by=$search_by&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&realm=$realmid&start=$start&dir=$dir".( $search_value && $search_by ? "&search_by=$search_by&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&realm=$realmid&start=$start&dir=$dir".( $search_value && $search_by ? "&search_by=$search_by&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&realm=$realmid&start=$start&dir=$dir".( $search_value && $search_by ? "&search_by=$search_by&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&realm=$realmid&start=$start&dir=$dir".( $search_value && $search_by ? "&search_by=$search_by&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&realm=$realmid&start=$start&dir=$dir".( $search_value && $search_by ? "&search_by=$search_by&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&realm=$realmid&error=3&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]&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&realm=$realmid&order_by=$order_by&".($search_value && $search_by ? "search_by=$search_by&search_value=$search_value&" : "")."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 |
|
---|
228 | function 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 | //#############################################################################
|
---|
241 | function 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&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&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&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&realm=$realmid&id=$guild_id&order_by=$order_by&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&error=3&realm=$realmid&id=$guild_id&order_by=cname&start=$start&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&error=3&realm=$realmid&id=$guild_id&order_by=crace&start=$start&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&error=3&realm=$realmid&id=$guild_id&order_by=class&start=$start&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&error=3&realm=$realmid&id=$guild_id&order_by=clevel&start=$start&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&error=3&realm=$realmid&id=$guild_id&order_by=mrank&start=$start&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&error=3&realm=$realmid&id=$guild_id&order_by=clogout&start=$start&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&error=3&realm=$realmid&id=$guild_id&order_by=conline&start=$start&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']}: <font color=white>{$member[1]}</font><br />{$lang_global['are_you_sure']}', 'guild.php?action=rem_char_from_guild&realm=$realmid&id=$member[0]&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]&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&error=3&realm=$realmid&id=$guild_id&order_by=$order_by&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&realm=$realmid&id=$guild_id\" type=\"wrn", 130);
|
---|
421 | $output .= "
|
---|
422 | </td>
|
---|
423 | <td>";
|
---|
424 | }
|
---|
425 | makebutton($lang_guild['guildbank'], "guildbank.php?id=$guild_id&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 | //#############################################################################
|
---|
443 | function 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&realm=$realmid");
|
---|
463 | if (is_numeric($id));
|
---|
464 | else
|
---|
465 | redirect("guild.php?error=5&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&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&realm=$realmid&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 | //#############################################################################
|
---|
504 | function 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&realm=$realmid");
|
---|
525 | if (is_numeric($guid));
|
---|
526 | else redirect("guild.php?error=5&realm=$realmid");
|
---|
527 | if(isset($_GET['guld_id']))
|
---|
528 | $guld_id = $_GET['guld_id'];
|
---|
529 | else
|
---|
530 | redirect("guild.php?error=1&realm=$realmid");
|
---|
531 | if (is_numeric($guld_id));
|
---|
532 | else redirect("guild.php?error=5&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&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&realm=$realmid&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 |
|
---|
563 | switch ($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 |
|
---|
592 | unset($err);
|
---|
593 |
|
---|
594 | $output .= '
|
---|
595 | </div>';
|
---|
596 |
|
---|
597 | $action = (isset($_GET['action'])) ? $_GET['action'] : NULL;
|
---|
598 |
|
---|
599 | if ('view_guild' == $action)
|
---|
600 | view_guild();
|
---|
601 | elseif ('del_guild' == $action)
|
---|
602 | del_guild();
|
---|
603 | elseif ('rem_char_from_guild' == $action)
|
---|
604 | rem_char_from_guild($sqlr, $sqlc);
|
---|
605 | else
|
---|
606 | browse_guilds($sqlr, $sqlc);
|
---|
607 |
|
---|
608 | unset($action);
|
---|
609 | unset($action_permission);
|
---|
610 | unset($lang_guild);
|
---|
611 |
|
---|
612 | require_once 'footer.php';
|
---|
613 |
|
---|
614 |
|
---|
615 | ?>
|
---|