341 lines
14 KiB
PHP
341 lines
14 KiB
PHP
|
<?php
|
|||
|
/*
|
|||
|
HLstatsX Community Edition - Real-time player and clan rankings and statistics
|
|||
|
Copyleft (L) 2008-20XX Nicholas Hastings (nshastings@gmail.com)
|
|||
|
http://www.hlxcommunity.com
|
|||
|
|
|||
|
HLstatsX Community Edition is a continuation of
|
|||
|
ELstatsNEO - Real-time player and clan rankings and statistics
|
|||
|
Copyleft (L) 2008-20XX Malte Bayer (steam@neo-soft.org)
|
|||
|
http://ovrsized.neo-soft.org/
|
|||
|
|
|||
|
ELstatsNEO is an very improved & enhanced - so called Ultra-Humongus Edition of HLstatsX
|
|||
|
HLstatsX - Real-time player and clan rankings and statistics for Half-Life 2
|
|||
|
http://www.hlstatsx.com/
|
|||
|
Copyright (C) 2005-2007 Tobias Oetzel (Tobi@hlstatsx.com)
|
|||
|
|
|||
|
HLstatsX is an enhanced version of HLstats made by Simon Garner
|
|||
|
HLstats - Real-time player and clan rankings and statistics for Half-Life
|
|||
|
http://sourceforge.net/projects/hlstats/
|
|||
|
Copyright (C) 2001 Simon Garner
|
|||
|
|
|||
|
This program is free software; you can redistribute it and/or
|
|||
|
modify it under the terms of the GNU General Public License
|
|||
|
as published by the Free Software Foundation; either version 2
|
|||
|
of the License, or (at your option) any later version.
|
|||
|
|
|||
|
This program is distributed in the hope that it will be useful,
|
|||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|||
|
GNU General Public License for more details.
|
|||
|
|
|||
|
You should have received a copy of the GNU General Public License
|
|||
|
along with this program; if not, write to the Free Software
|
|||
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
|
|
|||
|
For support and installation notes visit http://www.hlxcommunity.com
|
|||
|
*/
|
|||
|
|
|||
|
if ( !defined('IN_HLSTATS') )
|
|||
|
{
|
|||
|
die('Do not access this file directly.');
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
* HLstatsX Page Header This file will be inserted at the top of every page
|
|||
|
* generated by HLstats. This file can contain PHP code.
|
|||
|
*/
|
|||
|
|
|||
|
// hit counter
|
|||
|
$db->query("UPDATE hlstats_Options SET value=value+1 WHERE keyname='counter_hits';");
|
|||
|
|
|||
|
// visit counter
|
|||
|
if ($_COOKIE['ELstatsNEO_Visit'] == 0) {
|
|||
|
// kein cookie gefunden, also visitcounter erh<72>hen und cookie setzen
|
|||
|
$db->query("UPDATE hlstats_Options SET value=value+1 WHERE keyname='counter_visits';");
|
|||
|
@setcookie('ELstatsNEO_Visit', '1', time() + ($g_options['counter_visit_timeout'] * 60), '/');
|
|||
|
}
|
|||
|
|
|||
|
global $game,$mode;
|
|||
|
|
|||
|
// see if they have a defined style or a new style they'd like
|
|||
|
$selectedStyle = (isset($_COOKIE['style']) && $_COOKIE['style']) ? $_COOKIE['style'] : "";
|
|||
|
$selectedStyle = isset($_POST['stylesheet']) ? $_POST['stylesheet'] : $selectedStyle;
|
|||
|
|
|||
|
// if they do make sure it exists
|
|||
|
if(!empty($selectedStyle))
|
|||
|
{
|
|||
|
// this assumes that styles is up a directory from page_path, this might be a bad assumption
|
|||
|
$testfile=sprintf("%s/%s/%s", PAGE_PATH, '../styles', $selectedStyle);
|
|||
|
if(!file_exists($testfile))
|
|||
|
{
|
|||
|
$selectedStyle = "";
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// if they don't have one defined or the defined was is invalid use the default
|
|||
|
if(empty($selectedStyle))
|
|||
|
{
|
|||
|
$selectedStyle=$g_options['style'];
|
|||
|
}
|
|||
|
|
|||
|
// if they had one, or tried to have one, set it to whatever we resolved it to
|
|||
|
if (isset($_POST['stylesheet']) || isset($_COOKIE['style']))
|
|||
|
{
|
|||
|
setcookie('style', $selectedStyle, time()+60*60*24*30);
|
|||
|
}
|
|||
|
|
|||
|
// this code here assumes that styles end with .css (the selector box for users and for admin does NOT check), someone may want to change this -octo
|
|||
|
// Determine if we have custom nav images available
|
|||
|
if ($selectedStyle) {
|
|||
|
$style = preg_replace('/\.css$/','',$selectedStyle);
|
|||
|
} else {
|
|||
|
$style = preg_replace('/\.css$/','',$g_options['style']);
|
|||
|
}
|
|||
|
$iconpath = IMAGE_PATH . "/icons";
|
|||
|
if (file_exists($iconpath . "/" . $style)) {
|
|||
|
$iconpath = $iconpath . "/" . $style;
|
|||
|
}
|
|||
|
|
|||
|
?>
|
|||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|||
|
|
|||
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|||
|
<head>
|
|||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|||
|
<meta http-equiv="X-UA-Compatible" content="IE=8" />
|
|||
|
<meta http-equiv="X-UA-Compatible" content="chrome=1" />
|
|||
|
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
|
|||
|
<link rel="stylesheet" type="text/css" href="hlstats.css" />
|
|||
|
<link rel="stylesheet" type="text/css" href="styles/<?php echo $selectedStyle; ?>" />
|
|||
|
<link rel="stylesheet" type="text/css" href="css/SqueezeBox.css" />
|
|||
|
<!-- U R A SMACKHEAD -->
|
|||
|
<?php
|
|||
|
if ($mode == 'players')
|
|||
|
{
|
|||
|
echo "\t<link rel=\"stylesheet\" type=\"text/css\" href=\"css/Autocompleter.css\" />\n";
|
|||
|
}
|
|||
|
?>
|
|||
|
<link rel="SHORTCUT ICON" href="favicon.ico" />
|
|||
|
<script type="text/javascript" src="<?php echo INCLUDE_PATH; ?>/js/mootools.js"></script>
|
|||
|
<script type="text/javascript" src="<?php echo INCLUDE_PATH; ?>/js/SqueezeBox.js"></script>
|
|||
|
<script type="text/javascript" src="<?php echo INCLUDE_PATH; ?>/js/heatmap.js"></script>
|
|||
|
<?php
|
|||
|
if ($g_options['playerinfo_tabs'] == '1') {
|
|||
|
?>
|
|||
|
<script type="text/javascript" src="<?php echo INCLUDE_PATH; ?>/js/tabs.js"></script>
|
|||
|
<?php
|
|||
|
}
|
|||
|
?>
|
|||
|
<title>
|
|||
|
<?php
|
|||
|
echo $g_options['sitename'];
|
|||
|
foreach ($title as $t)
|
|||
|
{
|
|||
|
echo " - $t";
|
|||
|
}
|
|||
|
?>
|
|||
|
</title>
|
|||
|
</head>
|
|||
|
<body>
|
|||
|
<?php
|
|||
|
//JS Check
|
|||
|
|
|||
|
if ( $_POST['js'] )
|
|||
|
{
|
|||
|
$_SESSION['nojs'] = 0;
|
|||
|
} else {
|
|||
|
if ((!isset($_SESSION['nojs'])) or ($_SESSION['nojs'] == 1)) {
|
|||
|
// Send javascript form - if they have javascript enabled it will POST the JS variable, and the code above will update their session variable
|
|||
|
echo '
|
|||
|
<!-- Either this is your first visit in a while, or you don\'t have javascript enabled -->
|
|||
|
<form name="jsform" id="jsform" action="" method="post" style="display:none">
|
|||
|
<div>
|
|||
|
<input name="js" type="text" value="true" />
|
|||
|
<script type="text/javascript">
|
|||
|
document.jsform.submit();
|
|||
|
</script>
|
|||
|
</div>
|
|||
|
</form>'
|
|||
|
;
|
|||
|
$_SESSION['nojs'] = 1;
|
|||
|
$g_options['playerinfo_tabs'] = 0;
|
|||
|
$g_options['show_google_map'] = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// Determine if we should show SourceBans links/Forum links
|
|||
|
if ($g_options['sourcebans_address'] && file_exists($iconpath . "/title-sourcebans.png")) {
|
|||
|
$extratabs .= "<li><a href=\"". $g_options['sourcebans_address'] . "\" target=\"_blank\"><img src=\"" . $iconpath . "/title-sourcebans.png\" alt=\"SourceBans\" /></a></li>\n";
|
|||
|
}
|
|||
|
if ($g_options['forum_address'] && file_exists($iconpath . "/title-forum.png")) {
|
|||
|
$extratabs .= "<li><a href=\"" . $g_options['forum_address'] . "\" target=\"_blank\"><img src=\"" . $iconpath . "/title-forum.png\" alt=\"Forum\" /></a></li>\n";
|
|||
|
}
|
|||
|
?>
|
|||
|
<div class="block">
|
|||
|
|
|||
|
<div class="headerblock">
|
|||
|
<div class="title">
|
|||
|
<a href="<?php echo $g_options['scripturl']; ?>"><img src="<?php echo $iconpath; ?>/title.png" alt="HLstatsX Community Edition" title="HLstatsX Community Edition" /></a>
|
|||
|
</div>
|
|||
|
|
|||
|
<?php
|
|||
|
|
|||
|
// Grab count of active games -- if 1, we won't show the games list icons
|
|||
|
$resultGames = $db->query("
|
|||
|
SELECT
|
|||
|
COUNT(code)
|
|||
|
FROM
|
|||
|
hlstats_Games
|
|||
|
WHERE
|
|||
|
hidden='0'
|
|||
|
");
|
|||
|
|
|||
|
list($num_games) = $db->fetch_row($resultGames);
|
|||
|
|
|||
|
if ($num_games > 1 && $g_options['display_gamelist'] == 1) {
|
|||
|
?>
|
|||
|
<div class="header_gameslist"><?php @include(PAGE_PATH .'/gameslist.php'); ?></div>
|
|||
|
<?php
|
|||
|
}
|
|||
|
?>
|
|||
|
<div class="headertabs">
|
|||
|
<ul>
|
|||
|
<li><a href="<?php echo $g_options['scripturl'] ?>"><img src="<?php echo $iconpath; ?>/title-contents.png" alt="Contents" /></a></li>
|
|||
|
<li><a href="<?php echo $g_options['scripturl'] ?>?mode=search"><img src="<?php echo $iconpath; ?>/title-search.png" alt="Search" /></a></li>
|
|||
|
<?php if ($extratabs) { print $extratabs; } ?>
|
|||
|
<li><a href="<?php echo $g_options['scripturl'] ?>?mode=help"><img src="<?php echo $iconpath; ?>/title-help.png" alt="Help" /></a></li>
|
|||
|
</ul>
|
|||
|
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="location" style="clear:both;width:100%;">
|
|||
|
<ul class="fNormal" style="float:left">
|
|||
|
<?php
|
|||
|
if ($g_options['sitename'] && $g_options['siteurl'])
|
|||
|
{
|
|||
|
echo '<li><a href="http://' . preg_replace('/http:\/\//', '', $g_options['siteurl']) . '">'. $g_options['sitename'] . '</a> <span class="arrow">»</span></li>';
|
|||
|
}
|
|||
|
echo '<li><a href="http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] . '">HLstatsX</a>';
|
|||
|
|
|||
|
|
|||
|
$i=0;
|
|||
|
foreach ($location as $l=>$url)
|
|||
|
{
|
|||
|
$url = preg_replace('/%s/', $g_options['scripturl'], $url);
|
|||
|
$url = preg_replace('/&/', '&', $url);
|
|||
|
echo ' <span class="arrow">»</span></li><li>';
|
|||
|
if ($url) {
|
|||
|
echo "<a href=\"$url\">$l</a>";
|
|||
|
} else {
|
|||
|
echo "<strong>$l</strong>";
|
|||
|
}
|
|||
|
$i++;
|
|||
|
}
|
|||
|
?> </li>
|
|||
|
</ul>
|
|||
|
|
|||
|
<?php
|
|||
|
if ($g_options['display_style_selector'] == 1) {
|
|||
|
?>
|
|||
|
<div class="fNormal" style="float:right;">
|
|||
|
<form name="style_selection" id="style_selection" action="" method="post"> Style:
|
|||
|
<select name="stylesheet" onchange="document.style_selection.submit()">
|
|||
|
<?php
|
|||
|
$d = dir('styles');
|
|||
|
while (false !== ($e = $d->read())) {
|
|||
|
if (is_file("styles/$e") && ($e != '.') && ($e != '..') && $e != $g_options['style']) {
|
|||
|
$ename = ucwords(strtolower(str_replace(array('_','.css'), array(' ',''), $e)));
|
|||
|
$styles[$e] = $ename;
|
|||
|
}
|
|||
|
}
|
|||
|
$d->close();
|
|||
|
asort($styles);
|
|||
|
$styles = array_merge(array($g_options['style'] => 'Default'),$styles);
|
|||
|
foreach ($styles as $e => $ename) {
|
|||
|
$sel = '';
|
|||
|
if ($e == $selectedStyle) $sel = ' selected="selected"';
|
|||
|
echo "\t\t\t\t<option value=\"$e\"$sel>$ename</option>\n";
|
|||
|
} ?>
|
|||
|
</select>
|
|||
|
</form>
|
|||
|
</div>
|
|||
|
<?php
|
|||
|
}
|
|||
|
?>
|
|||
|
</div>
|
|||
|
<div class="location_under" style="clear:both;width:100%;"></div>
|
|||
|
</div>
|
|||
|
|
|||
|
<br />
|
|||
|
|
|||
|
<div class="content" style="clear:both;">
|
|||
|
<?php
|
|||
|
global $mode;
|
|||
|
if ($g_options['bannerdisplay'] != 0 && ($mode == 'contents' || $g_options['bannerdisplay']==1)) {
|
|||
|
?>
|
|||
|
<div class="block" style="text-align:center;">
|
|||
|
<img src="<?php echo ((strncmp($g_options['bannerfile'], 'http:/', 6) == 0)?$g_options['bannerfile']:IMAGE_PATH.'/'.$g_options['bannerfile']); ?>" alt="Banner" />
|
|||
|
</div>
|
|||
|
<?php
|
|||
|
}
|
|||
|
?>
|
|||
|
|
|||
|
<?php
|
|||
|
|
|||
|
if ($game != '') {
|
|||
|
|
|||
|
?>
|
|||
|
|
|||
|
<span class="fHeading"> <img src="<?php echo IMAGE_PATH; ?>/downarrow.gif" alt="" /> Sections</span><p />
|
|||
|
<ul class="navbar">
|
|||
|
<li><a href="<?php echo $g_options['scripturl'] . "?game=$game"; ?>" class="fHeading"><img src="<?php echo $iconpath; ?>/nav-servers.png" alt="Servers" /></a> <a href="<?php echo $g_options['scripturl'] . "?game=$game"; ?>" class="fHeading">Servers</a></li>
|
|||
|
|
|||
|
<?php
|
|||
|
if ($g_options['nav_globalchat']==1) {
|
|||
|
?>
|
|||
|
<li><a href="<?php echo $g_options['scripturl'] . "?mode=chat&game=$game"; ?>" class="fHeading"><img src="<?php echo $iconpath; ?>/nav-chat.png" alt="Chat" /></a> <a href="<?php echo $g_options['scripturl'] . "?mode=chat&game=$game"; ?>" class="fHeading">Chat</a></li>
|
|||
|
<?php
|
|||
|
}
|
|||
|
?>
|
|||
|
<li><a href="<?php echo $g_options['scripturl'] . "?mode=players&game=$game"; ?>" class="fHeading"><img src="<?php echo $iconpath; ?>/nav-players.png" alt="Players" /></a> <a href="<?php echo $g_options['scripturl'] . "?mode=players&game=$game"; ?>" class="fHeading">Players</a></li>
|
|||
|
<li><a href="<?php echo $g_options['scripturl'] . "?mode=clans&game=$game"; ?>" class="fHeading"><img src="<?php echo $iconpath; ?>/nav-clans.png" alt="Clans" /></a> <a href="<?php echo $g_options['scripturl'] . "?mode=clans&game=$game"; ?>" class="fHeading">Clans</a></li>
|
|||
|
|
|||
|
<?php
|
|||
|
if ($g_options["countrydata"]==1) {
|
|||
|
?>
|
|||
|
<li><a href="<?php echo $g_options['scripturl'] . "?mode=countryclans&game=$game"; ?>" class="fHeading"><img src="<?php echo $iconpath; ?>/nav-countryclans.png" alt="CountryClans" /></a> <a href="<?php echo $g_options['scripturl'] . "?mode=countryclans&game=$game&sort=nummembers"; ?>" class="fHeading">Countries</a></li>
|
|||
|
<?php
|
|||
|
}
|
|||
|
?>
|
|||
|
<li><a href="<?php echo $g_options['scripturl'] . "?mode=awards&game=$game"; ?>" class="fHeading"><img src="<?php echo $iconpath; ?>/nav-awards.png" alt="Awards" /></a> <a href="<?php echo $g_options['scripturl'] . "?mode=awards&game=$game"; ?>" class="fHeading">Awards</a></li>
|
|||
|
<?php
|
|||
|
// look for actions
|
|||
|
$db->query("SELECT game FROM hlstats_Actions WHERE game='".$game."' LIMIT 1");
|
|||
|
if ($db->num_rows()>0) {
|
|||
|
?>
|
|||
|
<li><a href="<?php echo $g_options['scripturl'] . "?mode=actions&game=$game"; ?>" class="fHeading"><img src="<?php echo $iconpath; ?>/nav-actions.png" alt="Actions" /></a> <a href="<?php echo $g_options['scripturl'] . "?mode=actions&game=$game"; ?>" class="fHeading">Actions</a></li>
|
|||
|
<?php
|
|||
|
}
|
|||
|
?>
|
|||
|
<li><a href="<?php echo $g_options['scripturl'] . "?mode=weapons&game=$game"; ?>" class="fHeading"><img src="<?php echo $iconpath; ?>/nav-weapons.png" alt="Weapons" /></a> <a href="<?php echo $g_options['scripturl'] . "?mode=weapons&game=$game"; ?>" class="fHeading">Weapons</a></li>
|
|||
|
<li><a href="<?php echo $g_options['scripturl'] . "?mode=maps&game=$game"; ?>" class="fHeading"><img src="<?php echo $iconpath; ?>/nav-maps.png" alt="Maps" /></a> <a href="<?php echo $g_options['scripturl'] . "?mode=maps&game=$game"; ?>" class="fHeading">Maps</a></li>
|
|||
|
<?php
|
|||
|
$result = $db->query("SELECT game from hlstats_Roles WHERE game='$game' AND hidden = '0'");
|
|||
|
$numitems = $db->num_rows($result);
|
|||
|
if ($numitems > 0) {
|
|||
|
?>
|
|||
|
<li><a href="<?php echo $g_options['scripturl'] . "?mode=roles&game=$game"; ?>" class="fHeading"><img src="<?php echo $iconpath; ?>/nav-roles.png" alt="Roles" /></a> <a href="<?php echo $g_options['scripturl'] . "?mode=roles&game=$game"; ?>" class="fHeading">Roles</a></li>
|
|||
|
<?php
|
|||
|
}
|
|||
|
if ($g_options['nav_cheaters'] == 1) {
|
|||
|
?>
|
|||
|
<li><a href="<?php echo $g_options['scripturl'] . "?mode=bans&game=$game"; ?>" class="fHeading"><img src="<?php echo $iconpath; ?>/nav-bans.png" alt="Banned" /></a> <a href="<?php echo $g_options['scripturl'] . "?mode=bans&game=$game"; ?>" class="fHeading">Bans</a></li>
|
|||
|
<?php
|
|||
|
}
|
|||
|
?>
|
|||
|
</ul>
|
|||
|
<?php
|
|||
|
}
|
|||
|
?>
|