From da8feec5d82dd1464b86ddf24f69e754a4f499e5 Mon Sep 17 00:00:00 2001 From: Znote Date: Sat, 15 Nov 2014 20:35:58 +0100 Subject: [PATCH] http://3.ii.gl/nhabjNNZb.png Guild list now also shows logo, motd, average level and guild level --- engine/function/general.php | 2 +- engine/function/users.php | 17 +++++++++- guilds.php | 63 ++++++++++++++++++++++++++++--------- 3 files changed, 65 insertions(+), 17 deletions(-) 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 List:

- - - - + + + + = 1) { $url = url("guilds.php?name=". $guild['name']); - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; + ?> + + + + + + '. getClock($guild['creationdata'], true) .''; } } ?> @@ -87,6 +118,8 @@ if (user_logged_in() === true) { $gid = get_guild_id($guildname); if ($gid === false) { create_guild($user_id, $guildname); + // Re-cache the guild list + $guilds = guild_list($config['TFSVersion']); header('Location: success.php'); exit(); } else echo 'A guild with that name already exist.'; @@ -176,7 +209,7 @@ if (user_logged_in() === true) { ".sanitize($_GET['error'])."

" : ""; ?>
- +
Guild name:Members:Founded:LogoDescriptionGuild data
'. $guild['name'] .''. $guild['total'] .''. getClock($guild['creationdata'], true) .'
+ + + + 0) echo '
'.$guild['motd']; ?> +
+ +
+
+