http://3.ii.gl/nhabjNNZb.png Guild list now also shows logo, motd, average level and guild level

This commit is contained in:
Znote 2014-11-15 20:35:58 +01:00
parent 20c4ee67bd
commit da8feec5d8
3 changed files with 65 additions and 17 deletions

View File

@ -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';

View File

@ -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;

View File

@ -1,6 +1,26 @@
<?php require_once 'engine/init.php';
if ($config['require_login']['guilds']) protect_page();
$isOtx = ($config['CustomVersion'] == 'OTX') ? true : false;
function guild_list($TFSVersion) {
$cache = new Cache('engine/cache/guildlist');
if ($cache->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
?>
<h1>Guild List:</h1>
<?php
//data_dump($guild, false, "guild data");
if ($config['TFSVersion'] != 'TFS_10') $guilds = mysql_select_multi("SELECT `t`.`id`, `t`.`name`, `t`.`creationdata`, (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`, (SELECT COUNT('guild_id') FROM `guild_membership` WHERE `guild_id`=`id`) AS `total` FROM `guilds` ORDER BY `name`;");
if ($guilds !== false) {
$guilds = guild_list($config['TFSVersion']);
if (isset($guilds) && !empty($guilds) && $guilds !== false) {
//data_dump($guilds, false, "Guilds");
?>
<table id="guildsTable" class="table table-striped table-hover">
<tr class="yellow">
<th>Guild name:</th>
<th>Members:</th>
<th>Founded:</th>
<th>Logo</th>
<th>Description</th>
<th>Guild data</th>
<!-- <th>Founded:</th> -->
</tr>
<?php
foreach ($guilds as $guild) {
if ($guild['total'] >= 1) {
$url = url("guilds.php?name=". $guild['name']);
echo '<tr class="special" onclick="javascript:window.location.href=\'' . $url . '\'">';
echo '<td>'. $guild['name'] .'</td>';
echo '<td>'. $guild['total'] .'</td>';
echo '<td>'. getClock($guild['creationdata'], true) .'</td>';
echo '</tr>';
?>
<tr class="special" onclick="javascript:window.location.href='<?php echo $url; ?>'">
<td style="width: 100px;">
<img style="max-height: 100px; margin: auto; display: block;" src="<?php logo_exists($guild['name']); ?>">
</td>
<td>
<b><?php echo $guild['name']; ?></b>
<?php if (strlen($guild['motd']) > 0) echo '<br>'.$guild['motd']; ?>
</td>
<td>
<?php echo "Total members: ".$guild['level']['players']; ?>
<br><?php echo "Average level: ".$guild['level']['avg'].""; ?>
<br><?php echo "Guild level: ".$guild['level']['total']; ?>
</td>
</tr>
<?php
//echo '<td>'. getClock($guild['creationdata'], true) .'</td>';
}
}
?>
@ -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) {
<?php echo (isset($_GET['error'])) ? "<font size='5' color='red'>".sanitize($_GET['error'])."</font><br><br>" : ""; ?>
<?php if ($config['use_guild_logos']): ?>
<div id="guildImageDiv" style="float: left; margin-right: 10px;">
<img style="max-width: 100px; max-height: 100px;" src="<?php logo_exists(sanitize($_GET['name'])); ?>"></img>
<img style="max-width: 100px; max-height: 100px;" src="<?php logo_exists(sanitize($_GET['name'])); ?>">
</div>
<?php endif; ?>
<div id="guildDescription">