release 1.3.22

This commit is contained in:
Newcomer1989
2023-02-01 20:44:58 +01:00
parent b96e32b713
commit f7d7aedc5a
100 changed files with 5710 additions and 1435 deletions

View File

@@ -1,14 +1,14 @@
<?PHP
if ($cfg['stats_imprint_switch'] == "1") {
if($cfg['stats_imprint_address_url'] != NULL) {
echo '<footer><a href="',$cfg['stats_imprint_address_url'],'" target="_blank">',$lang['imprint'],'</a>';
echo '<footer><span class="item-margin"><a href="',$cfg['stats_imprint_address_url'],'" target="_blank">',$lang['imprint'],'</span></a>';
} else {
echo '<footer><a href="imprint.php">',$lang['imprint'],'</a>';
echo '<footer><span class="item-margin"><a href="imprint.php">',$lang['imprint'],'</a></span>';
}
if($cfg['stats_imprint_privacypolicy_url'] != NULL) {
echo '&nbsp;•&nbsp;<a href="',$cfg['stats_imprint_privacypolicy_url'],'" target="_blank">',$lang['privacy'],'</a>';
echo '<span class="footer-seperator"></span><span class="item-margin"><a href="',$cfg['stats_imprint_privacypolicy_url'],'" target="_blank">',$lang['privacy'],'</a></span>';
} elseif($cfg['stats_imprint_privacypolicy'] != NULL) {
echo '&nbsp;•&nbsp;<a href="privacy_policy.php">',$lang['privacy'],'</a>';
echo '<span class="footer-seperator"></span><span class="item-margin"><a href="privacy_policy.php">',$lang['privacy'],'</a></span>';
}
echo '</footer>';
}

View File

