-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathaddress_info.php
74 lines (65 loc) · 3.48 KB
/
address_info.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?php
require_once 'include/page_base.php';
require_once 'include/player_stats.php';
require_once 'include/club.php';
require_once 'include/languages.php';
require_once 'include/address.php';
class Page extends AddressPageBase
{
protected function show_body()
{
$playing_count = 0;
$civils_win_count = 0;
$mafia_win_count = 0;
$query = new DbQuery('SELECT g.result, count(*) FROM games g JOIN events e ON g.event_id = e.id WHERE e.address_id = ? AND g.is_canceled = FALSE GROUP BY g.result', $this->id);
while ($row = $query->next())
{
switch ($row[0])
{
case 0:
$playing_count = $row[1];
break;
case 1:
$civils_win_count = $row[1];
break;
case 2:
$mafia_win_count = $row[1];
break;
}
}
$games_count = $civils_win_count + $mafia_win_count + $playing_count;
list($events_count) = Db::record(get_label('event'), 'SELECT count(*) FROM events e WHERE (e.flags & ' . (EVENT_FLAG_CANCELED | EVENT_FLAG_HIDDEN_AFTER) . ') = 0 AND start_time < UNIX_TIMESTAMP() AND e.address_id = ?', $this->id);
if ($games_count > 0)
{
// stats
echo '<p><table class="bordered light" width="100%">';
echo '<tr class="th-short darker"><td colspan="2">' . get_label('Stats') . '</td></tr>';
echo '<tr><td class="dark" width="200">'.get_label('Events held').':</td><td>' . $events_count . '</td></tr>';
echo '<tr><td class="dark">'.get_label('Games played').':</td><td>' . ($civils_win_count + $mafia_win_count) . '</td></tr>';
if ($civils_win_count + $mafia_win_count > 0)
{
echo '<tr><td class="dark">'.get_label('Mafia wins').':</td><td>' . $mafia_win_count . ' (' . number_format($mafia_win_count*100.0/($civils_win_count + $mafia_win_count), 1) . '%)</td></tr>';
echo '<tr><td class="dark">'.get_label('Town wins').':</td><td>' . $civils_win_count . ' (' . number_format($civils_win_count*100.0/($civils_win_count + $mafia_win_count), 1) . '%)</td></tr>';
}
if ($playing_count > 0)
{
echo '<tr><td class="dark">'.get_label('Still playing').':</td><td>' . $playing_count . '</td></tr>';
}
if ($civils_win_count + $mafia_win_count > 0)
{
list ($counter) = Db::record(get_label('game'), 'SELECT COUNT(DISTINCT p.user_id) FROM players p JOIN games g ON p.game_id = g.id JOIN events e ON g.event_id = e.id WHERE e.address_id = ? AND g.is_canceled = FALSE AND g.result > 0', $this->id);
echo '<tr><td class="dark">'.get_label('People played').':</td><td>' . $counter . '</td></tr>';
list ($counter) = Db::record(get_label('game'), 'SELECT COUNT(DISTINCT g.moderator_id) FROM games g JOIN events e ON g.event_id = e.id WHERE e.address_id = ? AND g.is_canceled = FALSE', $this->id);
echo '<tr><td class="dark">'.get_label('Referees').':</td><td>' . $counter . '</td></tr>';
list ($a_game, $s_game, $l_game) = Db::record(get_label('game'), 'SELECT AVG(g.end_time - g.start_time), MIN(g.end_time - g.start_time), MAX(g.end_time - g.start_time) FROM games g JOIN events e ON g.event_id = e.id WHERE g.result > 0 AND g.result < 3 AND e.address_id = ? AND g.is_canceled = FALSE', $this->id);
echo '<tr><td class="dark">'.get_label('Average game duration').':</td><td>' . format_time($a_game) . '</td></tr>';
echo '<tr><td class="dark">'.get_label('Shortest game').':</td><td>' . format_time($s_game) . '</td></tr>';
echo '<tr><td class="dark">'.get_label('Longest game').':</td><td>' . format_time($l_game) . '</td></tr>';
}
echo '</table></p>';
}
}
}
$page = new Page();
$page->run(get_label('Main Page'));
?>