Guest User

guilds.php

a guest
Oct 9th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 31.74 KB | None | 0 0
  1. <?php require_once 'engine/init.php';
  2. if ($config['require_login']['guilds']) protect_page();
  3. $isOtx = ($config['CustomVersion'] == 'OTX') ? true : false;
  4.  
  5. function guild_list($TFSVersion) {
  6. $cache = new Cache('engine/cache/guildlist');
  7. if ($cache->hasExpired()) {
  8. if ($TFSVersion != 'TFS_10') $guilds = mysql_select_multi("SELECT `t`.`id`, `t`.`name`, `t`.`creationdata`, `motd`, (SELECT count(p.rank_id) FROM players AS p LEFT JOIN guild_ranks AS gr ON gr.id = p.rank_id WHERE gr.guild_id =`t`.`id`) AS `total` FROM `guilds` as `t` ORDER BY `t`.`name`;");
  9. else $guilds = mysql_select_multi("SELECT `id`, `name`, `creationdata`, `motd`, (SELECT COUNT('guild_id') FROM `guild_membership` WHERE `guild_id`=`id`) AS `total` FROM `guilds` ORDER BY `name`;");
  10.  
  11. // Add level data info to guilds
  12. if ($guilds !== false)
  13. for ($i = 0; $i < count($guilds); $i++)
  14. $guilds[$i]['level'] = get_guild_level_data($guilds[$i]['id']);
  15.  
  16. $cache->setContent($guilds);
  17. $cache->save();
  18. } else {
  19. $guilds = $cache->load();
  20. }
  21. return $guilds;
  22. }
  23.  
  24. include 'layout/overall/header.php';
  25.  
  26. if (user_logged_in() === true) {
  27.  
  28. // fetch data
  29. $char_count = user_character_list_count($session_user_id);
  30. $char_array = user_character_list($user_data['id']);
  31. $characters = array();
  32. $charactersId = array();
  33. $charactersRank = array();
  34. if ($char_array !== false) {
  35. foreach ($char_array as $value) {
  36. $characters[] = $value['name'];
  37. $charactersId[] = $value['id'];
  38. $charactersRank[] = $value['rank_id'];
  39. }
  40. }
  41. } else {
  42. $char_count = 0;
  43. }
  44.  
  45. if (empty($_GET['name'])) {
  46. // Display the guild list
  47.  
  48. //data_dump($guild, false, "guild data");
  49.  
  50. $guilds = guild_list($config['TFSVersion']);
  51.  
  52. if (isset($guilds) && !empty($guilds) && $guilds !== false) {
  53. //data_dump($guilds, false, "Guilds");
  54. ?>
  55. <table id="guildsTable" class="table table-striped table-hover">
  56. <tr class="yellow">
  57. <th>Logo</th>
  58. <th>Description</th>
  59. <th>Guild data</th>
  60. <!-- <th>Founded:</th> -->
  61. </tr>
  62. <?php
  63. foreach ($guilds as $guild) {
  64. if ($guild['total'] >= 1) {
  65. $url = url("guilds.php?name=". $guild['name']);
  66. ?>
  67. <tr class="special" onclick="javascript:window.location.href='<?php echo $url; ?>'">
  68. <td style="width: 100px;">
  69. <img style="max-height: 100px; margin: auto; display: block;" src="<?php logo_exists($guild['name']); ?>">
  70. </td>
  71. <td>
  72. <b><?php echo $guild['name']; ?></b>
  73. <?php if (strlen($guild['motd']) > 0) echo '<br>'.$guild['motd']; ?>
  74. </td>
  75. <td>
  76. <?php echo "Total members: ".$guild['level']['players']; ?>
  77. <br><?php echo "Average level: ".$guild['level']['avg'].""; ?>
  78. <br><?php echo "Guild level: ".$guild['level']['total']; ?>
  79. </td>
  80. </tr>
  81. <?php
  82. //echo '<td>'. getClock($guild['creationdata'], true) .'</td>';
  83. }
  84. }
  85. ?>
  86. </table>
  87. <?php } else echo '<p>Guild list is empty.</p>';?>
  88. <!-- user stuff -->
  89. <?php
  90. if (user_logged_in() === true) {
  91. // post verifications
  92. // CREATE GUILD
  93. if (!empty($_POST['selected_char']) && !empty($_POST['guild_name'])) {
  94. if (user_character_account_id($_POST['selected_char']) === $session_user_id) {
  95. //code here
  96. $name = sanitize($_POST['selected_char']);
  97. $user_id = user_character_id($name);
  98. if ($config['TFSVersion'] !== 'TFS_10') $char_data = user_character_data($user_id, 'level', 'online');
  99. else {
  100. $char_data = user_character_data($user_id, 'level');
  101. $char_data['online'] = (user_is_online_10($user_id)) ? 1 : 0;
  102. }
  103.  
  104. // If character level is high enough
  105. if ($char_data['level'] >= $config['create_guild_level']) {
  106.  
  107. // If character is offline
  108. if ($char_data['online'] == 0) {
  109. $acc_data = user_data($user_data['id'], 'premdays');
  110.  
  111. // If character is premium
  112. if ($config['guild_require_premium'] == false || $acc_data['premdays'] > 0) {
  113.  
  114. if (get_character_guild_rank($user_id) < 1) {
  115.  
  116. if (preg_match("/^[a-zA-Z_ ]+$/", $_POST['guild_name'])) {
  117. // Only allow normal symbols as guild name
  118.  
  119. $guildname = sanitize($_POST['guild_name']);
  120.  
  121. $gid = get_guild_id($guildname);
  122. if ($gid === false) {
  123. create_guild($user_id, $guildname);
  124. // Re-cache the guild list
  125. $guilds = guild_list($config['TFSVersion']);
  126. header('Location: success.php');
  127. exit();
  128. } else echo 'A guild with that name already exist.';
  129. } else echo 'Guild name may only contain a-z, A-Z and spaces.';
  130. } else echo 'You are already in a guild.';
  131. } else echo 'You need a premium account to create a guild.';
  132. } else echo 'Your character must be offline to create a guild.';
  133. } else echo $name .' is level '. $char_data['level'] .'. But you need level '. $config['create_guild_level'] .'+ to create your own guild!';
  134. }
  135. }
  136. // end
  137. ?>
  138.  
  139.  
  140. <!-- FORMS TO CREATE GUILD-->
  141. <form action="" method="post">
  142. <ul>
  143. <li>
  144. Create Guild:<br>
  145. <select name="selected_char">
  146. <?php
  147. for ($i = 0; $i < $char_count; $i++) {
  148. echo '<option value="'. $characters[$i] .'">'. $characters[$i] .'</option>';
  149. }
  150. ?>
  151. </select>
  152. <input type="text" name="guild_name">
  153.  
  154. <input type="submit" value="Create Guild">
  155. </li>
  156. </ul>
  157. </form>
  158.  
  159. <?php
  160. } else echo 'You need to be logged in to create guilds.';
  161. ?>
  162. <!-- end user-->
  163.  
  164. <?php
  165. } else { // GUILD OVERVIEW
  166. $guild = get_guild_data($_GET['name']);
  167. $gid = $guild['id'];
  168. if ($gid === false) {
  169. header('Location: guilds.php');
  170. exit();
  171. }
  172. $gcount = count_guild_members($gid);
  173. if ($gcount < 1) {
  174. header('Location: guilds.php');
  175. exit();
  176. }
  177. $inv_data = guild_invite_list($gid);
  178. $players = get_guild_players($gid);
  179. $inv_count = 0;
  180.  
  181. // Calculate invite count
  182. if ($inv_data !== false) {
  183. foreach ($inv_data as $inv) {
  184. ++$inv_count;
  185. }
  186. }
  187.  
  188. // calculate visitor access
  189. $highest_access = 0;
  190. if (user_logged_in() === true) {
  191. // Get visitor access in this guild
  192. foreach ($players as $player) {
  193. $rid = $player['rank_id'];
  194.  
  195. for ($i = 0; $i < $char_count; $i++) {
  196.  
  197. $playerRank = $charactersRank[$i];
  198.  
  199. if ($playerRank == $rid) {
  200. $access = get_guild_position($playerRank);
  201. if ($access == 2 || $access == 3) { //If player got access level vice leader or leader
  202. if ($access > $highest_access) $highest_access = $access;
  203. }
  204. }
  205.  
  206. }
  207. }
  208. }
  209. // Display the specific guild page
  210. ?>
  211.  
  212. <div id="guildTitleDiv">
  213. <?php echo (isset($_GET['error'])) ? "<font size='5' color='red'>".sanitize($_GET['error'])."</font><br><br>" : ""; ?>
  214. <?php if ($config['use_guild_logos']): ?>
  215. <div id="guildImageDiv" style="float: left; margin-right: 10px;">
  216. <img style="max-width: 100px; max-height: 100px;" src="<?php logo_exists(sanitize($_GET['name'])); ?>">
  217. </div>
  218. <?php endif; ?>
  219. <div id="guildDescription">
  220. <h1>Guild: <?php echo sanitize($_GET['name']); ?></h1>
  221. <p><?php echo $guild['motd']; ?></p>
  222. </div>
  223. </div>
  224. <table id="guildViewTable" class="table table-striped">
  225. <tr class="yellow">
  226. <th>Rank:</th>
  227. <th>Name:</th>
  228. <th>Level:</th>
  229. <th>Vocation:</th>
  230. <th>Status:</th>
  231. </tr>
  232. <?php
  233. if ($config['TFSVersion'] == 'TFS_10') {
  234. $onlinelist = array();
  235. $gplayers = array();
  236. foreach ($players as $player) {
  237. $gplayers[] = $player['id'];
  238. }
  239. $gplayers = join(',',$gplayers);
  240. $onlinequery = mysql_select_multi("SELECT `player_id` FROM `players_online` WHERE `player_id` IN ($gplayers);");
  241. if ($onlinequery !== false) foreach ($onlinequery as $online) {
  242. $onlinelist[] = $online['player_id'];
  243. }
  244. }
  245. //data_dump($players, false, "Data");
  246. $rankName = '';
  247. foreach ($players as $player) {
  248. if ($config['TFSVersion'] !== 'TFS_10') {
  249. $chardata['online'] = $player['online'];
  250. } else $chardata['online'] = (in_array($player['id'], $onlinelist)) ? 1 : 0;
  251. echo '<tr>';
  252. echo '<td>' . ($rankName !== $player['rank_name'] ? $player['rank_name'] : '') . '</td>';
  253. $rankName = $player['rank_name'];
  254. echo '<td><a href="characterprofile.php?name='. $player['name'] .'">'. $player['name'] .'</a>';
  255. if (!empty($player['guildnick'])) {
  256. echo ' ('. $player['guildnick'] .')';
  257. }
  258. echo '</td>';
  259. echo '<td>'. $player['level'] .'</td>';
  260. echo '<td>'. $config['vocations'][$player['vocation']]['name'] .'</td>';
  261. if ($chardata['online'] == 1) echo '<td> <b><font color="green"> Online </font></b></td>';
  262. else echo '<td> Offline </td>';
  263. echo '</tr>';
  264. }
  265. ?>
  266. </table>
  267.  
  268. <?php if ($inv_count > 0) { ?>
  269. <h3>Invited characters</h3>
  270. <table>
  271. <tr class="yellow">
  272. <td>Name:</td>
  273. <?php
  274. if ($highest_access == 2 || $highest_access == 3) {
  275. echo '<td>Remove:</td>';
  276. }
  277. // Shuffle through visitor characters
  278. for ($i = 0; $i < $char_count; $i++) {
  279. $exist = false;
  280. // Shuffle through invited character, see if they match your character.
  281. if ($inv_data !== false) foreach ($inv_data as $inv) {
  282. if ($charactersId[$i] == $inv['player_id']) {
  283. $exist = true;
  284. }
  285. }
  286. if ($exist) echo '<td>Join Guild:</td><td>Reject Invitation:</td>';
  287. }
  288. ?>
  289. </tr>
  290. <?php
  291. $bool = false;
  292. if ($inv_data !== false) foreach ($inv_data as $inv) {
  293. echo '<tr>';
  294. echo '<td>'. $inv['name'] .'</td>';
  295. // Remove invitation
  296. if ($highest_access == 2 || $highest_access == 3) {
  297. ?> <form action="" method="post"> <?php
  298. echo '<td>';
  299. echo '<input type="hidden" name="uninvite" value="' . $inv['player_id'] . '" />';
  300. echo '<input type="submit" value="Remove Invitation">';
  301. echo '</td>';
  302. ?> </form> <?php
  303. }
  304. // Join Guild
  305. ?> <form action="" method="post"> <?php
  306. for ($i = 0; $i < $char_count; $i++) {
  307. if ($charactersId[$i] == $inv['player_id']) {
  308. echo '<td>';
  309. echo '<input type="hidden" name="joinguild" value="' . $inv['player_id'] . '" />';
  310. echo '<input type="submit" value="Join Guild">';
  311. echo '</td>';
  312. $bool = true;
  313. }
  314. }
  315. if (isset($bool, $exist) && !$bool && $exist) {
  316. echo '<td></td>';
  317. $bool = false;
  318. }
  319. ?> </form> <?php
  320. // Reject invitation
  321. ?> <form action="" method="post"> <?php
  322. for ($i = 0; $i < $char_count; $i++) {
  323. if ($charactersId[$i] == $inv['player_id']) {
  324. echo '<td>';
  325. echo '<input type="hidden" name="uninvite" value="' . $inv['player_id'] . '" />';
  326. echo '<input type="submit" value="Reject Invitation">';
  327. echo '</td>';
  328. $bool = true;
  329. }
  330. }
  331. if (isset($bool, $exist) && !$bool && $exist) {
  332. echo '<td></td>';
  333. $bool = false;
  334. }
  335. ?> </form> <?php
  336. echo '</tr>';
  337. }
  338. ?>
  339. </table>
  340. <?php } ?>
  341. <!-- Leader stuff -->
  342. <?php
  343. // Only guild leaders
  344. if (user_logged_in() === true) {
  345.  
  346. // Uninvite and joinguild is also used for visitors who reject their invitation.
  347. if (!empty($_POST['uninvite'])) {
  348. //
  349. guild_remove_invitation($_POST['uninvite'], $gid);
  350. header('Location: guilds.php?name='. $_GET['name']);
  351. exit();
  352. }
  353. if (!empty($_POST['joinguild'])) {
  354. //
  355. foreach ($inv_data as $inv) {
  356. if ($inv['player_id'] == $_POST['joinguild']) {
  357. if ($config['TFSVersion'] !== 'TFS_10') $chardata = user_character_data($_POST['joinguild'], 'online');
  358. else $chardata['online'] = (user_is_online_10($_POST['joinguild'])) ? 1 : 0;
  359. if ($chardata['online'] == 0) {
  360. if (guild_player_join($_POST['joinguild'], $gid)) {
  361. header('Location: guilds.php?name='. $_GET['name']);
  362. exit();
  363. } else echo '<font color="red" size="4">Failed to find guild position representing member.</font>';
  364. } else echo '<font color="red" size="4">Character must be offline before joining guild.</font>';
  365. }
  366. }
  367. }
  368.  
  369. if (!empty($_POST['leave_guild'])) {
  370. $name = sanitize($_POST['leave_guild']);
  371. $cidd = user_character_id($name);
  372. // If character is offline
  373. if ($config['TFSVersion'] !== 'TFS_10') $chardata = user_character_data($cidd, 'online');
  374. else $chardata['online'] = (user_is_online_10($cidd)) ? 1 : 0;
  375. if ($chardata['online'] == 0) {
  376. if ($config['TFSVersion'] !== 'TFS_10') guild_player_leave($cidd);
  377. else guild_player_leave_10($cidd);
  378. header('Location: guilds.php?name='. $_GET['name']);
  379. exit();
  380. } else echo '<font color="red" size="4">Character must be offline first!</font>';
  381. }
  382.  
  383. if ($highest_access >= 2) {
  384. // Guild leader stuff
  385.  
  386. // Change Guild Nick
  387. if (!empty($_POST['player_guildnick'])) {
  388. $p_cid = user_character_id($_POST['player_guildnick']);
  389. $p_guild = get_player_guild_data($p_cid);
  390. if (preg_match("/^[a-zA-Z_ ]+$/", $_POST['guildnick']) || empty($_POST['guildnick'])) {
  391. // Only allow normal symbols as guild nick
  392. $p_nick = sanitize($_POST['guildnick']);
  393. if ($p_guild['guild_id'] == $gid) {
  394. if ($config['TFSVersion'] !== 'TFS_10') $chardata = user_character_data($p_cid, 'online');
  395. else $chardata['online'] = (user_is_online_10($p_cid)) ? 1 : 0;
  396. if ($chardata['online'] == 0) {
  397. if ($config['TFSVersion'] !== 'TFS_10') update_player_guildnick($p_cid, $p_nick);
  398. else update_player_guildnick_10($p_cid, $p_nick);
  399. header('Location: guilds.php?name='. $_GET['name']);
  400. exit();
  401. } else echo '<font color="red" size="4">Character not offline.</font>';
  402. }
  403. } else echo '<font color="red" size="4">Character guild nick may only contain a-z, A-Z and spaces.</font>';
  404. }
  405.  
  406. // Promote character to guild position
  407. if (!empty($_POST['promote_character']) && !empty($_POST['promote_position'])) {
  408. // Verify that promoted character is from this guild.
  409. $p_rid = $_POST['promote_position'];
  410. $p_cid = user_character_id($_POST['promote_character']);
  411. $p_guild = get_player_guild_data($p_cid);
  412.  
  413. if ($p_guild['guild_id'] == $gid) {
  414. // Do the magic.
  415. if ($config['TFSVersion'] !== 'TFS_10') $chardata = user_character_data($p_cid, 'online');
  416. else $chardata['online'] = (user_is_online_10($p_cid)) ? 1 : 0;
  417. if ($chardata['online'] == 0) {
  418. if ($config['TFSVersion'] !== 'TFS_10') update_player_guild_position($p_cid, $p_rid);
  419. else update_player_guild_position_10($p_cid, $p_rid);
  420. header('Location: guilds.php?name='. $_GET['name']);
  421. exit();
  422. } else echo '<font color="red" size="4">Character not offline.</font>';
  423.  
  424. }
  425. }
  426. if (!empty($_POST['invite'])) {
  427. if (user_character_exist($_POST['invite'])) {
  428. // Make sure they are not in another guild
  429.  
  430. if ($config['TFSVersion'] != 'TFS_10') {
  431. $charname = sanitize($_POST['invite']);
  432. $playerdata = mysql_select_single("SELECT `id`, `rank_id` FROM `players` WHERE `name`='$charname' LIMIT 1;");
  433. $charid = $playerdata['id'];
  434. $membership = ($playerdata['rank_id'] > 0) ? true : false;
  435. } else {
  436. $charid = user_character_id($_POST['invite']);
  437. $membership = mysql_select_single("SELECT `rank_id` FROM `guild_membership` WHERE `player_id`='$charid' LIMIT 1;");
  438. }
  439. if (!$membership) {
  440. //
  441. $status = false;
  442. if ($inv_data !== false) {
  443. foreach ($inv_data as $inv) {
  444. if ($inv['player_id'] == user_character_id($_POST['invite'])) $status = true;
  445. }
  446. }
  447. foreach ($players as $player) {
  448. if ($player['name'] == $_POST['invite']) $status = true;
  449. }
  450.  
  451. if ($status == false) {
  452. guild_invite_player($charid, $gid);
  453. header('Location: guilds.php?name='. $_GET['name']);
  454. exit();
  455. } else echo '<font color="red" size="4">That character is already invited(or a member) on this guild.</font>';
  456. } else echo '<font color="red" size="4">That character is already in a guild.</font>';
  457.  
  458. } else echo '<font color="red" size="4">That character name does not exist.</font>';
  459. }
  460. // Guild Message (motd)
  461. if (!empty($_POST['motd'])) {
  462. $motd = sanitize($_POST['motd']);
  463. mysql_update("UPDATE `guilds` SET `motd`='$motd' WHERE `id`='$gid' LIMIT 1;");
  464. header('Location: guilds.php?name='. $_GET['name']);
  465. exit();
  466. }
  467.  
  468. if (!empty($_POST['disband'])) {
  469. //
  470. $gidd = (int)$_POST['disband'];
  471. $members = get_guild_players($gidd);
  472. $online = false;
  473.  
  474. // First figure out if anyone are online.
  475. foreach ($members as $member) {
  476. if ($config['TFSVersion'] !== 'TFS_10') $chardata = user_character_data(user_character_id($member['name']), 'online');
  477. else $chardata['online'] = (user_is_online_10(user_character_id($member['name']))) ? 1 : 0;
  478. if ($chardata['online'] == 1) {
  479. $online = true;
  480. }
  481. }
  482.  
  483. if (!$online) {
  484. // Then remove guild rank from every player.
  485. if ($config['TFSVersion'] !== 'TFS_10') foreach ($members as $member) guild_player_leave(user_character_id($member['name']));
  486. else foreach ($members as $member) guild_player_leave_10(user_character_id($member['name']));
  487.  
  488. // Remove all guild invitations to this guild
  489. if ($inv_count > 0) guild_remove_invites($gidd);
  490.  
  491. // Then remove the guild itself.
  492. guild_delete($gidd);
  493. header('Location: success.php');
  494. exit();
  495. } else echo '<font color="red" size="4">All members must be offline to disband the guild.</font>';
  496. }
  497.  
  498. if (!empty($_POST['new_leader'])) {
  499. $new_leader = (int)$_POST['new_leader'];
  500. $old_leader = guild_leader($gid);
  501.  
  502. $online = false;
  503. if ($config['TFSVersion'] !== 'TFS_10') {
  504. $newData = user_character_data($new_leader, 'online');
  505. $oldData = user_character_data($old_leader, 'online');
  506. } else {
  507. $newData['online'] = (user_is_online_10($new_leader)) ? 1 : 0;
  508. $oldData['online'] = (user_is_online_10($old_leader)) ? 1 : 0;
  509. }
  510. if ($newData['online'] == 1 || $oldData['online'] == 1) $online = true;
  511.  
  512. if ($online == false) {
  513. if (guild_change_leader($new_leader, $old_leader)) {
  514. header('Location: guilds.php?name='. $_GET['name']);
  515. exit();
  516. } else echo '<font color="red" size="4">Something went wrong when attempting to change leadership.</font>';
  517. } else echo '<font color="red" size="4">The new and old leader must be offline to change leadership.</font>';
  518. }
  519.  
  520. if (!empty($_POST['change_ranks'])) {
  521. $c_gid = (int)$_POST['change_ranks'];
  522. $c_ranks = get_guild_rank_data($c_gid);
  523. $rank_data = array();
  524. $rank_ids = array();
  525.  
  526. // Feed new rank data
  527. foreach ($c_ranks as $rank) {
  528. $tmp = 'rank_name!'. $rank['level'];
  529. if (!empty($_POST[$tmp])) {
  530. $rank_data[$rank['level']] = sanitize($_POST[$tmp]);
  531. $rank_ids[$rank['level']] = $rank['id'];
  532. }
  533. }
  534.  
  535. foreach ($rank_data as $level => $name) {
  536. guild_change_rank($rank_ids[$level], $name);
  537. }
  538.  
  539. header('Location: guilds.php?name='. $_GET['name']);
  540. exit();
  541. }
  542.  
  543. if (!empty($_POST['remove_member'])) {
  544. $name = sanitize($_POST['remove_member']);
  545. $cid = user_character_id($name);
  546.  
  547. if ($config['TFSVersion'] !== 'TFS_10') guild_remove_member($cid);
  548. else guild_remove_member_10($cid);
  549. header('Location: guilds.php?name='. $_GET['name']);
  550. exit();
  551. }
  552.  
  553. if (!empty($_POST['forumGuildId'])) {
  554. if ($config['forum']['guildboard'] === true) {
  555. $forumExist = mysql_select_single("SELECT `id` FROM `znote_forum` WHERE `guild_id`='$gid' LIMIT 1;");
  556. if ($forumExist === false) {
  557. // Insert data
  558. mysql_insert("INSERT INTO `znote_forum` (`name`, `access`, `closed`, `hidden`, `guild_id`)
  559. VALUES ('Guild',
  560. '1',
  561. '0',
  562. '0',
  563. '$gid');");
  564. echo '<h1>Guild board has been created.</h1>';
  565. } else echo '<h1>Guild board already exist.</h1>';
  566.  
  567. } else {
  568. echo '<h1>Error: Guild board system is disabled.</h1>';
  569. }
  570. }
  571.  
  572. if ($config['TFSVersion'] == 'TFS_02' || $config['TFSVersion'] == 'TFS_10' && $config['guildwar_enabled'] === true) {
  573. if (!empty($_POST['warinvite'])) {
  574. if (get_guild_id($_POST['warinvite'])) {
  575. $status = false;
  576. $war_invite = mysql_select_single("SELECT `id` FROM `guilds` WHERE `id` = '$gid';");
  577. $targetGuild = get_guild_id($_POST['warinvite']);
  578. if ($war_invite !== false) {
  579. foreach ($war_invite as $inv) {
  580. if ($inv['id'] == $targetGuild) $status = true;
  581. }
  582. }
  583.  
  584. $check_guild = get_guild_name($gid);
  585. foreach ($check_guild as $guild) {
  586. if ($guild['name'] == $_POST['warinvite']) $status = true;
  587. }
  588.  
  589. $wars = mysql_select_multi("SELECT `id`, `guild1`, `guild2`, `status` FROM `guild_wars` WHERE (`guild1` = '$gid' OR `guild1` = '$targetGuild') AND (`guild2` = '$gid' OR `guild2` = '$targetGuild') AND `status` IN (0, 1);");
  590. if ($status == false && $wars == false) {
  591. guild_war_invitation($gid, $targetGuild);
  592. $limit = (empty($_POST['limit'])) ? 100 : (int)$_POST['limit'];
  593. mysql_insert("INSERT INTO `znote_guild_wars` (`limit`) VALUES ('$limit');");
  594. header('Location: guilds.php?name='. $_GET['name']);
  595. exit();
  596. } else echo '<font color="red" size="4">This guild has already been invited to war(or you\'re trying to invite your own).</FONT>';
  597. } else echo '<font color="red" size="4">That guild name does not exist.</font>';
  598. }
  599.  
  600. if (!empty($_POST['cancel_war_invite'])) {
  601. cancel_war_invitation($_POST['cancel_war_invite'], $gid);
  602. header('Location: guilds.php?name='. $_GET['name']);
  603. exit();
  604. }
  605.  
  606. if (!empty($_POST['reject_war_invite'])) {
  607. reject_war_invitation($_POST['reject_war_invite'], $gid);
  608. header('Location: guilds.php?name='. $_GET['name']);
  609. exit();
  610. }
  611.  
  612. if (!empty($_POST['accept_war_invite'])) {
  613. accept_war_invitation($_POST['accept_war_invite'], $gid);
  614. header('Location: guilds.php?name='. $_GET['name']);
  615. exit();
  616. }
  617. }
  618.  
  619. $members = count_guild_members($gid);
  620. $ranks = get_guild_rank_data($gid);
  621. ?>
  622. <!-- Form to create guild -->
  623. <?php
  624. if ($config['forum']['guildboard'] === true && $config['forum']['enabled'] === true) {
  625. $forumExist = mysql_select_single("SELECT `id` FROM `znote_forum` WHERE `guild_id`='$gid' LIMIT 1;");
  626. if ($forumExist === false) {
  627. ?>
  628. <form action="" method="post">
  629. <ul>
  630. <li>Create forum guild board:<br>
  631. <input type="hidden" name="forumGuildId" value="<?php echo $gid; ?>">
  632. <input type="submit" value="Create Guild Board">
  633. </ul>
  634. </form>
  635. <?php
  636. }
  637. }
  638.  
  639. if ($config['use_guild_logos']) {
  640.  
  641. ?>
  642.  
  643. <!-- form to upload guild logo -->
  644. <form action="" method="post" enctype="multipart/form-data">
  645. <ul>
  646. <li>Upload guild logo [.gif images only, 100x100px size]:<br>
  647. <input type="file" name="file" id="file" accept="image/gif">
  648. <input type="submit" name="submit" value="Upload guild logo">
  649. </li>
  650. </ul>
  651. </form>
  652.  
  653. <?php
  654.  
  655. if (!empty($_FILES['file'])) {
  656.  
  657. check_image($_FILES['file']);
  658.  
  659. echo '<br><br>';
  660. }
  661.  
  662. } ?>
  663. <!-- forms to invite character -->
  664. <form action="" method="post">
  665. <ul>
  666. <li>Invite Character to guild:<br>
  667. <input type="text" name="invite" placeholder="Character name">
  668. <input type="submit" value="Invite Character">
  669. </li>
  670. </ul>
  671. </form>
  672. <!-- Guild message of the day motd -->
  673. <form action="" method="post">
  674. <ul>
  675. <li>Change guild message:</li>
  676. <li>
  677. <textarea name="motd" placeholder="Guild Message" cols="50" rows="3"><?php echo $guild['motd']; ?></textarea><br>
  678. <input type="submit" value="Update guild message">
  679. </li>
  680. </ul>
  681. </form>
  682. <!-- FORMS TO CHANGE GUILD NICK -->
  683. <form action="" method="post">
  684. <ul>
  685. <li>
  686. Change Guild Nick:<br>
  687. <select name="player_guildnick">
  688. <?php
  689. //$gid = get_guild_id($_GET['name']);
  690. //$players = get_guild_players($gid);
  691.  
  692. foreach ($players as $player) {
  693. if ($player['rank_level'] != 3) {
  694. echo '<option value="'. $player['name'] .'">'. $player['name'] .'</option>';
  695. } else {
  696. if ($highest_access == 3) {
  697. echo '<option value="'. $player['name'] .'">'. $player['name'] .'</option>';
  698. }
  699. }
  700. }
  701. ?>
  702. </select>
  703. <input type="text" name="guildnick" maxlength="15" placeholder="leave blank to erase">
  704. <input type="submit" value="Change Nick">
  705. </li>
  706. </ul>
  707. </form>
  708. <!-- END FORMS TO CHANGE GUILD NICK -->
  709. <?php if ($members > 1) { ?>
  710. <!-- FORMS TO PROMOTE CHARACTER-->
  711. <form action="" method="post">
  712. <ul>
  713. <li>
  714. Promote Character:<br>
  715. <select name="promote_character">
  716. <?php
  717. //$gid = get_guild_id($_GET['name']);
  718. //$players = get_guild_players($gid);
  719. foreach ($players as $player) {
  720. if ($player['rank_level'] != 3) {
  721. echo '<option value="'. $player['name'] .'">'. $player['name'] .'</option>';
  722. }
  723. }
  724. ?>
  725. </select>
  726. <select name="promote_position">
  727. <?php
  728. foreach ($ranks as $rank) {
  729. if ($rank['level'] != 3) {
  730. if ($rank['level'] != 2) {
  731. echo '<option value="'. $rank['id'] .'">'. $rank['name'] .'</option>';
  732. } else {
  733. if ($highest_access == 3) {
  734. echo '<option value="'. $rank['id'] .'">'. $rank['name'] .'</option>';
  735. }
  736. }
  737. }
  738. }
  739. ?>
  740. </select>
  741. <input type="submit" value="Promote Member">
  742. </li>
  743. </ul>
  744. </form>
  745. <!-- Remove member from guild -->
  746. <form action="" method="post">
  747. <ul>
  748. <li>
  749. Kick member from guild:<br>
  750. <select name="remove_member">
  751. <?php
  752. //$gid = get_guild_id($_GET['name']);
  753. //$players = get_guild_players($gid);
  754. foreach ($players as $player) {
  755. if ($player['rank_level'] != 3) {
  756. if ($player['rank_level'] != 2) {
  757. echo '<option value="'. $player['name'] .'">'. $player['name'] .'</option>';
  758. } else if ($highest_access == 3) echo '<option value="'. $player['name'] .'">'. $player['name'] .'</option>';
  759. }
  760. }
  761. ?>
  762. </select>
  763. <input type="submit" value="Remove member">
  764. </li>
  765. </ul>
  766. </form>
  767. <?php } ?>
  768. <br><br>
  769. <?php if ($highest_access == 3) { ?>
  770. <!-- forms to change rank titles -->
  771. <form action="" method="post">
  772. <ul>
  773. <li><b>Change rank titles:</b><br>
  774. <?php
  775. $rank_count = 1;
  776. foreach ($ranks as $rank) {
  777. echo '<input type="text" name="rank_name!'. $rank['level'] .'" value="'. $rank['name'] .'">';
  778. }
  779. echo '<input type="hidden" name="change_ranks" value="' . $gid . '" />';
  780. ?>
  781. <input type="submit" value="Update Ranks">
  782. </li>
  783. </ul>
  784. </form>
  785. <!-- forms to disband guild -->
  786. <form action="" method="post">
  787. <ul>
  788. <li><b>DELETE GUILD (All members must be offline):</b><br>
  789. <?php echo '<input type="hidden" name="disband" value="' . $gid . '" />'; ?>
  790. <input type="submit" value="Disband Guild">
  791. </li>
  792. </ul>
  793. </form>
  794. <!-- forms to change leadership-->
  795. <?php if ($members > 1) { ?>
  796. <form action="" method="post">
  797. <ul>
  798. <li><b>Change Leadership with:</b><br>
  799. <select name="new_leader">
  800. <?php
  801. //$gid = get_guild_id($_GET['name']);
  802. //$players = get_guild_players($gid);
  803. foreach ($players as $player) {
  804. if ($player['rank_level'] != 3) {
  805. echo '<option value="'. $player['id'] .'">'. $player['name'] .'</option>';
  806. }
  807. }
  808. ?>
  809. </select>
  810. <input type="submit" value="Change Leadership">
  811. </li>
  812. </ul>
  813. </form>
  814. <?php } ?>
  815. <?php if ($config['TFSVersion'] == 'TFS_02' || $config['TFSVersion'] == 'TFS_10' && $config['guildwar_enabled'] === true) { ?>
  816. <h2>Guild War Management:</h2>
  817. <form action="" method="post">
  818. <ul>
  819. <li>Invite guild to war:<br>
  820. <input type="text" name="warinvite" placeholder="Guild name">
  821. <input type="number" min="10" max="999" name="limit">
  822. <input type="submit" value="Invite Guild">
  823. </li>
  824. </ul>
  825. </form>
  826. <style type="text/css">
  827. form {display: inline;}
  828. #btnspace{margin-left:100px;}
  829. </style>
  830. <table id="guildsTable" class="table table-striped table-hover"><tr class="yellow"><th>Aggressor</th><th>Information</th><th>Enemy</th></tr>
  831. <?php
  832. $i = 0;
  833. $wars = mysql_select_multi("SELECT `guild1`, `guild2`, `name1`, `name2`, `started`, (SELECT `limit` FROM `znote_guild_wars` WHERE `znote_guild_wars`.`id` = `guild_wars`.`id`) AS `limit` FROM `guild_wars` WHERE (`guild1` = '$gid' OR `guild2` = '$gid') AND `status` = 0 ORDER BY `started` DESC");
  834. if (!empty($wars) || $wars !== false) {
  835. foreach($wars as $war) {
  836. $i++;
  837. echo '<tr><td><a href="guilds.php?name='.$war['name1'].'">'.$war['name1'].'</a></td><td>';
  838. echo '<center><b>Pending invitation</b><br />Invited on ' . getClock($war['started'], true) . '.<br />The frag limit is set to ' . $war['limit'] . ' frags.<br />';
  839. if ($war['guild1'] == $gid) {
  840. echo '<br /><form action="" method="post"><input type="hidden" name="cancel_war_invite" value="'.$war['guild2'].'" /><input type="submit" value="Cancel Invitation"></form>';
  841. } else if ($war['guild2'] == $gid) {
  842. echo '<br><form action="" method="post"><input type="hidden" name="accept_war_invite" value="'.$war['guild1'].'" /><input type="submit" value="Accept Invitation"></form>';
  843. echo '<form action="" method="post"><input type="hidden" name="reject_war_invite" value="'.$war['guild1'].'" /><input type="submit" ID="btnspace" value="Reject Invitation"></form>';
  844. }
  845. echo '</center></td><td><a href="guilds.php?name='.$war['name2'].'">'.$war['name2'].'</a></td></tr>';
  846. }
  847. }
  848.  
  849. if ($i == 0)
  850. echo '<tr><td colspan="3"><center>Currently there are no pending invitations.</center></td></tr>';
  851. echo '</table>';
  852. } } ?>
  853. <?php
  854. }
  855. }
  856. ?>
  857. <!-- end leader-->
  858. <?php
  859. if ($config['guildwar_enabled'] === true) {
  860. if ($config['TFSVersion'] == 'TFS_02' || $config['TFSVersion'] == 'TFS_10') $wardata = get_guild_wars();
  861. else if ($config['TFSVersion'] == 'TFS_03') $wardata = get_guild_wars03();
  862. else die("Can't recognize TFS version. It has to be either TFS_02 or TFS_03. Correct this in config.php");
  863. $war_exist = false;
  864. if ($wardata !== false) {
  865. foreach ($wardata as $wars) {
  866. if ($wars['guild1'] == $gid || $wars['guild2'] == $gid) $war_exist = true;
  867. }
  868. }
  869. if ($war_exist) {
  870. ?>
  871. <h2>War overview:</h2>
  872. <table>
  873. <tr class="yellow">
  874. <td>Attacker:</td>
  875. <td>Defender:</td>
  876. <td>status:</td>
  877. <td>started:</td>
  878. </tr>
  879. <?php
  880. foreach ($wardata as $wars) {
  881. if ($wars['guild1'] == $gid || $wars['guild2'] == $gid) {
  882. $url = url("guildwar.php?warid=". $wars['id']);
  883. echo '<tr class="special" onclick="javascript:window.location.href=\'' . $url . '\'">';
  884. echo '<td>'. $wars['name1'] .'</td>';
  885. echo '<td>'. $wars['name2'] .'</td>';
  886. echo '<td>'. $config['war_status'][$wars['status']] .'</td>';
  887. echo '<td>'. getClock($wars['started'], true) .'</td>';
  888. echo '</tr>';
  889. }
  890. }
  891. ?>
  892. </table>
  893. <?php
  894. }
  895. }
  896. ?>
  897. <!-- leave guild with character -->
  898. <?php
  899. $bool = false;
  900. if (user_logged_in() === true) {
  901. for ($i = 0; $i < $char_count; $i++) {
  902. foreach ($players as $player) {
  903. if ($player['name'] == $characters[$i]) $bool = true;
  904. }
  905. }
  906. if ($bool) {
  907. $forumExist = mysql_select_single("SELECT `id` FROM `znote_forum` WHERE `guild_id`='$gid' LIMIT 1;");
  908. if ($forumExist !== false) {
  909. ?> - <font size="4"><a href="forum.php?cat=<?php echo $forumExist['id']; ?>">Visit Guild Board</a></font><br><br><br><?php
  910. }
  911. ?>
  912.  
  913. <form action="" method="post">
  914. <ul>
  915. <li>
  916. Leave Guild:<br>
  917. <select name="leave_guild">
  918. <option disabled>With...</option>
  919. <?php
  920. for ($i = 0; $i < $char_count; $i++) {
  921. foreach ($players as $player) {
  922. if ($player['name'] == $characters[$i]) {
  923. $data = get_player_guild_data($player['id']);
  924. if ($data['rank_level'] != 3) echo '<option value="'. $characters[$i] .'">'. $characters[$i] .'</option>';
  925. else echo '<option disabled>'. $characters[$i] .' [disabled:Leader]</option>';
  926. }
  927. }
  928. }
  929. ?>
  930. </select>
  931. <input type="submit" value="Leave Guild">
  932. </li>
  933. </ul>
  934. </form>
  935. <?php
  936. } // display form if user has a character in guild
  937. } // user logged in
  938. } // if warname as $_GET
  939. include 'layout/overall/footer.php'; ?>
Add Comment
Please, Sign In to add comment