@@ -2,7 +2,7 @@
$job_check = $mysqlcon->query("SELECT * FROM `$dbname`.`job_check`")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC);
if((time() - $job_check['last_update']['timestamp']) < 259200 && !isset($_SESSION[$rspathhex.'upinfomsg'])) {
if(!isset($err_msg)) {
$err_msg = '<i class="fas fa-info-circle"></i>&nbsp;'.sprintf($lang['upinf2'], date("Y-m-d H:i",$job_check['last_update']['timestamp']), '<a href="//ts-ranksystem.com/#changelog" target="_blank"><i class="fas fa-book"></i>&nbsp;', '</a>'); $err_lvl = 1;
$err_msg = '<i class="fas fa-info-circle"></i><span class="item-margin">'.sprintf($lang['upinf2'], date("Y-m-d H:i",$job_check['last_update']['timestamp']), '</span><a href="//ts-ranksystem.com/#changelog" target="_blank"><i class="fas fa-book"></i><span class="item-margin">', '</span></a>'); $err_lvl = 1;
$_SESSION[$rspathhex.'upinfomsg'] = 1;
}
}
@@ -98,7 +98,7 @@ if(!isset($_GET["seite"])) {
}
}
$adminlogin = 0;
$sortarr = array_flip(array("active","cldbid","count","grpid","grpsince","idle","lastseen","name","nation","nextup","platform","rank","uuid","version"));
$sortarr = array_flip(array("active","cldbid","count","grpid","grpsince","idle","lastseen","name","nation","nextup","platform","rank","uuid","version","count_day","count_week","count_month","idle_day","idle_week","idle_month","active_day","active_week","active_month"));
if(isset($_GET['sort']) && isset($sortarr[$_GET['sort']])) {
$keysort = $_GET['sort'];
@@ -114,7 +114,7 @@ if(isset($_GET['order']) && $_GET['order'] == 'desc') {
}
if(isset($_GET['admin'])) {
if($_SESSION[$rspathhex.'username'] == $cfg['webinterface_user'] && $_SESSION[$rspathhex.'password'] == $cfg['webinterface_pass'] && $_SESSION[$rspathhex.'clientip'] == getclientip()) {
if(hash_equals($_SESSION[$rspathhex.'username'], $cfg['webinterface_user']) && hash_equals($_SESSION[$rspathhex.'password'], $cfg['webinterface_pass']) && hash_equals($_SESSION[$rspathhex.'clientip'], getclientip())) {
$adminlogin = 1;
}
}
@@ -149,6 +149,9 @@ if(!isset($_GET["user"])) {
<title>TSN Ranksystem - ts-ranksystem.com</title>
<link href="../libs/combined_st.css?v=<?PHP echo $cfg['version_current_using']; ?>" rel="stylesheet">
<?PHP
if ($GLOBALS['style'] != NULL && is_file(dirname(__DIR__).DIRECTORY_SEPARATOR.'styles'.DIRECTORY_SEPARATOR.$GLOBALS['style'].DIRECTORY_SEPARATOR.'ST.css')) {
echo '<link href="../styles'.DIRECTORY_SEPARATOR.$GLOBALS['style'].DIRECTORY_SEPARATOR.'ST.css?v='.$cfg['version_current_using'].'" rel="stylesheet">';
}
switch(basename($_SERVER['SCRIPT_NAME'])) {
case "index.php":
?><script>!function(e,t,r){function n(){for(;d[0]&&"loaded"==d[0][f];)c=d.shift(),c[o]=!i.parentNode.insertBefore(c,i)}for(var s,a,c,d=[],i=e.scripts[0],o="onreadystatechange",f="readyState";s=r.shift();)a=e.createElement(t),"async"in i?(a.async=!1,e.head.appendChild(a)):i[f]?(d.push(a),a[o]=n):e.write("<"+t+' src="'+s+'" defer></'+t+">"),a.src=s}(document,"script",['../libs/qbrm.js?v=<?PHP echo $cfg['version_current_using']; ?>','../libs/statsindex.js?v=<?PHP echo $cfg['version_current_using']; ?>','../libs/fa.js?v=<?PHP echo $cfg['version_current_using']; ?>'])</script><?PHP
@@ -179,12 +182,21 @@ if(!isset($_GET["user"])) {
default:
?><script src="../libs/qb.js?v=<?PHP echo $cfg['version_current_using']; ?>"></script>
<script>!function(e,t,r){function n(){for(;d[0]&&"loaded"==d[0][f];)c=d.shift(),c[o]=!i.parentNode.insertBefore(c,i)}for(var s,a,c,d=[],i=e.scripts[0],o="onreadystatechange",f="readyState";s=r.shift();)a=e.createElement(t),"defer"in i?(a.async=!1,e.head.appendChild(a)):i[f]?(d.push(a),a[o]=n):e.write("<"+t+' src="'+s+'" defer></'+t+">"),a.src=s}(document,"script",['../libs/fa.js?v=<?PHP echo $cfg['version_current_using']; ?>'])</script><?PHP
} ?>
<script>
window.onload=function(){$(".close-button").click(function(){
$(this).closest("li").css("display","none");
$.ajax({
type: "POST",
url: "../other/session_handling.php",
data: {stats_news_html: "stats_news_html"}
});
})};
</script>
<?PHP if ($GLOBALS['style'] != NULL && is_file(dirname(__DIR__).DIRECTORY_SEPARATOR.'styles'.DIRECTORY_SEPARATOR.$GLOBALS['style'].DIRECTORY_SEPARATOR.'ST.js')) {
echo '<script src="../styles'.DIRECTORY_SEPARATOR.$GLOBALS['style'].DIRECTORY_SEPARATOR.'/ST.js?v='.$cfg['version_current_using'].'"></script>';
}
if(isset($cfg['stats_show_site_navigation_switch']) && $cfg['stats_show_site_navigation_switch'] == 0) { ?>
<style>
body{margin-top:0px!important}
.affix{top:0px!important;width:calc(100% - 50px)!important;position:fixed;color:#000;background-color:#fff!important;}
</style>
<?PHP } ?>
</head>
<body>
@@ -314,10 +326,10 @@ if(!isset($_GET["user"])) {
</a>
</div>
</li>
<li class="navbar-form navbar-right dropdown">
<li class="navbar-form navbar-right dropdown" title="<?PHP echo $lang['stnv0025'] ?>">
<button class="btn btn-primary dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<?PHP echo $lang['stnv0025']; ?>
<span class="caret"></span>
<?PHP echo $user_pro_seite; ?>
<span class="item-margin"><i class="fas fa-caret-down"></i></span>
</button>
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1">
<li role="presentation"><a role="menuitem" href="<?PHP echo "?sort=$keysort&amp;order=$keyorder&amp;user=50&amp;lang={$cfg['default_language']}&amp;search=$getstring"; ?>">50</a></li>
@@ -344,6 +356,11 @@ if(!isset($_GET["user"])) {
<?PHP } ?>
<ul class="nav navbar-right top-nav">
<?PHP
if(isset($job_check['news_html']['timestamp']) && $job_check['news_html']['timestamp'] != 0 && isset($_SESSION[$rspathhex.'stats_news_html'])) { ?>
<li class="navbar-form navbar-left">
<span class="label label-primary"><?PHP echo $cfg['stats_news_html']; ?><button type="button" class="close close-button" aria-label="Close"><span aria-hidden="true">&times;</span></button></span>
</li>
<?PHP }
if((time() - $job_check['calc_user_lastscan']['timestamp']) > 600) { ?>
<li class="navbar-form navbar-left">
<span class="label label-warning"><?PHP echo $lang['stnv0027']; ?></span>
@@ -351,21 +368,19 @@ if(!isset($_GET["user"])) {
<?PHP } ?>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user"></i><?PHP
echo '&nbsp;&nbsp;';
if(isset($_SESSION[$rspathhex.'tsname'])) {
echo $_SESSION[$rspathhex.'tsname'];
}
?>&nbsp;
<b class="caret"></b></a><ul class="dropdown-menu">
echo '<span class="item-margin"></span>';
if(isset($_SESSION[$rspathhex.'tsname'])) echo $_SESSION[$rspathhex.'tsname'];
?><span class="item-margin"><i class="fas fa-caret-down fa-fw"></i></span></a>
<ul class="dropdown-menu">
<?PHP
if(isset($_SESSION[$rspathhex.'tsname']) && $_SESSION[$rspathhex.'tsname'] == $lang['stag0016'] || isset($_SESSION[$rspathhex.'tsname']) && $_SESSION[$rspathhex.'tsname'] == "verification needed (multiple)!" || isset($_SESSION[$rspathhex.'connected']) && $_SESSION[$rspathhex.'connected'] == 0 || !isset($_SESSION[$rspathhex.'connected'])) {
echo '<li><a href="verify.php"><i class="fas fa-key"></i>&nbsp;'.$lang['stag0017'].'</a></li>';
echo '<li><a href="verify.php"><i class="fas fa-key fa-fw"></i><span class="item-margin">'.$lang['stag0017'].'</span></a></li>';
}
if(isset($_SESSION[$rspathhex.'admin']) && $_SESSION[$rspathhex.'admin'] == TRUE) {
if($_SERVER['SERVER_PORT'] == 443 || $_SERVER['SERVER_PORT'] == 80) {
echo '<li><a href="//',$_SERVER['SERVER_NAME'],':',substr(dirname($_SERVER['SCRIPT_NAME']),0,-5),'webinterface/bot.php"><i class="fas fa-wrench"></i>&nbsp;',$lang['wi'],'</a></li>';
echo '<li><a href="//',$_SERVER['SERVER_NAME'],':',substr(dirname($_SERVER['SCRIPT_NAME']),0,-5),'webinterface/bot.php"><i class="fas fa-wrench fa-fw"></i><span class="item-margin">',$lang['wi'],'</span></a></li>';
} else {
echo '<li><a href="//',$_SERVER['SERVER_NAME'],':',$_SERVER['SERVER_PORT'],substr(dirname($_SERVER['SCRIPT_NAME']),0,-5),'webinterface/bot.php"><i class="fas fa-wrench"></i>&nbsp;',$lang['wi'],'</a></li>';
echo '<li><a href="//',$_SERVER['SERVER_NAME'],':',$_SERVER['SERVER_PORT'],substr(dirname($_SERVER['SCRIPT_NAME']),0,-5),'webinterface/bot.php"><i class="fas fa-wrench fa-fw"></i><span class="item-margin">',$lang['wi'],'</span></a></li>';
}
} elseif (isset($_SESSION[$rspathhex.'connected']) && $_SESSION[$rspathhex.'connected'] == 0 || !isset($_SESSION[$rspathhex.'connected'])) {
echo '<li><a href="ts3server://';
@@ -377,32 +392,33 @@ if(!isset($_GET["user"])) {
echo $cfg['teamspeak_host_address'];
}
echo ':'.$cfg['teamspeak_voice_port'];
echo '"><i class="fas fa-headset"></i>&nbsp;'.$lang['stnv0043'].'</a></li>';
echo '"><i class="fas fa-headset fa-fw"></i><span class="item-margin">'.$lang['stnv0043'].'</span></a></li>';
}
?>
<li>
<a href="#myModal2" data-toggle="modal"><i class="fas fa-sync"></i>&nbsp;Refresh Session</a>
<a href="#myModal2" data-toggle="modal"><i class="fas fa-sync fa-fw"></i><span class="item-margin">Refresh Session</span></a>
</li>
<li>
<a href="my_stats.php"><i class="fas fa-chart-bar"></i>&nbsp;<?PHP echo $lang['stmy0001']; ?></a>
<a href="my_stats.php"><i class="fas fa-chart-bar fa-fw"></i><span class="item-margin"><?PHP echo $lang['stmy0001']; ?></span></a>
</li>
<li>
<a href="#myModal" data-toggle="modal"><i class="fas fa-envelope"></i>&nbsp;<?PHP echo $lang['stnv0001']; ?></a>
<a href="#myModal" data-toggle="modal"><i class="fas fa-envelope fa-fw"></i><span class="item-margin"><?PHP echo $lang['stnv0001']; ?></span></a>
</li>
</ul>
</li>
<li class="dropdown">
<?PHP
$dropdownlist = $dropdownfront = '';
if(is_dir(substr(__DIR__,0,-5).'languages/')) {
foreach(scandir(substr(__DIR__,0,-5).'languages/') as $file) {
if(!isset($_SESSION[$rspathhex.'language'])) $_SESSION[$rspathhex.'language'] = get_language();
if(is_dir($GLOBALS['langpath'])) {
foreach(scandir($GLOBALS['langpath']) as $file) {
if ('.' === $file || '..' === $file || is_dir($file)) continue;
$sep_lang = preg_split("/[._]/", $file);
if(isset($sep_lang[0]) && $sep_lang[0] == 'core' && isset($sep_lang[1]) && strlen($sep_lang[1]) == 2 && isset($sep_lang[4]) && strtolower($sep_lang[4]) == 'php') {
if(isset($_SESSION[$rspathhex.'language']) && $_SESSION[$rspathhex.'language'] == $sep_lang[1]) {
$dropdownfront .= '<a href="" class="dropdown-toggle" data-toggle="dropdown"><span class="flag-icon flag-icon-'.$sep_lang[3].'"></span>&nbsp;<b class="caret"></b></a><ul class="dropdown-menu">';
$dropdownfront .= '<a href="" class="dropdown-toggle" data-toggle="dropdown"><span class="flag-icon flag-icon-'.$sep_lang[3].'"></span><span class="item-margin"><i class="fas fa-caret-down"></i></span></a><ul class="dropdown-menu">';
}
$dropdownlist .= '<li><a href="?lang='.$sep_lang[1].'"><span class="flag-icon flag-icon-'.$sep_lang[3].'"></span>&nbsp;&nbsp;'.strtoupper($sep_lang[1]).' - '.$sep_lang[2].'</a></li>';
$dropdownlist .= '<li><a href="?lang='.$sep_lang[1].'"><span class="flag-icon flag-icon-'.$sep_lang[3].'"></span><span class="item-margin">'.strtoupper($sep_lang[1]).' - '.$sep_lang[2].'<span></a></li>';
}
}
}
@@ -414,35 +430,35 @@ if(!isset($_GET["user"])) {
<div class="collapse navbar-collapse navbar-ex1-collapse">
<ul class="nav navbar-nav side-nav">
<?PHP echo '<li'.(basename($_SERVER['SCRIPT_NAME']) == "index.php" ? ' class="active">' : '>'); ?>
<a href="index.php"><i class="fas fa-chart-area"></i>&nbsp;<?PHP echo $lang['stix0001']; ?></a>
<a href="index.php"><i class="fas fa-chart-area fa-fw"></i><span class="item-margin"><?PHP echo $lang['stix0001']; ?></span></a>
</li>
<?PHP echo '<li'.(basename($_SERVER['SCRIPT_NAME']) == "my_stats.php" ? ' class="active">' : '>'); ?>
<a href="my_stats.php"><i class="fas fa-chart-bar"></i>&nbsp;<?PHP echo $lang['stmy0001']; ?></a>
<a href="my_stats.php"><i class="fas fa-chart-bar fa-fw"></i><span class="item-margin"><?PHP echo $lang['stmy0001']; ?></span></a>
</li>
<?PHP if($addons_config['assign_groups_active']['value'] == '1') {
echo '<li'.(basename($_SERVER['SCRIPT_NAME']) == "assign_groups.php" ? ' class="active">' : '>'); ?>
<a href="assign_groups.php"><i class="fas fa-address-card"></i>&nbsp;<?PHP echo $lang['stag0001']; ?></a>
<a href="assign_groups.php"><i class="fas fa-address-card fa-fw"></i><span class="item-margin"><?PHP echo $lang['stag0001']; ?></span></a>
<?PHP } ?>
</li>
<?PHP echo '<li'.(basename($_SERVER['SCRIPT_NAME']) == "top_all.php" ? ' class="active">' : '>'); ?>
<a href="javascript:;" data-toggle="collapse" data-target="#demo"><i class="fas fa-trophy"></i>&nbsp;<?PHP echo $lang['sttw0001']; ?>&nbsp;<i class="fas fa-caret-down"></i></a>
<li>
<a href="javascript:;" data-toggle="collapse" data-target="#demo"><i class="fas fa-trophy fa-fw"></i><span class="item-margin"><?PHP echo $lang['sttw0001']; ?></span><span class="item-margin"><i class="fas fa-caret-down"></i></span></a>
<?PHP echo '<ul id="demo" class="'.(basename($_SERVER['SCRIPT_NAME']) == "top_week.php" || basename($_SERVER['SCRIPT_NAME']) == "top_month.php" || basename($_SERVER['SCRIPT_NAME']) == "top_all.php" ? 'in collapse">' : 'collapse">'); ?>
<li>
<a href="top_week.php"><?PHP echo $lang['sttw0002']; ?></a>
<?PHP echo '<li'.(basename($_SERVER['SCRIPT_NAME']) == "top_week.php" ? ' class="active">' : '>'); ?>
<a href="top_week.php"><span class="item-margin"><?PHP echo $lang['sttw0002']; ?></span></a>
</li>
<li>
<a href="top_month.php"><?PHP echo $lang['sttm0001']; ?></a>
<?PHP echo '<li'.(basename($_SERVER['SCRIPT_NAME']) == "top_month.php" ? ' class="active">' : '>'); ?>
<a href="top_month.php"><span class="item-margin"><?PHP echo $lang['sttm0001']; ?></span></a>
</li>
<li>
<a href="top_all.php"><?PHP echo $lang['stta0001']; ?></a>
<?PHP echo '<li'.(basename($_SERVER['SCRIPT_NAME']) == "top_all.php" ? ' class="active">' : '>'); ?>
<a href="top_all.php"><span class="item-margin"><?PHP echo $lang['stta0001']; ?></span></a>
</li>
</ul>
</li>
<?PHP echo '<li'.(basename($_SERVER['SCRIPT_NAME']) == "list_rankup.php" ? ' class="active">' : '>'); ?>
<a href="list_rankup.php"><i class="fas fa-list-ul"></i>&nbsp;<?PHP echo $lang['stnv0029']; ?></a>
<a href="list_rankup.php"><i class="fas fa-list-ul fa-fw"></i><span class="item-margin"><?PHP echo $lang['stnv0029']; ?></span></a>
</li>
<?PHP echo '<li'.(basename($_SERVER['SCRIPT_NAME']) == "info.php" ? ' class="active">' : '>'); ?>
<a href="info.php"><i class="fas fa-info-circle"></i>&nbsp;<?PHP echo $lang['stnv0030']; ?></a>
<a href="info.php"><i class="fas fa-info-circle fa-fw"></i><span class="item-margin"><?PHP echo $lang['stnv0030']; ?></span></a>
</li>
</ul>
</div>

View File

@@ -1,28 +1,27 @@
<?PHP
require_once('../other/_functions.php');
require_once('../other/config.php');
require_once(dirname(__DIR__).DIRECTORY_SEPARATOR.'other/_functions.php');
require_once(dirname(__DIR__).DIRECTORY_SEPARATOR.'other/config.php');
start_session($cfg);
$lang = set_language(get_language($cfg));
$lang = set_language(get_language());
error_reporting(E_ALL);
ini_set("log_errors", 1);
set_error_handler("php_error_handling");
ini_set("error_log", $cfg['logs_path'].'ranksystem.log');
ini_set("error_log", $GLOBALS['logfile']);
if(isset($_POST['refresh'])) {
rem_session_ts3();
}
try {
require_once('../other/phpcommand.php');
require_once('../other/load_addons_config.php');
require_once(dirname(__DIR__).DIRECTORY_SEPARATOR.'other/load_addons_config.php');
$addons_config = load_addons_config($mysqlcon,$lang,$cfg,$dbname);
if(!isset($_SESSION[$rspathhex.'tsuid'])) {
set_session_ts3($mysqlcon,$cfg,$lang,$dbname);
}
require_once('_nav.php');
require_once(__DIR__.DIRECTORY_SEPARATOR.'_nav.php');
} catch(Throwable $ex) { }
?>

View File

@@ -141,7 +141,7 @@ try {
}
}
?>
<div id="page-wrapper">
<div id="page-wrapper" class="stats_assign_groups">
<?PHP if(isset($err_msg)) error_handling($err_msg, $err_lvl); ?>
<div class="container-fluid">
<div class="row">

View File

@@ -3,7 +3,7 @@ require_once('_preload.php');
try {
?>
<div id="page-wrapper">
<div id="page-wrapper" class="stats_imprint">
<?PHP if(isset($err_msg)) error_handling($err_msg, $err_lvl); ?>
<div class="container-fluid">
<div class="row">

View File

@@ -2,20 +2,20 @@
require_once('_preload.php');
try {
if(is_dir(substr(__DIR__,0,-5).'languages/')) {
foreach(scandir(substr(__DIR__,0,-5).'languages/') as $file) {
if(is_dir($GLOBALS['langpath'])) {
foreach(scandir($GLOBALS['langpath']) as $file) {
if ('.' === $file || '..' === $file || is_dir($file)) continue;
$sep_lang = preg_split("/[._]/", $file);
if(isset($sep_lang[0]) && $sep_lang[0] == 'nations' && isset($sep_lang[1]) && strlen($sep_lang[1]) == 2 && isset($sep_lang[2]) && strtolower($sep_lang[2]) == 'php') {
if(strtolower($cfg['default_language']) == strtolower($sep_lang[1])) {
require_once('../languages/nations_'.$sep_lang[1].'.php');
require_once($GLOBALS['langpath'].'nations_'.$sep_lang[1].'.php');
$required_nations = 1;
break;
}
}
}
if(!isset($required_nations)) {
require_once('../languages/nations_en.php');
require_once($GLOBALS['langpath'].'nations_en.php');
}
}
@@ -27,7 +27,7 @@ try {
$err_msg = print_r($mysqlcon->errorInfo(), true); $err_lvl = 3;
}
?>
<div id="page-wrapper">
<div id="page-wrapper" class="stats_index">
<?PHP if(isset($err_msg)) error_handling($err_msg, $err_lvl); ?>
<div class="container-fluid">
<div class="row">
@@ -136,7 +136,7 @@ try {
<div class="panel-heading">
<div class="row">
<div class="col-xs-6">
<h3 class="panel-title"><i class="fas fa-chart-area"></i>&nbsp;<?PHP echo $lang['stix0008']; ?></h3>
<h3 class="panel-title"><i class="fas fa-chart-area"></i><span class="item-margin"><?PHP echo $lang['stix0008']; ?></span></h3>
</div>
<div class="col-xs-6">
<div class="btn-group pull-right">
@@ -160,7 +160,7 @@ try {
<div class="col-lg-3">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><i class="fas fa-chart-bar"></i>&nbsp;<?PHP echo $lang['stix0016']; ?></h3>
<h3 class="panel-title"><i class="fas fa-chart-bar"></i><span class="item-margin"><?PHP echo $lang['stix0016']; ?></span></h3>
</div>
<div class="panel-body">
<div id="time-gap-donut"></div>
@@ -170,7 +170,7 @@ try {
<div class="col-lg-3">
<div class="panel panel-green">
<div class="panel-heading">
<h3 class="panel-title"><i class="fas fa-chart-bar"></i>&nbsp;<?PHP echo $lang['stix0017']; ?></h3>
<h3 class="panel-title"><i class="fas fa-chart-bar"></i><span class="item-margin"><?PHP echo $lang['stix0017']; ?></span></h3>
</div>
<div class="panel-body">
<div id="client-version-donut"></div>
@@ -187,7 +187,7 @@ try {
<div class="col-lg-3">
<div class="panel panel-yellow">
<div class="panel-heading">
<h3 class="panel-title"><i class="fas fa-chart-bar"></i>&nbsp;<?PHP echo $lang['stix0018']; ?></h3>
<h3 class="panel-title"><i class="fas fa-chart-bar"></i><span class="item-margin"><?PHP echo $lang['stix0018']; ?></span></h3>
</div>
<div class="panel-body">
<div id="user-descent-donut"></div>
@@ -204,7 +204,7 @@ try {
<div class="col-lg-3">
<div class="panel panel-red">
<div class="panel-heading">
<h3 class="panel-title"><i class="fas fa-chart-bar"></i>&nbsp;<?PHP echo $lang['stix0019']; ?></h3>
<h3 class="panel-title"><i class="fas fa-chart-bar"></i><span class="item-margin"><?PHP echo $lang['stix0019']; ?></span></h3>
</div>
<div class="panel-body">
<div id="user-platform-donut"></div>
@@ -313,7 +313,7 @@ try {
<div class="col-lg-6">
<h2><?PHP echo $lang['stix0020']; ?></h2>
<div class="table-responsive">
<table class="table table-bordered table-hover">
<table class="table table-bordered table-hover" id="ts-server-details-left">
<tbody>
<tr>
<td><?PHP echo $lang['stix0023']; ?></td>
@@ -341,7 +341,7 @@ try {
</tr>
<tr>
<td><?PHP echo $lang['stix0031']; ?></td>
<td><?PHP $serveruptime = new DateTime("@".$sql_res['server_uptime']); if ($sql_res['server_status'] == 0) { echo '-&nbsp;&nbsp;&nbsp;(<i>'.$lang['stix0032'].'&nbsp;'.(new DateTime("@0"))->diff($serveruptime)->format($cfg['default_date_format']).')</i>'; } else { echo $lang['stix0033']; } ?></td>
<td><?PHP $serveruptime = new DateTime("@".$sql_res['server_uptime']); if ($sql_res['server_status'] == 0) { echo '-&nbsp;&nbsp;&nbsp;(<i>'.$lang['stix0032'].'<span class="item-margin">'.(new DateTime("@0"))->diff($serveruptime)->format($cfg['default_date_format']).')</span></i>'; } else { echo $lang['stix0033']; } ?></td>
</tr>
<tr>
<td><?PHP echo $lang['stix0034']; ?></td>
@@ -354,11 +354,11 @@ try {
<div class="col-lg-6">
<h2><?PHP echo $lang['stix0035']; ?></h2>
<div class="table-responsive">
<table class="table table-bordered table-hover">
<table class="table table-bordered table-hover" id="ts-server-details-right">
<tbody>
<tr>
<td><?PHP echo $lang['stix0036']; ?></td>
<td><?PHP if(file_exists("../tsicons/servericon.".$groupslist[0]['ext'])) {
<td><?PHP if(isset($groupslist[0]) && file_exists("../tsicons/servericon.".$groupslist[0]['ext'])) {
$img_content = file_get_contents("../tsicons/servericon.".$groupslist[0]['ext']);
echo $sql_res['server_name'] .'<div class="pull-right"><img src="data:',$groupslist[0]['ext'],';base64,'.base64_encode($img_content).'" width="16" height="16" alt="servericon"></div>';
} else { echo $sql_res['server_name']; } ?></td>
@@ -470,6 +470,33 @@ try {
<input type="hidden" id="tsn33" value="<?PHP echo $sql_res['platform_other']; ?>">
<input type="hidden" id="tsn34" value="<?PHP echo ($sql_res['server_used_slots'] + $sql_res['server_free_slots']); ?>">
<input type="hidden" id="tsn35" value="<?PHP echo $cfg['stats_show_maxclientsline_switch']; ?>">
<input type="hidden" id="donut_time_color_1" value="">
<input type="hidden" id="donut_time_color_2" value="">
<input type="hidden" id="donut_version_color_1" value="">
<input type="hidden" id="donut_version_color_2" value="">
<input type="hidden" id="donut_version_color_3" value="">
<input type="hidden" id="donut_version_color_4" value="">
<input type="hidden" id="donut_version_color_5" value="">
<input type="hidden" id="donut_version_color_6" value="">
<input type="hidden" id="donut_nation_color_1" value="">
<input type="hidden" id="donut_nation_color_2" value="">
<input type="hidden" id="donut_nation_color_3" value="">
<input type="hidden" id="donut_nation_color_4" value="">
<input type="hidden" id="donut_nation_color_5" value="">
<input type="hidden" id="donut_nation_color_6" value="">
<input type="hidden" id="donut_platform_color_1" value="">
<input type="hidden" id="donut_platform_color_2" value="">
<input type="hidden" id="donut_platform_color_3" value="">
<input type="hidden" id="donut_platform_color_4" value="">
<input type="hidden" id="donut_platform_color_5" value="">
<input type="hidden" id="donut_platform_color_6" value="">
<input type="hidden" id="graph_lineColors_1" value="">
<input type="hidden" id="graph_lineColors_2" value="">
<input type="hidden" id="graph_pointFillColors_1" value="">
<input type="hidden" id="graph_pointFillColors_2" value="">
<input type="hidden" id="graph_pointStrokeColors_1" value="">
<input type="hidden" id="graph_pointStrokeColors_2" value="">
<input type="hidden" id="graph_fillOpacity" value="">
<?PHP require_once('_footer.php'); ?>
</body>
</html>

View File

@@ -3,7 +3,7 @@ require_once('_preload.php');
try {
?>
<div id="page-wrapper">
<div id="page-wrapper" class="stats_info">
<?PHP if(isset($err_msg)) error_handling($err_msg, $err_lvl); ?>
<div class="container-fluid">
<div class="row">
@@ -15,21 +15,21 @@ require_once('_preload.php');
</div>
<div class="row">
<div class="col-lg-12">
<h4><strong><span class="text-info"><?PHP echo $lang['stri0002']; ?></span></strong></h4>
<h2><strong><span class="text-info"><?PHP echo $lang['stri0002']; ?></span></strong></h2>
<p><?PHP echo $lang['stri0003']; ?></p>
<br>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<h4><strong><span class="text-success"><?PHP echo $lang['stri0004']; ?></span></strong></h4>
<p>The <a href="//ts-ranksystem.com" target="_blank" rel="noopener noreferrer">Ranksystem</a> was coded by <strong>Newcomer1989</strong> Copyright &copy; 2009-2021 powered by <a href="//ts-n.net/" target="_blank" rel="noopener noreferrer">TS-N.NET</a></p>
<h2><strong><span class="text-success"><?PHP echo $lang['stri0004']; ?></span></strong></h2>
<p>The <a href="//ts-ranksystem.com" target="_blank" rel="noopener noreferrer">Ranksystem</a> was coded by <strong>Newcomer1989</strong> Copyright &copy; 2009-2023 powered by <a href="//ts-n.net/" target="_blank" rel="noopener noreferrer">TS-N.NET</a></p>
<br>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<h4><strong><span class="text-warning"><?PHP echo $lang['stri0005']; ?></span></strong></h4>
<h2><strong><span class="text-warning"><?PHP echo $lang['stri0005']; ?></span></strong></h2>
<p><?PHP echo $lang['stri0006']; ?></p>
<p><?PHP echo $lang['stri0007']; ?></p>
<p><?PHP echo $lang['stri0023']; ?></p>
@@ -39,11 +39,11 @@ require_once('_preload.php');
</div>
<div class="row">
<div class="col-lg-12">
<h4><strong><span class="text-danger"><?PHP echo $lang['stri0009'];?></span></strong></h4>
<h2><strong><span class="text-danger"><?PHP echo $lang['stri0009'];?></span></strong></h2>
<p><?PHP echo $lang['stri0010']; ?></p>
<p><a href="//php.net/" target="_blank" rel="noopener noreferrer">PHP</a> - Copyright &copy; 2001-2021 the <a href="//secure.php.net/credits.php" target="_blank" rel="noopener noreferrer">PHP Group</a></p><br>
<p><a href="//php.net/" target="_blank" rel="noopener noreferrer">PHP</a> - Copyright &copy; 2001-2023 the <a href="//secure.php.net/credits.php" target="_blank" rel="noopener noreferrer">PHP Group</a></p><br>
<p><?PHP echo $lang['stri0011']; ?></p>
<p><a href="//jquery.com" target="_blank" rel="noopener noreferrer">jQuery v3.5.1</a> - Copyright &copy; 2020 The jQuery Foundation</p>
<p><a href="//jquery.com" target="_blank" rel="noopener noreferrer">jQuery v3.6.2</a> - Copyright &copy; 2020 The jQuery Foundation</p>
<p><a href="//fontawesome.com" target="_blank" rel="noopener noreferrer">Font Awesome 5.15.1</a> - Copyright &copy; Fonticons, Inc.</p>
<p><a href="//flagicons.lipis.dev/" target="_blank" rel="noopener noreferrer">flag-icon-css 3.5.0</a> - Copyright &copy; 2020 flag-icons</p>
<p><a href="//planetteamspeak.com" target="_blank" rel="noopener noreferrer">TeamSpeak 3 PHP Framework 1.1.33</a> - Copyright &copy; 2010-2018 Planet TeamSpeak</p>
@@ -62,7 +62,7 @@ require_once('_preload.php');
</div>
<div class="row">
<div class="col-lg-12">
<h4><strong><span class="text-info"><?PHP echo $lang['stri0012']; ?></span></strong></h4>
<h2><strong><span class="text-info"><?PHP echo $lang['stri0012']; ?></span></strong></h2>
<p><?PHP echo sprintf($lang['stri0021'], '<a href="//hdf-multigaming.de" target="_blank">Shad86</a> -'); ?></p>
<p><?PHP echo sprintf($lang['stri0022'], '<a href="//magicbroccoli.de" target="_blank">mightyBroccoli</a> -'); ?></p>
<p><?PHP echo sprintf($lang['stri0013'], 'sergey, <a href="//vk.com/akhachirov" target="_blank">Arselopster</a>, <a href="//vk.com/zheez" target="_blank">DeviantUser</a> & <a href="//goodgame.by/" target="_blank">kidi</a> -'); ?></p>
@@ -79,6 +79,7 @@ require_once('_preload.php');
<p><?PHP echo sprintf($lang['stri0027'], '<a href="//warriortigers.hu" target="_blank">ExXeL</a> -'); ?></p>
<p><?PHP echo sprintf($lang['stri0028'], '<a href="//grezhost.com" target="_blank">G. FARZALIYEV</a> -'); ?></p>
<p><?PHP echo sprintf($lang['stri0029'], '<a href="//nick-slowinski.de" target="_blank">Nick Slowinski</a> -'); ?></p>
<p><?PHP echo sprintf($lang['stri0030'], '<a href="//terrabot.de" target="_blank">JimmyNail</a> -'); ?></p>
<br>
</div>
</div>

View File

@@ -2,20 +2,20 @@
require_once('_preload.php');
try {
if(is_dir(substr(__DIR__,0,-5).'languages/')) {
foreach(scandir(substr(__DIR__,0,-5).'languages/') as $file) {
if(is_dir($GLOBALS['langpath'])) {
foreach(scandir($GLOBALS['langpath']) as $file) {
if ('.' === $file || '..' === $file || is_dir($file)) continue;
$sep_lang = preg_split("/[._]/", $file);
if(isset($sep_lang[0]) && $sep_lang[0] == 'nations' && isset($sep_lang[1]) && strlen($sep_lang[1]) == 2 && isset($sep_lang[2]) && strtolower($sep_lang[2]) == 'php') {
if(strtolower($cfg['default_language']) == strtolower($sep_lang[1])) {
require_once('../languages/nations_'.$sep_lang[1].'.php');
require_once($GLOBALS['langpath'].'nations_'.$sep_lang[1].'.php');
$required_nations = 1;
break;
}
}
}
if(!isset($required_nations)) {
require_once('../languages/nations_en.php');
require_once($GLOBALS['langpath'].'nations_en.php');
}
}
@@ -36,11 +36,18 @@ try {
} else {
$order .= ", `{$cfg['stats_column_default_sort_2']}` ".$cfg['stats_column_default_order_2'];
}
if ($searchstring == '') {
$dbdata = $mysqlcon->prepare("SELECT * FROM `$dbname`.`user` WHERE 1=1$filter ORDER BY $order LIMIT :start, :userproseite");
if($cfg['stats_column_online_day_switch'] == 1 || $cfg['stats_column_idle_day_switch'] == 1 || $cfg['stats_column_active_day_switch'] == 1 || $cfg['stats_column_online_week_switch'] == 1 || $cfg['stats_column_idle_week_switch'] == 1 || $cfg['stats_column_active_week_switch'] == 1 || $cfg['stats_column_online_month_switch'] == 1 || $cfg['stats_column_idle_month_switch'] == 1 || $cfg['stats_column_active_month_switch'] == 1) {
$stats_user_tbl = ", `$dbname`.`stats_user`";
$stats_user_where = " AND `stats_user`.`uuid`=`user`.`uuid`";
} else {
$dbdata = $mysqlcon->prepare("SELECT * FROM `$dbname`.`user` WHERE (`uuid` LIKE :searchvalue OR `cldbid` LIKE :searchvalue OR `name` LIKE :searchvalue) $filter ORDER BY $order LIMIT :start, :userproseite");
$stats_user_tbl = $stats_user_where = '';
}
if ($searchstring == '') {
$dbdata = $mysqlcon->prepare("SELECT * FROM `$dbname`.`user`$stats_user_tbl WHERE 1=1$filter$stats_user_where ORDER BY $order LIMIT :start, :userproseite");
} else {
$dbdata = $mysqlcon->prepare("SELECT * FROM `$dbname`.`user`$stats_user_tbl WHERE (`user`.`uuid` LIKE :searchvalue OR `user`.`cldbid` LIKE :searchvalue OR `user`.`name` LIKE :searchvalue) $filter$stats_user_where ORDER BY $order LIMIT :start, :userproseite");
$dbdata->bindValue(':searchvalue', '%'.$searchstring.'%', PDO::PARAM_STR);
}
@@ -79,52 +86,26 @@ try {
}
}
?>
<div id="page-wrapper">
<div id="page-wrapper" class="stats_list_rankup">
<?PHP if(isset($err_msg)) error_handling($err_msg, $err_lvl); ?>
<div class="container-fluid">
<?PHP
if($user_pro_seite == "all" || $cfg['stats_show_site_navigation_switch'] == 0) {
} else {
$pag = pagination($keysort,$keyorder,$user_pro_seite,$seiten_anzahl_gerundet,$seite,$getstring);
echo $pag;
echo pagination($keysort,$keyorder,$user_pro_seite,$seiten_anzahl_gerundet,$seite,$getstring);
}
?>
<table class="table table-striped">
<table class="table table-striped" id="list-rankup">
<thead data-spy="affix" data-offset-top="100">
<tr>
<?PHP
if ($cfg['stats_column_rank_switch'] == 1 || $adminlogin == 1)
echo '<th class="text-center"><a href="?sort=rank&amp;order=' , $keyorder2 , '&amp;seite=' , $seite , '&amp;user=' , $user_pro_seite , '&amp;search=' , $getstring , '"><span class="hdcolor">' , $lang['listrank'] , '</span></a></th>';
if ($cfg['stats_column_client_name_switch'] == 1 || $adminlogin == 1)
echo ($keysort == 'name') ? '<th class="text-center"><a href="?sort=name&amp;order=' . $keyorder2 . '&amp;seite=' . $seite . '&amp;user=' . $user_pro_seite . '&amp;search=' . $getstring . '"><span class="hdcolor">' . $lang['listnick'] . '</span></a></th>' : '<th class="text-center"><a href="?sort=name&amp;order=' . $keyorder2 . '&amp;seite=' . $seite . '&amp;user=' . $user_pro_seite . '&amp;search=' . $getstring . '"><span class="hdcolor">' . $lang['listnick'] . '</span></a></th>';
if ($cfg['stats_column_unique_id_switch'] == 1 || $adminlogin == 1)
echo '<th class="text-center"><a href="?sort=uuid&amp;order=' , $keyorder2 , '&amp;seite=' , $seite , '&amp;user=' , $user_pro_seite , '&amp;search=' , $getstring , '"><span class="hdcolor">' , $lang['listuid'] , '</span></a></th>';
if ($cfg['stats_column_client_db_id_switch'] == 1 || $adminlogin == 1)
echo '<th class="text-center"><a href="?sort=cldbid&amp;order=' , $keyorder2 , '&amp;seite=' , $seite , '&amp;user=' , $user_pro_seite , '&amp;search=' , $getstring , '"><span class="hdcolor">' , $lang['listcldbid'] , '</span></a></th>';
if ($cfg['stats_column_last_seen_switch'] == 1 || $adminlogin == 1)
echo '<th class="text-center"><a href="?sort=lastseen&amp;order=' , $keyorder2 , '&amp;seite=' , $seite , '&amp;user=' , $user_pro_seite , '&amp;search=' , $getstring , '"><span class="hdcolor">' , $lang['listseen'] , '</span></a></th>';
if ($cfg['stats_column_nation_switch'] == 1 || $adminlogin == 1)
echo '<th class="text-center"><a href="?sort=nation&amp;order=' , $keyorder2 , '&amp;seite=' , $seite , '&amp;user=' , $user_pro_seite , '&amp;search=' , $getstring , '"><span class="hdcolor">' , $lang['listnat'] , '</span></a></th>';
if ($cfg['stats_column_version_switch'] == 1 || $adminlogin == 1)
echo '<th class="text-center"><a href="?sort=version&amp;order=' , $keyorder2 , '&amp;seite=' , $seite , '&amp;user=' , $user_pro_seite , '&amp;search=' , $getstring , '"><span class="hdcolor">' , $lang['listver'] , '</span></a></th>';
if ($cfg['stats_column_platform_switch'] == 1 || $adminlogin == 1)
echo '<th class="text-center"><a href="?sort=platform&amp;order=' , $keyorder2 , '&amp;seite=' , $seite , '&amp;user=' , $user_pro_seite , '&amp;search=' , $getstring , '"><span class="hdcolor">' , $lang['listpla'] , '</span></a></th>';
if ($cfg['stats_column_online_time_switch'] == 1 || $adminlogin == 1)
echo '<th class="text-center"><a href="?sort=count&amp;order=' , $keyorder2 , '&amp;seite=' , $seite , '&amp;user=' , $user_pro_seite , '&amp;search=' , $getstring , '"><span class="hdcolor">' , $lang['listsumo'] , '</span></a></th>';
if ($cfg['stats_column_idle_time_switch'] == 1 || $adminlogin == 1)
echo '<th class="text-center"><a href="?sort=idle&amp;order=' , $keyorder2 , '&amp;seite=' , $seite , '&amp;user=' , $user_pro_seite , '&amp;search=' , $getstring , '"><span class="hdcolor">' , $lang['listsumi'] , '</span></a></th>';
if ($cfg['stats_column_active_time_switch'] == 1 || $adminlogin == 1)
echo '<th class="text-center"><a href="?sort=active&amp;order=' , $keyorder2 , '&amp;seite=' , $seite , '&amp;user=' , $user_pro_seite , '&amp;search=' , $getstring , '"><span class="hdcolor">' , $lang['listsuma'] , '</span></a></th>';
if ($cfg['stats_column_current_server_group_switch'] == 1 || $adminlogin == 1)
echo '<th class="text-center"><a href="?sort=grpid&amp;order=' , $keyorder2 , '&amp;seite=' , $seite , '&amp;user=' , $user_pro_seite , '&amp;search=' , $getstring , '"><span class="hdcolor">' , $lang['listacsg'] , '</span></a></th>';
if ($cfg['stats_column_current_group_since_switch'] == 1 || $adminlogin == 1)
echo '<th class="text-center"><a href="?sort=grpsince&amp;order=' , $keyorder2 , '&amp;seite=' , $seite , '&amp;user=' , $user_pro_seite , '&amp;search=' , $getstring , '"><span class="hdcolor">' , $lang['listgrps'] , '</span></a></th>';
if ($cfg['stats_column_next_rankup_switch'] == 1 || $adminlogin == 1)
echo ($keysort == 'nextup') ? '<th class="text-center"><a href="?sort=nextup&amp;order=' . $keyorder2 . '&amp;seite=' . $seite . '&amp;user=' . $user_pro_seite . '&amp;search=' . $getstring . '"><span class="hdcolor">' . $lang['listnxup'] . '</span></a></th>' : '<th class="text-center"><a href="?sort=nextup&amp;order=' . $keyorder2 . '&amp;seite=' . $seite . '&amp;user=' . $user_pro_seite . '&amp;search=' . $getstring . '"><span class="hdcolor">' . $lang['listnxup'] . '</span></a></th>';
if (($cfg['stats_column_next_server_group_switch'] == 1 || $adminlogin == 1) && $cfg['rankup_time_assess_mode'] == 1) {
echo '<th class="text-center"><a href="?sort=active&amp;order=' , $keyorder2 , '&amp;seite=' , $seite , '&amp;user=' , $user_pro_seite , '&amp;search=' , $getstring , '"><span class="hdcolor">' , $lang['listnxsg'] , '</span></a></th>';
} elseif (($cfg['stats_column_next_server_group_switch'] == 1 || $adminlogin == 1) && $cfg['rankup_time_assess_mode'] != 1) {
echo '<th class="text-center"><a href="?sort=count&amp;order=' , $keyorder2 , '&amp;seite=' , $seite , '&amp;user=' , $user_pro_seite , '&amp;search=' , $getstring , '"><span class="hdcolor">' , $lang['listnxsg'] , '</span></a></th>';
$arr_sort_options = sort_options($lang);
$count_columns = 0;
foreach ($arr_sort_options as $opt => $val) {
if ($cfg[$val['config']] == 1 || $adminlogin == 1) {
echo '<th><a href="?sort=',$val['option'],'&amp;order=',$keyorder2,'&amp;seite=',$seite,'&amp;user=',$user_pro_seite,'&amp;search=',rawurldecode($getstring),'"><span class="hdcolor">',$val['title'],'</span></a></th>';
$count_columns++;
}
}
echo '</tr></thead><tbody>';
ksort($cfg['rankup_definition']);
@@ -136,124 +117,24 @@ try {
$activetime = $value['count'];
}
$grpcount=0;
foreach ($cfg['rankup_definition'] as $rank) {
$grpcount++;
if ($activetime < $rank['time'] || $grpcount == count($cfg['rankup_definition']) && $value['nextup'] <= 0 && $cfg['stats_show_clients_in_highest_rank_switch'] == 1 || $grpcount == count($cfg['rankup_definition']) && $value['nextup'] == 0 && $adminlogin == 1) {
echo '<tr>';
if ($cfg['stats_column_rank_switch'] == 1 || $adminlogin == 1) {
if($value['except'] == 2 || $value['except'] == 3) {
echo '<td class="text-center"></td>';
} else {
echo '<td class="text-center">' , $value['rank'] , '</td>';
}
if($cfg['stats_column_next_server_group_switch'] != 1) {
echo list_rankup($cfg,$lang,$sqlhisgroup,$value,$adminlogin,$nation,$grpcount);
} else {
foreach ($cfg['rankup_definition'] as $rank) {
$grpcount++;
if ($activetime < $rank['time'] || $grpcount == count($cfg['rankup_definition']) && $value['nextup'] <= 0 && $cfg['stats_show_clients_in_highest_rank_switch'] == 1 || $grpcount == count($cfg['rankup_definition']) && $value['nextup'] == 0 && $adminlogin == 1) {
echo list_rankup($cfg,$lang,$sqlhisgroup,$value,$adminlogin,$nation,$grpcount,$rank);
break;
}
if ($adminlogin == 1) {
echo '<td class="text-center"><a href="//tsviewer.com/index.php?page=search&action=ausgabe_user&nickname=' , htmlspecialchars($value['name']) , '" target="_blank">' , htmlspecialchars($value['name']) , '</a></td>';
} elseif ($cfg['stats_column_client_name_switch'] == 1) {
echo '<td class="text-center">' , htmlspecialchars($value['name']) , '</td>';
}
if ($adminlogin == 1) {
echo '<td class="text-center"><a href="//ts3index.com/?page=searchclient&uid=' , $uuid , '" target="_blank">' , $uuid , '</a></td>';
} elseif ($cfg['stats_column_unique_id_switch'] == 1) {
echo '<td class="text-center">' , $uuid , '</td>';
}
if ($cfg['stats_column_client_db_id_switch'] == 1 || $adminlogin == 1)
echo '<td class="text-center">' , $value['cldbid'] , '</td>';
if ($cfg['stats_column_last_seen_switch'] == 1 || $adminlogin == 1) {
if ($value['online'] == 1) {
echo '<td class="text-center text-success">online</td>';
} else {
echo '<td class="text-center">' , date('Y-m-d H:i:s',$value['lastseen']), '</td>';
}
}
if ($cfg['stats_column_nation_switch'] == 1 || $adminlogin == 1) {
if(strtoupper($value['nation']) == 'XX' || $value['nation'] == NULL) {
echo '<td class="text-center"><i class="fas fa-question-circle" title="' , $lang['unknown'] , '"></i></td>';
} else {
echo '<td class="text-center"><span class="flag-icon flag-icon-' , strtolower(htmlspecialchars($value['nation'])) , '" title="' , $nation[$value['nation']] , '"></span></td>';
}
}
if ($cfg['stats_column_version_switch'] == 1 || $adminlogin == 1) {
echo '<td class="text-center">' , htmlspecialchars($value['version']) , '</td>';
}
if ($cfg['stats_column_platform_switch'] == 1 || $adminlogin == 1) {
echo '<td class="text-center">' , htmlspecialchars($value['platform']) , '</td>';
}
if ($cfg['stats_column_online_time_switch'] == 1 || $adminlogin == 1) {
echo '<td title="',round($value['count']),' sec." class="text-center">';
$dtF = new DateTime("@0");
$dtT = new DateTime("@".round($value['count']));
echo $dtF->diff($dtT)->format($cfg['default_date_format']);
}
if ($cfg['stats_column_idle_time_switch'] == 1 || $adminlogin == 1) {
echo '<td title="',round($value['idle']),' sec." class="text-center">';
$dtF = new DateTime("@0");
$dtT = new DateTime("@".round($value['idle']));
echo $dtF->diff($dtT)->format($cfg['default_date_format']);
}
if ($cfg['stats_column_active_time_switch'] == 1 || $adminlogin == 1) {
echo '<td title="',(round($value['count'])-round($value['idle'])),' sec." class="text-center">';
$dtF = new DateTime("@0");
$dtT = new DateTime("@".(round($value['count'])-round($value['idle'])));
echo $dtF->diff($dtT)->format($cfg['default_date_format']);
}
if ($cfg['stats_column_current_server_group_switch'] == 1 || $adminlogin == 1) {
if ($value['grpid'] == 0) {
echo '<td class="text-center"></td>';
} elseif(isset($sqlhisgroup[$value['grpid']]) && $sqlhisgroup[$value['grpid']]['iconid'] != 0) {
echo '<td class="text-center"><img src="../tsicons/',$sqlhisgroup[$value['grpid']]['iconid'],'.',$sqlhisgroup[$value['grpid']]['ext'],'" width="16" height="16" alt="groupicon">&nbsp;&nbsp;' , $sqlhisgroup[$value['grpid']]['sgidname'] , '</td>';
} elseif(isset($sqlhisgroup[$value['grpid']])) {
echo '<td class="text-center">' , $sqlhisgroup[$value['grpid']]['sgidname'] , '</td>';
} else {
echo '<td class="text-center"><i>',$lang['unknown'],'</i></td>';
}
}
if ($cfg['stats_column_current_group_since_switch'] == 1 || $adminlogin == 1) {
if ($value['grpsince'] == 0) {
echo '<td class="text-center"></td>';
} else {
echo '<td class="text-center">' , date('Y-m-d H:i:s',$value['grpsince']), '</td>';
}
}
if ($cfg['stats_column_next_rankup_switch'] == 1 || $adminlogin == 1) {
echo '<td title="';
if (($value['except'] == 0 || $value['except'] == 1) && $value['nextup'] > 0) {
$dtF = new DateTime("@0");
$dtT = new DateTime("@".$value['nextup']);
echo round($value['nextup']),' sec." class="text-center">',$dtF->diff($dtT)->format($cfg['default_date_format']) , '</td>';
} elseif ($value['except'] == 0 || $value['except'] == 1) {
echo '0 sec." class="text-center">0</td>';
} elseif ($value['except'] == 2 || $value['except'] == 3) {
echo '0 sec." class="text-center">0</td>';
} else {
echo $lang['errukwn'], '</td>';
}
}
if ($cfg['stats_column_next_server_group_switch'] == 1 || $adminlogin == 1) {
if ($grpcount == count($cfg['rankup_definition']) && $value['nextup'] == 0 && $cfg['stats_show_clients_in_highest_rank_switch'] == 1 || $grpcount == count($cfg['rankup_definition']) && $value['nextup'] == 0 && $adminlogin == 1) {
echo '<td class="text-center"><em>',$lang['highest'],'</em></td>';
} elseif ($value['except'] == 2 || $value['except'] == 3) {
echo '<td class="text-center"><em>',$lang['listexcept'],'</em></td>';
} elseif (isset($sqlhisgroup[$rank['group']]) && $sqlhisgroup[$rank['group']]['iconid'] != 0) {
echo '<td class="text-center"><img src="../tsicons/',$sqlhisgroup[$rank['group']]['iconid'],'.',$sqlhisgroup[$rank['group']]['ext'],'" width="16" height="16" alt="missed_icon">&nbsp;&nbsp;' , $sqlhisgroup[$rank['group']]['sgidname'] , '</td>';
} elseif (isset($sqlhisgroup[$rank['group']])) {
echo '<td class="text-center">' , $sqlhisgroup[$rank['group']]['sgidname'] , '</td>';
} else {
echo '<td class="text-center"></td>';
}
}
echo '</tr>';
break;
}
}
}
} else {
echo '<tr><td colspan="6">' , $lang['noentry'] , '</td></tr>';
echo '<tr><td colspan="',$count_columns,'">',$lang['noentry'],'</td></tr>';
}
echo '</tbody></table>';
if($user_pro_seite != "all") {
$pag = pagination($keysort,$keyorder,$user_pro_seite,$seiten_anzahl_gerundet,$seite,$getstring);
echo $pag;
echo pagination($keysort,$keyorder,$user_pro_seite,$seiten_anzahl_gerundet,$seite,$getstring);
}
?>
</div>

View File

@@ -78,7 +78,7 @@ try {
}
}
?>
<div id="page-wrapper">
<div id="page-wrapper" class="stats_my_stats">
<?PHP if(isset($err_msg)) error_handling($err_msg, $err_lvl);
if(isset($_SESSION[$rspathhex.'multiple']) && count($_SESSION[$rspathhex.'multiple']) > 1 || isset($_SESSION[$rspathhex.'connected']) && $_SESSION[$rspathhex.'connected'] == 0 || !isset($_SESSION[$rspathhex.'connected'])) { echo "</div></div></body></html>"; exit; } ?>
<div class="container-fluid">

View File

@@ -2,26 +2,26 @@
require_once('_preload.php');
try {
if(is_dir(substr(__DIR__,0,-5).'languages/')) {
foreach(scandir(substr(__DIR__,0,-5).'languages/') as $file) {
if(is_dir($GLOBALS['langpath'])) {
foreach(scandir($GLOBALS['langpath']) as $file) {
if ('.' === $file || '..' === $file || is_dir($file)) continue;
$sep_lang = preg_split("/[._]/", $file);
if(isset($sep_lang[0]) && $sep_lang[0] == 'nations' && isset($sep_lang[1]) && strlen($sep_lang[1]) == 2 && isset($sep_lang[2]) && strtolower($sep_lang[2]) == 'php') {
if(strtolower($cfg['default_language']) == strtolower($sep_lang[1])) {
require_once('../languages/nations_'.$sep_lang[1].'.php');
require_once($GLOBALS['langpath'].'nations_'.$sep_lang[1].'.php');
$required_nations = 1;
break;
}
}
}
if(!isset($required_nations)) {
require_once('../languages/nations_en.php');
require_once($GLOBALS['langpath'].'nations_en.php');
}
}
$sql_res = $mysqlcon->query("SELECT * FROM `$dbname`.`stats_nations` ORDER BY `count` DESC")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC);
?>
<div id="page-wrapper">
<div id="page-wrapper" class="stats_nations">
<?PHP if(isset($err_msg)) error_handling($err_msg, $err_lvl); ?>
<div class="container-fluid">
<div class="row">
@@ -33,7 +33,7 @@ try {
</div>
<div class="row">
<div class="col-lg-12">
<div class="table-responsive">
<div class="table-responsive" id="nations">
<table class="table table-bordered table-hover">
<tbody>
<tr>
@@ -57,7 +57,7 @@ try {
} else {
echo 'flag-icon flag-icon-',strtolower($country);
}
echo '"></span>&nbsp;&nbsp;',$country,'</td><td><a href="list_rankup.php?sort=rank&order=desc&search=filter:country:',$country,':">';
echo '"></span><span class="item-margin">',$country,'</span></td><td><a href="list_rankup.php?sort=rank&order=desc&search=filter:country:',$country,':">';
if(isset($nation[$country])) echo $nation[$country];
echo '</td><td>',$value['count'],'</td><td>',number_format(round(($value['count'] * 100 / $sum_of_all), 1), 1),' %</td></tr>';
}

View File

@@ -4,7 +4,7 @@ require_once('_preload.php');
try {
$sql_res = $mysqlcon->query("SELECT * FROM `$dbname`.`stats_platforms` ORDER BY `count` DESC")->fetchALL(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC);
?>
<div id="page-wrapper">
<div id="page-wrapper" class="stats_platforms">
<?PHP if(isset($err_msg)) error_handling($err_msg, $err_lvl); ?>
<div class="container-fluid">
<div class="row">
@@ -17,7 +17,7 @@ try {
<div class="row">
<div class="col-lg-12">
<div class="table-responsive">
<table class="table table-bordered table-hover">
<table class="table table-bordered table-hover" id="platforms">
<tbody>
<tr>
<th>#</th>

View File

@@ -3,7 +3,7 @@ require_once('_preload.php');
try {
?>
<div id="page-wrapper">
<div id="page-wrapper" class="stats_privacy_policy">
<?PHP if(isset($err_msg)) error_handling($err_msg, $err_lvl); ?>
<div class="container-fluid">
<div class="row">

View File

@@ -57,19 +57,19 @@ try {
for($count10 = $count10; $count10 <= 10; $count10++) {
$client_data[$count10] = array(
'name' => "<i>unkown</i>",
'title' => "unkown",
'count' => "0",
'online' => "0"
'name' => "<i>".$lang['unknown']."</i>",
'title' => $lang['unknown'],
'count' => 0,
'online' => 0
);
}
$sum = $mysqlcon->query("SELECT SUM(`count`) AS `count`, SUM(`idle`) AS `idle`, COUNT(*) AS `user` FROM `$dbname`.`user`")->fetch();
$sum = $mysqlcon->query("SELECT SUM(`count`) AS `count`, SUM(`idle`) AS `idle`, COUNT(*) AS `user` FROM `$dbname`.`user` `u` WHERE `uuid` NOT IN ($notinuuid) AND `cldgroup` NOT IN ($notingroup) $andnotgroup")->fetch();
$others_sum = round(($sum['count']/3600)) - $top10_sum;
$others_idle_sum = round(($sum['idle']/3600)) - $top10_idle_sum;
$sumentries = $sum['user'] - 10;
?>
<div id="page-wrapper">
<div id="page-wrapper" class="stats_top_all">
<?PHP if(isset($err_msg)) error_handling($err_msg, $err_lvl); ?>
<div class="container-fluid">
<div class="row">
@@ -317,7 +317,7 @@ try {
<div class="col-lg-3">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><i class="fas fa-chart-bar"></i>&nbsp;<?PHP echo $lang['sttw0008']; ?></h3>
<h3 class="panel-title"><i class="fas fa-chart-bar"></i><span class="item-margin"><?PHP echo $lang['sttw0008']; ?></span></h3>
</div>
<div class="panel-body">
<div id="top10vs_donut1"></div>
@@ -328,7 +328,7 @@ try {
<div class="panel panel-green">
<div class="panel-heading">
<h3 class="panel-title"><i class="fas fa-chart-bar"></i>&nbsp;<?PHP echo $lang['sttw0009']; ?></h3>
<h3 class="panel-title"><i class="fas fa-chart-bar"></i><span class="item-margin"><?PHP echo $lang['sttw0009']; ?></span></h3>
</div>
<div class="panel-body">
<div id="top10vs_donut2"></div>
@@ -339,7 +339,7 @@ try {
<div class="panel panel-yellow">
<div class="panel-heading">
<h3 class="panel-title"><i class="fas fa-chart-bar"></i>&nbsp;<?PHP echo $lang['sttw0010']; ?></h3>
<h3 class="panel-title"><i class="fas fa-chart-bar"></i><span class="item-margin"><?PHP echo $lang['sttw0010']; ?></span></h3>
</div>
<div class="panel-body">
<div id="top10vs_donut3"></div>
@@ -352,36 +352,44 @@ try {
</div>
</div>
<?PHP require_once('_footer.php'); ?>
<input type="hidden" id="donut_time_color_1" value="">
<input type="hidden" id="donut_time_color_2" value="">
<input type="hidden" id="donut_version_color_1" value="">
<input type="hidden" id="donut_version_color_2" value="">
<input type="hidden" id="donut_nation_color_1" value="">
<input type="hidden" id="donut_nation_color_2" value="">
<script>
Morris.Donut({
element: 'top10vs_donut1',
data: [
{label: <?PHP echo '"',$lang['sttw0011'],'"'; ?>, value: <?PHP echo $top10_sum ?>},
{label: <?PHP echo '"'.sprintf($lang['sttw0012'].'"', $sumentries); ?>, value: <?PHP echo $others_sum ?>},
]
});
Morris.Donut({
element: 'top10vs_donut2',
data: [
{label: <?PHP echo '"',$lang['sttw0011'],'"'; ?>, value: <?PHP echo $top10_sum - $top10_idle_sum ?>},
{label: <?PHP echo '"'.sprintf($lang['sttw0012'].'"', $sumentries); ?>, value: <?PHP echo $others_sum - $others_idle_sum ?>},
],
colors: [
'#5cb85c',
'#80ce80'
]
});
Morris.Donut({
element: 'top10vs_donut3',
data: [
{label: <?PHP echo '"',$lang['sttw0011'],'"'; ?>, value: <?PHP echo $top10_idle_sum ?>},
{label: <?PHP echo '"'.sprintf($lang['sttw0012'].'"', $sumentries); ?>, value: <?PHP echo $others_idle_sum ?>},
],
colors: [
'#f0ad4e',
'#ffc675'
]
});
const donut_time_color_1 = window.getComputedStyle(document.getElementById('donut_time_color_1')).getPropertyValue('color');
const donut_time_color_2 = window.getComputedStyle(document.getElementById('donut_time_color_2')).getPropertyValue('color');
const donut_version_color_1 = window.getComputedStyle(document.getElementById('donut_version_color_1')).getPropertyValue('color');
const donut_version_color_2 = window.getComputedStyle(document.getElementById('donut_version_color_2')).getPropertyValue('color');
const donut_nation_color_1 = window.getComputedStyle(document.getElementById('donut_nation_color_1')).getPropertyValue('color');
const donut_nation_color_2 = window.getComputedStyle(document.getElementById('donut_nation_color_2')).getPropertyValue('color');
Morris.Donut({
element: 'top10vs_donut1',
data: [
{label: <?PHP echo '"',$lang['sttw0011'],'"'; ?>, value: <?PHP echo $top10_sum ?>},
{label: <?PHP echo '"'.sprintf($lang['sttw0012'].'"', $sumentries); ?>, value: <?PHP echo $others_sum ?>},
],
colors: [donut_time_color_1, donut_time_color_2]
});
Morris.Donut({
element: 'top10vs_donut2',
data: [
{label: <?PHP echo '"',$lang['sttw0011'],'"'; ?>, value: <?PHP echo $top10_sum - $top10_idle_sum ?>},
{label: <?PHP echo '"'.sprintf($lang['sttw0012'].'"', $sumentries); ?>, value: <?PHP echo $others_sum - $others_idle_sum ?>},
],
colors: [donut_version_color_1, donut_version_color_2]
});
Morris.Donut({
element: 'top10vs_donut3',
data: [
{label: <?PHP echo '"',$lang['sttw0011'],'"'; ?>, value: <?PHP echo $top10_idle_sum ?>},
{label: <?PHP echo '"'.sprintf($lang['sttw0012'].'"', $sumentries); ?>, value: <?PHP echo $others_idle_sum ?>},
],
colors: [donut_nation_color_1, donut_nation_color_2]
});
</script>
</body>
</html>

View File

@@ -32,7 +32,8 @@ try {
$texttime = $lang['sttw0003'];
}
$db_arr = $mysqlcon->query("SELECT `s`.`uuid`,`s`.`count_month`,`s`.`idle_month`,`u`.`name`,`u`.`online`,`u`.`cldgroup` FROM (SELECT `uuid`,`removed`,`count_month`,`idle_month` FROM `$dbname`.`stats_user` WHERE `removed`!=1) `s` INNER JOIN `$dbname`.`user` `u` ON `u`.`uuid`=`s`.`uuid` WHERE `u`.`uuid` NOT IN ($notinuuid) AND `u`.`cldgroup` NOT IN ($notingroup) $andnotgroup AND `s`.`idle_month`<`s`.`count_month` ORDER BY $order DESC LIMIT 10")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC);
$timeago = time() - 2592000;
$db_arr = $mysqlcon->query("SELECT `s`.`uuid`,`s`.`count_month`,`s`.`idle_month`,`u`.`name`,`u`.`online`,`u`.`cldgroup` FROM `$dbname`.`stats_user` `s`, `$dbname`.`user` `u` WHERE `u`.`uuid` = `s`.`uuid` AND `s`.`removed`!=1 AND `u`.`lastseen`>{$timeago} AND `u`.`uuid` NOT IN ({$notinuuid}) AND `u`.`cldgroup` NOT IN ({$notingroup}) {$andnotgroup} AND `s`.`idle_month`<`s`.`count_month` AND `s`.`count_month`>=0 AND `s`.`idle_month`>=0 ORDER BY $order DESC LIMIT 10")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC);
$count_ids = $mysqlcon->query("SELECT COUNT(DISTINCT(`id`)) AS `count` from `$dbname`.`user_snapshot`")->fetch();
@@ -46,8 +47,8 @@ try {
} else {
$hours = $client['count_month'];
}
$top10_sum = round(($client['count_month']/3600)) + $top10_sum;
$top10_idle_sum = round(($client['idle_month']/3600)) + $top10_idle_sum;
$top10_sum += $client['count_month'];
$top10_idle_sum += $client['idle_month'];
$client_data[$count10] = array(
'name' => htmlspecialchars($client['name']),
'title' => htmlspecialchars($client['name']),
@@ -59,19 +60,21 @@ try {
for($count10 = $count10; $count10 <= 10; $count10++) {
$client_data[$count10] = array(
'name' => "<i>unkown</i>",
'title' => "unkown",
'count' => "0",
'online' => "0"
'name' => "<i>".$lang['unknown']."</i>",
'title' => $lang['unknown'],
'count' => 0,
'online' => 0
);
}
$sum = $mysqlcon->query("SELECT SUM(`count`) AS `count`, SUM(`idle`) AS `idle`, COUNT(*) AS `user` FROM `$dbname`.`user`")->fetch();
$sum = $mysqlcon->query("SELECT SUM(`s`.`count_month`) AS `count`, SUM(`s`.`idle_month`) AS `idle`, COUNT(*) AS `user` FROM `$dbname`.`stats_user` `s`, `$dbname`.`user` `u` WHERE `u`.`uuid` = `s`.`uuid` AND `s`.`removed`!=1 AND `u`.`lastseen`>{$timeago} AND `u`.`uuid` NOT IN ({$notinuuid}) AND `u`.`cldgroup` NOT IN ({$notingroup}) {$andnotgroup} AND `s`.`idle_month`<`s`.`count_month` AND `s`.`count_month`>=0 AND `s`.`idle_month`>=0;")->fetch();
$top10_sum = round(($top10_sum/3600));
$top10_idle_sum = round(($top10_idle_sum/3600));
$others_sum = round(($sum['count']/3600)) - $top10_sum;
$others_idle_sum = round(($sum['idle']/3600)) - $top10_idle_sum;
$sumentries = $sum['user'] - 10;
?>
<div id="page-wrapper">
<div id="page-wrapper" class="stats_top_month">
<?PHP if(isset($err_msg)) error_handling($err_msg, $err_lvl); ?>
<div class="container-fluid">
<div class="row">
@@ -320,7 +323,7 @@ try {
<div class="col-lg-3">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><i class="fas fa-chart-bar"></i>&nbsp;<?PHP echo $lang['sttw0008']; ?></h3>
<h3 class="panel-title"><i class="fas fa-chart-bar"></i><span class="item-margin"><?PHP echo $lang['sttw0008']; ?></span></h3>
</div>
<div class="panel-body">
<div id="top10vs_donut1"></div>
@@ -331,7 +334,7 @@ try {
<div class="panel panel-green">
<div class="panel-heading">
<h3 class="panel-title"><i class="fas fa-chart-bar"></i>&nbsp;<?PHP echo $lang['sttw0009']; ?></h3>
<h3 class="panel-title"><i class="fas fa-chart-bar"></i><span class="item-margin"><?PHP echo $lang['sttw0009']; ?></span></h3>
</div>
<div class="panel-body">
<div id="top10vs_donut2"></div>
@@ -342,7 +345,7 @@ try {
<div class="panel panel-yellow">
<div class="panel-heading">
<h3 class="panel-title"><i class="fas fa-chart-bar"></i>&nbsp;<?PHP echo $lang['sttw0010']; ?></h3>
<h3 class="panel-title"><i class="fas fa-chart-bar"></i><span class="item-margin"><?PHP echo $lang['sttw0010']; ?></span></h3>
</div>
<div class="panel-body">
<div id="top10vs_donut3"></div>
@@ -356,36 +359,44 @@ try {
</div>
</div>
<?PHP require_once('_footer.php'); ?>
<input type="hidden" id="donut_time_color_1" value="">
<input type="hidden" id="donut_time_color_2" value="">
<input type="hidden" id="donut_version_color_1" value="">
<input type="hidden" id="donut_version_color_2" value="">
<input type="hidden" id="donut_nation_color_1" value="">
<input type="hidden" id="donut_nation_color_2" value="">
<script>
Morris.Donut({
element: 'top10vs_donut1',
data: [
{label: <?PHP echo '"',$lang['sttw0011'],'"'; ?>, value: <?PHP echo $top10_sum ?>},
{label: <?PHP echo '"'.sprintf($lang['sttw0012'].'"', $sumentries); ?>, value: <?PHP echo $others_sum ?>},
]
});
Morris.Donut({
element: 'top10vs_donut2',
data: [
{label: <?PHP echo '"',$lang['sttw0011'],'"'; ?>, value: <?PHP echo $top10_sum - $top10_idle_sum ?>},
{label: <?PHP echo '"'.sprintf($lang['sttw0012'].'"', $sumentries); ?>, value: <?PHP echo $others_sum - $others_idle_sum ?>},
],
colors: [
'#5cb85c',
'#80ce80'
]
});
Morris.Donut({
element: 'top10vs_donut3',
data: [
{label: <?PHP echo '"',$lang['sttw0011'],'"'; ?>, value: <?PHP echo $top10_idle_sum ?>},
{label: <?PHP echo '"'.sprintf($lang['sttw0012'].'"', $sumentries); ?>, value: <?PHP echo $others_idle_sum ?>},
],
colors: [
'#f0ad4e',
'#ffc675'
]
});
const donut_time_color_1 = window.getComputedStyle(document.getElementById('donut_time_color_1')).getPropertyValue('color');
const donut_time_color_2 = window.getComputedStyle(document.getElementById('donut_time_color_2')).getPropertyValue('color');
const donut_version_color_1 = window.getComputedStyle(document.getElementById('donut_version_color_1')).getPropertyValue('color');
const donut_version_color_2 = window.getComputedStyle(document.getElementById('donut_version_color_2')).getPropertyValue('color');
const donut_nation_color_1 = window.getComputedStyle(document.getElementById('donut_nation_color_1')).getPropertyValue('color');
const donut_nation_color_2 = window.getComputedStyle(document.getElementById('donut_nation_color_2')).getPropertyValue('color');
Morris.Donut({
element: 'top10vs_donut1',
data: [
{label: <?PHP echo '"',$lang['sttw0011'],'"'; ?>, value: <?PHP echo $top10_sum ?>},
{label: <?PHP echo '"'.sprintf($lang['sttw0012'].'"', $sumentries); ?>, value: <?PHP echo $others_sum ?>},
],
colors: [donut_time_color_1, donut_time_color_2]
});
Morris.Donut({
element: 'top10vs_donut2',
data: [
{label: <?PHP echo '"',$lang['sttw0011'],'"'; ?>, value: <?PHP echo $top10_sum - $top10_idle_sum ?>},
{label: <?PHP echo '"'.sprintf($lang['sttw0012'].'"', $sumentries); ?>, value: <?PHP echo $others_sum - $others_idle_sum ?>},
],
colors: [donut_version_color_1, donut_version_color_2]
});
Morris.Donut({
element: 'top10vs_donut3',
data: [
{label: <?PHP echo '"',$lang['sttw0011'],'"'; ?>, value: <?PHP echo $top10_idle_sum ?>},
{label: <?PHP echo '"'.sprintf($lang['sttw0012'].'"', $sumentries); ?>, value: <?PHP echo $others_idle_sum ?>},
],
colors: [donut_nation_color_1, donut_nation_color_2]
});
</script>
</body>
</html>

View File

@@ -32,7 +32,8 @@ try {
$texttime = $lang['sttw0003'];
}
$db_arr = $mysqlcon->query("SELECT `s`.`uuid`,`s`.`count_week`,`s`.`idle_week`,`u`.`name`,`u`.`online`,`u`.`cldgroup` FROM (SELECT `uuid`,`removed`,`count_week`,`idle_week` FROM `$dbname`.`stats_user` WHERE `removed`!=1) `s` INNER JOIN `$dbname`.`user` `u` ON `u`.`uuid`=`s`.`uuid` WHERE `u`.`uuid` NOT IN ($notinuuid) AND `u`.`cldgroup` NOT IN ($notingroup) $andnotgroup AND `s`.`idle_week`<`s`.`count_week` ORDER BY $order DESC LIMIT 10")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC);
$timeago = time() - 604800;
$db_arr = $mysqlcon->query("SELECT `s`.`uuid`,`s`.`count_week`,`s`.`idle_week`,`u`.`name`,`u`.`online`,`u`.`cldgroup` FROM `$dbname`.`stats_user` `s`, `$dbname`.`user` `u` WHERE `u`.`uuid` = `s`.`uuid` AND `s`.`removed`!=1 AND `u`.`lastseen`>{$timeago} AND `u`.`uuid` NOT IN ({$notinuuid}) AND `u`.`cldgroup` NOT IN ({$notingroup}) {$andnotgroup} AND `s`.`idle_week`<`s`.`count_week` AND `s`.`count_week`>=0 AND `s`.`idle_week`>=0 ORDER BY $order DESC LIMIT 10")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC);
$count_ids = $mysqlcon->query("SELECT COUNT(DISTINCT(`id`)) AS `count` from `$dbname`.`user_snapshot`")->fetch();
@@ -46,8 +47,8 @@ try {
} else {
$hours = $client['count_week'];
}
$top10_sum = round(($client['count_week']/3600)) + $top10_sum;
$top10_idle_sum = round(($client['idle_week']/3600)) + $top10_idle_sum;
$top10_sum += $client['count_week'];
$top10_idle_sum += $client['idle_week'];
$client_data[$count10] = array(
'name' => htmlspecialchars($client['name']),
'title' => htmlspecialchars($client['name']),
@@ -57,21 +58,23 @@ try {
$count10++;
}
for($count = $count10; $count10 < 10; $count10++) {
$client_data[$count] = array(
'name' => "<i>unkown</i>",
'title' => "unkown",
'count' => "0",
'online' => "0"
for($count10 = $count10; $count10 < 10; $count10++) {
$client_data[$count10] = array(
'name' => "<i>".$lang['unknown']."</i>",
'title' => $lang['unknown'],
'count' => 0,
'online' => 0
);
}
$sum = $mysqlcon->query("SELECT SUM(`count`) AS `count`, SUM(`idle`) AS `idle`, COUNT(*) AS `user` FROM `$dbname`.`user`")->fetch();
$sum = $mysqlcon->query("SELECT SUM(`s`.`count_week`) AS `count`, SUM(`s`.`idle_week`) AS `idle`, COUNT(*) AS `user` FROM `$dbname`.`stats_user` `s`, `$dbname`.`user` `u` WHERE `u`.`uuid` = `s`.`uuid` AND `s`.`removed`!=1 AND `u`.`lastseen`>{$timeago} AND `u`.`uuid` NOT IN ({$notinuuid}) AND `u`.`cldgroup` NOT IN ({$notingroup}) {$andnotgroup} AND `s`.`idle_week`<`s`.`count_week` AND `s`.`count_week`>=0 AND `s`.`idle_week`>=0;")->fetch();
$top10_sum = round(($top10_sum/3600));
$top10_idle_sum = round(($top10_idle_sum/3600));
$others_sum = round(($sum['count']/3600)) - $top10_sum;
$others_idle_sum = round(($sum['idle']/3600)) - $top10_idle_sum;
$sumentries = $sum['user'] - 10;
?>
<div id="page-wrapper">
<div id="page-wrapper" class="stats_top_week">
<?PHP if(isset($err_msg)) error_handling($err_msg, $err_lvl); ?>
<div class="container-fluid">
<div class="row">
@@ -320,7 +323,7 @@ try {
<div class="col-lg-3">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><i class="fas fa-chart-bar"></i>&nbsp;<?PHP echo $lang['sttw0008']; ?></h3>
<h3 class="panel-title"><i class="fas fa-chart-bar"></i><span class="item-margin"><?PHP echo $lang['sttw0008']; ?></span></h3>
</div>
<div class="panel-body">
<div id="top10vs_donut1"></div>
@@ -331,7 +334,7 @@ try {
<div class="panel panel-green">
<div class="panel-heading">
<h3 class="panel-title"><i class="fas fa-chart-bar"></i>&nbsp;<?PHP echo $lang['sttw0009']; ?></h3>
<h3 class="panel-title"><i class="fas fa-chart-bar"></i><span class="item-margin"><?PHP echo $lang['sttw0009']; ?></span></h3>
</div>
<div class="panel-body">
<div id="top10vs_donut2"></div>
@@ -342,7 +345,7 @@ try {
<div class="panel panel-yellow">
<div class="panel-heading">
<h3 class="panel-title"><i class="fas fa-chart-bar"></i>&nbsp;<?PHP echo $lang['sttw0010']; ?></h3>
<h3 class="panel-title"><i class="fas fa-chart-bar"></i><span class="item-margin"><?PHP echo $lang['sttw0010']; ?></span></h3>
</div>
<div class="panel-body">
<div id="top10vs_donut3"></div>
@@ -356,36 +359,44 @@ try {
</div>
</div>
<?PHP require_once('_footer.php'); ?>
<input type="hidden" id="donut_time_color_1" value="">
<input type="hidden" id="donut_time_color_2" value="">
<input type="hidden" id="donut_version_color_1" value="">
<input type="hidden" id="donut_version_color_2" value="">
<input type="hidden" id="donut_nation_color_1" value="">
<input type="hidden" id="donut_nation_color_2" value="">
<script>
Morris.Donut({
element: 'top10vs_donut1',
data: [
{label: <?PHP echo '"',$lang['sttw0011'],'"'; ?>, value: <?PHP echo $top10_sum ?>},
{label: <?PHP echo '"'.sprintf($lang['sttw0012'].'"', $sumentries); ?>, value: <?PHP echo $others_sum ?>},
]
});
Morris.Donut({
element: 'top10vs_donut2',
data: [
{label: <?PHP echo '"',$lang['sttw0011'],'"'; ?>, value: <?PHP echo $top10_sum - $top10_idle_sum ?>},
{label: <?PHP echo '"'.sprintf($lang['sttw0012'].'"', $sumentries); ?>, value: <?PHP echo $others_sum - $others_idle_sum ?>},
],
colors: [
'#5cb85c',
'#80ce80'
]
});
Morris.Donut({
element: 'top10vs_donut3',
data: [
{label: <?PHP echo '"',$lang['sttw0011'],'"'; ?>, value: <?PHP echo $top10_idle_sum ?>},
{label: <?PHP echo '"'.sprintf($lang['sttw0012'].'"', $sumentries); ?>, value: <?PHP echo $others_idle_sum ?>},
],
colors: [
'#f0ad4e',
'#ffc675'
]
});
const donut_time_color_1 = window.getComputedStyle(document.getElementById('donut_time_color_1')).getPropertyValue('color');
const donut_time_color_2 = window.getComputedStyle(document.getElementById('donut_time_color_2')).getPropertyValue('color');
const donut_version_color_1 = window.getComputedStyle(document.getElementById('donut_version_color_1')).getPropertyValue('color');
const donut_version_color_2 = window.getComputedStyle(document.getElementById('donut_version_color_2')).getPropertyValue('color');
const donut_nation_color_1 = window.getComputedStyle(document.getElementById('donut_nation_color_1')).getPropertyValue('color');
const donut_nation_color_2 = window.getComputedStyle(document.getElementById('donut_nation_color_2')).getPropertyValue('color');
Morris.Donut({
element: 'top10vs_donut1',
data: [
{label: <?PHP echo '"',$lang['sttw0011'],'"'; ?>, value: <?PHP echo $top10_sum ?>},
{label: <?PHP echo '"'.sprintf($lang['sttw0012'].'"', $sumentries); ?>, value: <?PHP echo $others_sum ?>},
],
colors: [donut_time_color_1, donut_time_color_2]
});
Morris.Donut({
element: 'top10vs_donut2',
data: [
{label: <?PHP echo '"',$lang['sttw0011'],'"'; ?>, value: <?PHP echo $top10_sum - $top10_idle_sum ?>},
{label: <?PHP echo '"'.sprintf($lang['sttw0012'].'"', $sumentries); ?>, value: <?PHP echo $others_sum - $others_idle_sum ?>},
],
colors: [donut_version_color_1, donut_version_color_2]
});
Morris.Donut({
element: 'top10vs_donut3',
data: [
{label: <?PHP echo '"',$lang['sttw0011'],'"'; ?>, value: <?PHP echo $top10_idle_sum ?>},
{label: <?PHP echo '"'.sprintf($lang['sttw0012'].'"', $sumentries); ?>, value: <?PHP echo $others_idle_sum ?>},
],
colors: [donut_nation_color_1, donut_nation_color_2]
});
</script>
</body>
</html>

View File

@@ -31,7 +31,7 @@ try {
$_SESSION[$rspathhex.'tsconnections'] = 0;
}
if ($clientinfo[0]['firstcon'] == 0) {
$_SESSION[$rspathhex.'tscreated'] = "unkown";
$_SESSION[$rspathhex.'tscreated'] = $lang['unknown'];
} else {
$_SESSION[$rspathhex.'tscreated'] = date('d-m-Y', $clientinfo[0]['firstcon']);
}
@@ -118,7 +118,7 @@ try {
}
}
?>
<div id="page-wrapper">
<div id="page-wrapper" class="stats_verify">
<?PHP if(isset($err_msg)) error_handling($err_msg, $err_lvl);
if(isset($_SESSION[$rspathhex.'multiple']) && count($_SESSION[$rspathhex.'multiple']) > 1 || ((isset($_SESSION[$rspathhex.'connected']) && $_SESSION[$rspathhex.'connected'] == 0 || !isset($_SESSION[$rspathhex.'connected'])) && $cfg['teamspeak_verification_channel_id'] != NULL && $cfg['teamspeak_verification_channel_id'] != 0)) {
?>

View File

@@ -4,7 +4,7 @@ require_once('_preload.php');
try {
$sql_res = $mysqlcon->query("SELECT * FROM `$dbname`.`stats_versions` ORDER BY `count` DESC")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC);
?>
<div id="page-wrapper">
<div id="page-wrapper" class="stats_versions">
<?PHP if(isset($err_msg)) error_handling($err_msg, $err_lvl); ?>
<div class="container-fluid">
<div class="row">
@@ -17,7 +17,7 @@ try {
<div class="row">
<div class="col-lg-12">
<div class="table-responsive">
<table class="table table-bordered table-hover">
<table class="table table-bordered table-hover" id="versions">
<tbody>
<tr>
<th>#</th>