diff --git a/engine/function/general.php b/engine/function/general.php index 51b0fc7..6cd5108 100644 --- a/engine/function/general.php +++ b/engine/function/general.php @@ -503,7 +503,7 @@ function check_image($image) { // Check guild logo function logo_exists($guild) { - + $guild = sanitize($guild); if (file_exists('engine/guildimg/'.$guild.'.gif')) { echo'engine/guildimg/'.$guild.'.gif'; diff --git a/engine/function/users.php b/engine/function/users.php index cb84607..93b3022 100644 --- a/engine/function/users.php +++ b/engine/function/users.php @@ -443,7 +443,7 @@ function create_guild($cid, $name) { $time = time(); // Create the guild - mysql_insert("INSERT INTO `guilds` (`name`, `ownerid`, `creationdata`, `motd`) VALUES ('$name', '$cid', '$time', 'The guild has been created!');"); + mysql_insert("INSERT INTO `guilds` (`name`, `ownerid`, `creationdata`, `motd`) VALUES ('$name', '$cid', '$time', '');"); // Get guild id $gid = get_guild_id($name); @@ -530,6 +530,21 @@ function get_guild_players($gid) { else return mysql_select_multi("SELECT p.id, p.name, p.level, p.vocation, gm.rank_id, gm.nick AS `guildnick`, gr.name AS `rank_name` FROM players AS p LEFT JOIN guild_membership AS gm ON gm.player_id = p.id LEFT JOIN guild_ranks AS gr ON gr.id = gm.rank_id WHERE gm.guild_id = '$gid' ORDER BY gm.rank_id, p.name"); } +// Get guild level data (avg level, total level, count of players) +function get_guild_level_data($gid) { + $gid = (int)$gid; + $data = (config('TFSVersion') !== 'TFS_10') ? mysql_select_multi("SELECT p.level FROM players AS p LEFT JOIN guild_ranks AS gr ON gr.id = p.rank_id WHERE gr.guild_id ='$gid';") : mysql_select_multi("SELECT p.level, FROM players AS p LEFT JOIN guild_membership AS gm ON gm.player_id = p.id WHERE gm.guild_id = '$gid' ORDER BY gm.rank_id, p.name;"); + $members = 0; + $totallevels = 0; + if ($data !== false) { + foreach ($data as $player) { + $members++; + $totallevels += $player['level']; + } + return array('avg' => (int)($totallevels / $members), 'total' => $totallevels, 'players' => $members); + } else return false; +} + // Returns total members in a guild (integer) function count_guild_members($gid) { $gid = (int)$gid; diff --git a/guilds.php b/guilds.php index 4a96d50..8f96594 100644 --- a/guilds.php +++ b/guilds.php @@ -1,6 +1,26 @@ hasExpired()) { + 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`;"); + 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`;"); + + // Add level data info to guilds + if ($guilds !== false) + for ($i = 0; $i < count($guilds); $i++) + $guilds[$i]['level'] = get_guild_level_data($guilds[$i]['id']); + + $cache->setContent($guilds); + $cache->save(); + } else { + $guilds = $cache->load(); + } + return $guilds; +} + include 'layout/overall/header.php'; if (user_logged_in() === true) { @@ -21,31 +41,42 @@ if (user_logged_in() === true) { if (empty($_GET['name'])) { // Display the guild list -?> -
Guild name: | -Members: | -Founded: | +Logo | +Description | +Guild data | +
---|---|---|---|---|---|
'. $guild['name'] .' | '; - echo ''. $guild['total'] .' | '; - echo ''. getClock($guild['creationdata'], true) .' | '; - echo '|||
+ |
+
+
+ 0) echo ' '.$guild['motd']; ?> + |
+
+
+ + + |
+