release 1.1.2

This commit is contained in:
root
2016-10-30 21:38:27 +01:00
parent ab76128c42
commit 5620db46eb
39 changed files with 1687 additions and 415 deletions

View File

@@ -2,4 +2,4 @@
* Start Bootstrap - SB Admin Bootstrap Admin Template (http://startbootstrap.com)
* Code licensed under the Apache License v2.0.
* For details, see http://www.apache.org/licenses/LICENSE-2.0.
*/body{margin-top:100px;background-color:#222}#wrapper{padding-left:0}#page-wrapper{width:100%;padding:0;background-color:#fff}.huge{line-height:normal;font-size:40px}@media(min-width:768px){body{margin-top:50px}#wrapper{padding-left:225px}#page-wrapper{padding:10px}}.top-nav{padding:0 15px}.top-nav>li{display:inline-block;float:left}.top-nav>li>a{padding-top:15px;padding-bottom:15px;line-height:20px;color:#999}.top-nav>.open>a,.top-nav>.open>a:focus,.top-nav>.open>a:hover,.top-nav>li>a:focus,.top-nav>li>a:hover{color:#fff;background-color:#000}.top-nav>.open>.dropdown-menu{float:left;position:absolute;margin-top:0;border:1px solid rgba(0,0,0,.15);border-top-left-radius:0;border-top-right-radius:0;background-color:#fff;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.top-nav>.open>.dropdown-menu>li>a{white-space:normal}ul.message-dropdown{padding:0;max-height:250px;overflow-x:hidden;overflow-y:auto}li.message-preview{width:275px;border-bottom:1px solid rgba(0,0,0,.15)}li.message-preview>a{padding-top:15px;padding-bottom:15px}li.message-footer{margin:5px 0}ul.alert-dropdown{width:200px}@media(min-width:768px){.side-nav,.side-nav>li>a{width:225px}.side-nav{position:fixed;top:51px;left:225px;margin-left:-225px;border:none;border-radius:0;overflow-y:auto;background-color:#222;bottom:0;overflow-x:hidden;padding-bottom:40px}.side-nav li a:focus,.side-nav li a:hover{outline:0;background-color:#000!important}}.side-nav>li>ul{padding:0}.side-nav>li>ul>li>a{display:block;padding:10px 15px 10px 38px;text-decoration:none;color:#999}.side-nav>li>ul>li>a:hover{color:#fff}.flot-chart{display:block;height:400px}.flot-chart-content{width:100%;height:100%}.panel-green{border-color:#5cb85c}.panel-green>.panel-heading{border-color:#5cb85c;color:#fff;background-color:#5cb85c}.panel-green>a{color:#5cb85c}.panel-green>a:hover{color:#3d8b3d}.panel-red{border-color:#d9534f}.panel-red>.panel-heading{border-color:#d9534f;color:#fff;background-color:#d9534f}.panel-red>a{color:#d9534f}.panel-red>a:hover{color:#b52b27}.panel-yellow{border-color:#f0ad4e}.panel-yellow>.panel-heading{border-color:#f0ad4e;color:#fff;background-color:#f0ad4e}.panel-yellow>a{color:#f0ad4e}.panel-yellow>a:hover{color:#df8a13}.pull-bottom{display:inline-block;vertical-align:bottom;float:none}.fixed {top:50px;width:calc(100% - 275px);position:fixed;display:none;color:#000;background-color:#fff!important;}
*/body{margin-top:100px;background-color:#222}#wrapper{padding-left:0}#page-wrapper{width:100%;padding:0;background-color:#fff}.huge{line-height:normal;font-size:40px}@media(min-width:768px){body{margin-top:50px}#wrapper{padding-left:225px}#page-wrapper{padding:10px}}.top-nav{padding:0 15px}.top-nav>li{display:inline-block;float:left}.top-nav>li>a{padding-top:15px;padding-bottom:15px;line-height:20px;color:#999}.top-nav>.open>a,.top-nav>.open>a:focus,.top-nav>.open>a:hover,.top-nav>li>a:focus,.top-nav>li>a:hover{color:#fff;background-color:#000}.top-nav>.open>.dropdown-menu{float:left;position:absolute;margin-top:0;border:1px solid rgba(0,0,0,.15);border-top-left-radius:0;border-top-right-radius:0;background-color:#fff;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.top-nav>.open>.dropdown-menu>li>a{white-space:normal}ul.message-dropdown{padding:0;max-height:250px;overflow-x:hidden;overflow-y:auto}li.message-preview{width:275px;border-bottom:1px solid rgba(0,0,0,.15)}li.message-preview>a{padding-top:15px;padding-bottom:15px}li.message-footer{margin:5px 0}ul.alert-dropdown{width:200px}@media(min-width:768px){.side-nav,.side-nav>li>a{width:225px}.side-nav{position:fixed;top:51px;left:225px;margin-left:-225px;border:none;border-radius:0;overflow-y:auto;background-color:#222;bottom:0;overflow-x:hidden;padding-bottom:40px}.side-nav li a:focus,.side-nav li a:hover{outline:0;background-color:#000!important}}.side-nav>li>ul{padding:0}.side-nav>li>ul>li>a{display:block;padding:10px 15px 10px 38px;text-decoration:none;color:#999}.side-nav>li>ul>li>a:hover{color:#fff}.flot-chart{display:block;height:400px}.flot-chart-content{width:100%;height:100%}.panel-green{border-color:#5cb85c}.panel-green>.panel-heading{border-color:#5cb85c;color:#fff;background-color:#5cb85c}.panel-green>a{color:#5cb85c}.panel-green>a:hover{color:#3d8b3d}.panel-red{border-color:#d9534f}.panel-red>.panel-heading{border-color:#d9534f;color:#fff;background-color:#d9534f}.panel-red>a{color:#d9534f}.panel-red>a:hover{color:#b52b27}.panel-yellow{border-color:#f0ad4e}.panel-yellow>.panel-heading{border-color:#f0ad4e;color:#fff;background-color:#f0ad4e}.panel-yellow>a{color:#f0ad4e}.panel-yellow>a:hover{color:#df8a13}.pull-bottom{display:inline-block;vertical-align:bottom;float:none}

View File

@@ -1 +1 @@
.required-field-block{position:relative}.required-field-block .required-icon{display:inline-block;vertical-align:middle;margin:-0.25em .25em 0;background-color:#ccc;border-color:#ccc;padding:0;color:rgba(0,0,0,0.65);text-transform:uppercase;font-weight:normal;border-radius:.325em;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:background .1s linear;-moz-transition:background .1s linear;transition:background .1s linear;font-size:75%}.required-field-block .required-icon{background-color:transparent;position:absolute;top:0;right:0;z-index:10;margin:0;width:20px;height:20px;padding:0;text-align:center;-webkit-transition:color .2s ease;-moz-transition:color .2s ease;transition:color .2s ease}.required-field-block .required-icon:after{position:absolute;content:"";right:16px;top:1px;z-index:-1;width:0;height:0;border-top:0 solid transparent;border-right:20px solid transparent;border-bottom:20px solid transparent;border-left:0 solid transparent;border-right-color:inherit;-webkit-transition:border-color .2s ease;-moz-transition:border-color .2s ease;transition:border-color .2s ease}.required-field-block .required-icon .text{color:#FFF;font-size:25px;margin:-5px 0 0 -22px}.required-field-block{position:relative}.required-field-block-spin .required-icon{display:inline-block;vertical-align:middle;margin:0 21px 0 0;background-color:#ccc;border-color:#ccc;padding:0;color:rgba(0,0,0,0.65);text-transform:uppercase;font-weight:normal;border-radius:.325em;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:background .1s linear;-moz-transition:background .1s linear;transition:background .1s linear;font-size:75%}.required-field-block-spin .required-icon{background-color:transparent;position:absolute;top:0;right:0;z-index:10;margin:0 21px 0 0;width:20px;height:20px;padding:0;text-align:center;-webkit-transition:color .2s ease;-moz-transition:color .2s ease;transition:color .2s ease}.required-field-block-spin .required-icon:after{position:absolute;content:"";right:16px;top:1px;z-index:-1;width:0;height:0;border-top:0 solid transparent;border-right:20px solid transparent;border-bottom:20px solid transparent;border-left:0 solid transparent;border-right-color:inherit;-webkit-transition:border-color .2s ease;-moz-transition:border-color .2s ease;transition:border-color .2s ease}.required-field-block-spin .required-icon .text{color:#FFF;font-size:25px;margin:-5px 0 0 -22px}.divider{height:1px;width:100%;display:block;margin:5px 0;overflow:hidden;background-color:#111111}.help-hover{display:none}.form-group:hover .help-hover{display:block;cursor:pointer;margin: -19px -17px 5px 0}
.required-field-block{position:relative}.required-field-block .required-icon{display:inline-block;vertical-align:middle;margin:-0.25em .25em 0;background-color:#ccc;border-color:#ccc;padding:0;color:rgba(0,0,0,0.65);text-transform:uppercase;font-weight:normal;border-radius:.325em;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:background .1s linear;-moz-transition:background .1s linear;transition:background .1s linear;font-size:75%}.required-field-block .required-icon{background-color:transparent;position:absolute;top:0;right:0;z-index:10;margin:0;width:20px;height:20px;padding:0;text-align:center;-webkit-transition:color .2s ease;-moz-transition:color .2s ease;transition:color .2s ease}.required-field-block .required-icon:after{position:absolute;content:"";right:16px;top:1px;z-index:-1;width:0;height:0;border-top:0 solid transparent;border-right:20px solid transparent;border-bottom:20px solid transparent;border-left:0 solid transparent;border-right-color:inherit;-webkit-transition:border-color .2s ease;-moz-transition:border-color .2s ease;transition:border-color .2s ease}.required-field-block .required-icon .text{color:#FFF;font-size:25px;margin:-5px 0 0 -22px}.required-field-block{position:relative}.required-field-block-spin .required-icon{display:inline-block;vertical-align:middle;margin:0 21px 0 0;background-color:#ccc;border-color:#ccc;padding:0;color:rgba(0,0,0,0.65);text-transform:uppercase;font-weight:normal;border-radius:.325em;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:background .1s linear;-moz-transition:background .1s linear;transition:background .1s linear;font-size:75%}.required-field-block-spin .required-icon{background-color:transparent;position:absolute;top:0;right:0;z-index:10;margin:0 21px 0 0;width:20px;height:20px;padding:0;text-align:center;-webkit-transition:color .2s ease;-moz-transition:color .2s ease;transition:color .2s ease}.required-field-block-spin .required-icon:after{position:absolute;content:"";right:16px;top:1px;z-index:-1;width:0;height:0;border-top:0 solid transparent;border-right:20px solid transparent;border-bottom:20px solid transparent;border-left:0 solid transparent;border-right-color:inherit;-webkit-transition:border-color .2s ease;-moz-transition:border-color .2s ease;transition:border-color .2s ease}.required-field-block-spin .required-icon .text{color:#FFF;font-size:25px;margin:-5px 0 0 -22px}.divider{height:1px;width:100%;display:block;margin:5px 0;overflow:hidden;background-color:#111111}.help-hover{display:none}.form-group:hover .help-hover{display:block;cursor:pointer;margin: -19px -17px 5px 0}.fixed{top:50px;width:calc(100% - 275px);position:fixed;display:none;color:#000;background-color:#fff!important;}

View File

@@ -124,7 +124,7 @@ $db[\'dbname\']="'.$dbname.'";
$count++;
}
if($mysqlcon->exec("CREATE TABLE $dbname.user (uuid varchar(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY,cldbid bigint(10) NOT NULL default '0',count bigint(11) NOT NULL default '0',ip VARBINARY(16) DEFAULT NULL,name text CHARACTER SET utf8 COLLATE utf8_unicode_ci,lastseen bigint(11) NOT NULL default '0',grpid bigint(10) NOT NULL default '0',nextup bigint(11) NOT NULL default '0',idle bigint(11) NOT NULL default '0',cldgroup text CHARACTER SET utf8 COLLATE utf8_unicode_ci,online int(1) NOT NULL default '0',boosttime bigint(11) NOT NULL default '0', rank bigint(11) NOT NULL default '0', platform text default NULL, nation text default NULL, version text default NULL, firstcon bigint(11) NOT NULL default '0', except int(1) NOT NULL default '0')") === false) {
if($mysqlcon->exec("CREATE TABLE $dbname.user (uuid varchar(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY,cldbid bigint(10) NOT NULL default '0',count bigint(11) NOT NULL default '0',ip VARBINARY(16) DEFAULT NULL,name text CHARACTER SET utf8 COLLATE utf8_unicode_ci,lastseen bigint(11) NOT NULL default '0',grpid bigint(10) NOT NULL default '0',nextup bigint(11) NOT NULL default '0',idle bigint(11) NOT NULL default '0',cldgroup text CHARACTER SET utf8 COLLATE utf8_unicode_ci,online int(1) NOT NULL default '0',boosttime bigint(11) NOT NULL default '0', rank bigint(11) NOT NULL default '0', platform text default NULL, nation text default NULL, version text default NULL, firstcon bigint(11) NOT NULL default '0', except int(1) NOT NULL default '0', grpsince bigint(11) NOT NULL default '0')") === false) {
$err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'<br>'; $err_lvl = 2;
$count++;
}
@@ -134,7 +134,7 @@ $db[\'dbname\']="'.$dbname.'";
$count++;
}
if($mysqlcon->exec("CREATE TABLE $dbname.config (webuser text CHARACTER SET utf8 COLLATE utf8_unicode_ci,webpass text CHARACTER SET utf8 COLLATE utf8_unicode_ci,tshost text CHARACTER SET utf8 COLLATE utf8_unicode_ci,tsquery int(5) NOT NULL default '0',tsvoice int(5) NOT NULL default '0',tsuser text CHARACTER SET utf8 COLLATE utf8_unicode_ci,tspass text CHARACTER SET utf8 COLLATE utf8_unicode_ci,language text CHARACTER SET utf8 COLLATE utf8_unicode_ci,queryname text CHARACTER SET utf8 COLLATE utf8_unicode_ci,queryname2 text CHARACTER SET utf8 COLLATE utf8_unicode_ci,grouptime text CHARACTER SET utf8 COLLATE utf8_unicode_ci,resetbydbchange int(1) NOT NULL default '0',msgtouser int(1) NOT NULL default '0',upcheck int(1) NOT NULL default '0',uniqueid text CHARACTER SET utf8 COLLATE utf8_unicode_ci,updateinfotime int(8) NOT NULL default '0',currvers text CHARACTER SET utf8 COLLATE utf8_unicode_ci,substridle int(1) NOT NULL default '0',exceptuuid text CHARACTER SET utf8 COLLATE utf8_unicode_ci,exceptgroup text CHARACTER SET utf8 COLLATE utf8_unicode_ci,dateformat text CHARACTER SET utf8 COLLATE utf8_unicode_ci,showexcld int(1) NOT NULL default '0',showcolcld int(1) NOT NULL default '0',showcoluuid int(1) NOT NULL default '0',showcoldbid int(1) NOT NULL default '0',showcolot int(1) NOT NULL default '0',showcolit int(1) NOT NULL default '0',showcolat int(1) NOT NULL default '0',showcolnx int(1) NOT NULL default '0',showcolsg int(1) NOT NULL default '0',showcolrg int(1) NOT NULL default '0',showcolls int(1) NOT NULL default '0',slowmode bigint(11) NOT NULL default '0',cleanclients int(1) NOT NULL default '0',cleanperiod bigint(11) NOT NULL default '0',showhighest int(1) NOT NULL default '0',boost text default NULL,showcolas int(1) NOT NULL default '0',defchid bigint(11) NOT NULL default '0',timezone varchar(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci,logpath varchar(200) CHARACTER SET utf8 COLLATE utf8_unicode_ci, advancemode int(1) NOT NULL default '0', count_access int(2) NOT NULL default '0', last_access bigint(11) NOT NULL default '0', ignoreidle bigint(11) NOT NULL default '0', exceptcid text CHARACTER SET utf8 COLLATE utf8_unicode_ci, rankupmsg text CHARACTER SET utf8 COLLATE utf8_unicode_ci, boost_mode int(1) NOT NULL default '0', newversion varchar(25) CHARACTER SET utf8 COLLATE utf8_unicode_ci, servernews text CHARACTER SET utf8 COLLATE utf8_unicode_ci)") === false) {
if($mysqlcon->exec("CREATE TABLE $dbname.config (webuser text CHARACTER SET utf8 COLLATE utf8_unicode_ci,webpass text CHARACTER SET utf8 COLLATE utf8_unicode_ci,tshost text CHARACTER SET utf8 COLLATE utf8_unicode_ci,tsquery int(5) NOT NULL default '0',tsvoice int(5) NOT NULL default '0',tsuser text CHARACTER SET utf8 COLLATE utf8_unicode_ci,tspass text CHARACTER SET utf8 COLLATE utf8_unicode_ci,language text CHARACTER SET utf8 COLLATE utf8_unicode_ci,queryname text CHARACTER SET utf8 COLLATE utf8_unicode_ci,queryname2 text CHARACTER SET utf8 COLLATE utf8_unicode_ci,grouptime text CHARACTER SET utf8 COLLATE utf8_unicode_ci,resetbydbchange int(1) NOT NULL default '0',msgtouser int(1) NOT NULL default '0',upcheck int(1) NOT NULL default '0',uniqueid text CHARACTER SET utf8 COLLATE utf8_unicode_ci,updateinfotime int(8) NOT NULL default '0',currvers text CHARACTER SET utf8 COLLATE utf8_unicode_ci,substridle int(1) NOT NULL default '0',exceptuuid text CHARACTER SET utf8 COLLATE utf8_unicode_ci,exceptgroup text CHARACTER SET utf8 COLLATE utf8_unicode_ci,dateformat text CHARACTER SET utf8 COLLATE utf8_unicode_ci,showexcld int(1) NOT NULL default '0',showcolcld int(1) NOT NULL default '0',showcoluuid int(1) NOT NULL default '0',showcoldbid int(1) NOT NULL default '0',showcolot int(1) NOT NULL default '0',showcolit int(1) NOT NULL default '0',showcolat int(1) NOT NULL default '0',showcolnx int(1) NOT NULL default '0',showcolsg int(1) NOT NULL default '0',showcolrg int(1) NOT NULL default '0',showcolls int(1) NOT NULL default '0',slowmode bigint(11) NOT NULL default '0',cleanclients int(1) NOT NULL default '0',cleanperiod bigint(11) NOT NULL default '0',showhighest int(1) NOT NULL default '0',boost text default NULL,showcolas int(1) NOT NULL default '0',defchid bigint(11) NOT NULL default '0',timezone varchar(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci,logpath varchar(200) CHARACTER SET utf8 COLLATE utf8_unicode_ci, advancemode int(1) NOT NULL default '0', count_access int(2) NOT NULL default '0', last_access bigint(11) NOT NULL default '0', ignoreidle bigint(11) NOT NULL default '0', exceptcid text CHARACTER SET utf8 COLLATE utf8_unicode_ci, rankupmsg text CHARACTER SET utf8 COLLATE utf8_unicode_ci, boost_mode int(1) NOT NULL default '0', newversion varchar(25) CHARACTER SET utf8 COLLATE utf8_unicode_ci, servernews text CHARACTER SET utf8 COLLATE utf8_unicode_ci, adminuuid varchar(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci, nextupinfo int(1) NOT NULL default '0', nextupinfomsg1 text CHARACTER SET utf8 COLLATE utf8_unicode_ci, nextupinfomsg2 text CHARACTER SET utf8 COLLATE utf8_unicode_ci, nextupinfomsg3 text CHARACTER SET utf8 COLLATE utf8_unicode_ci, shownav int(1) NOT NULL default '0', showgrpsince int(1) NOT NULL default '0')") === false) {
$err_msg .= $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true).'<br>'; $err_lvl = 2;
$count++;
}
@@ -248,13 +248,19 @@ if(isset($_POST['confweb'])) {
$err_msg = $lang['dbconerr'].$e->getMessage(); $err_lvl = 1;
}
}
if($err_lvl != 1) {
if($mysqlcon->exec("INSERT INTO $dbname.config (webuser,webpass,tshost,tsquery,tsvoice,tsuser,language,queryname,queryname2,grouptime,resetbydbchange,msgtouser,upcheck,uniqueid,updateinfotime,currvers,exceptuuid,exceptgroup,dateformat,showexcld,showcolcld,showcoluuid,showcoldbid,showcolot,showcolit,showcolat,showcolnx,showcolsg,showcolrg,showcolls,slowmode,cleanclients,cleanperiod,showhighest,showcolas,defchid,timezone,logpath,ignoreidle,rankupmsg,newversion,servernews) VALUES ('$user','$pass','localhost','10011','9987','serveradmin','en','Ranksystem','RankSystem','31536000=>47,31536060=>50','1','1','1','xrTKhT/HDl4ea0WoFDQH2zOpmKg=,9odBYAU7z2E2feUz965sL0/Myom=','7200','1.1.1','xrTKhT/HDl4ea0WoFDQH2zOpmKg=','2,6','%a days, %h hours, %i mins, %s secs','1','1','1','1','1','1','1','1','1','1','1','0','1','86400','1','1','0','Europe/Berlin','$logpath','600','\\nHey, you got a rank up, cause you reached an activity of %s days, %s hours, %s minutes and %s seconds.','1.1.1','<strong>Message</strong><br>This is an example Message.<br>Change this Message inside the webinterface.')") === false) {
if(!isset($err_lvl) || $err_lvl != 1) {
$nextupinfomsg1 = $mysqlcon->quote("Your next rank up will be in %1\$s days, %2\$s hours, %3\$s minutes and %4\$s seconds. The next servergroup you will reach is [B]%5\$s[/B].");
$nextupinfomsg2 = $mysqlcon->quote("You have already reached the highest rank.");
$nextupinfomsg3 = $mysqlcon->quote("You are excepted from the Ranksystem. If you wish to rank contact an admin on the TS3 server.");
$servernews = $mysqlcon->quote("<strong>Message</strong><br>This is an example Message.<br>Change this Message inside the webinterface.");
$rankupmsg = $mysqlcon->quote('Hey, you reached a higher rank, since you already connected for %1$s days, %2$s hours and %3$s minutes to our TS3 server.[B]Keep it up![/B] ;-) ');
if($mysqlcon->exec("INSERT INTO $dbname.config (webuser,webpass,tshost,tsquery,tsvoice,tsuser,language,queryname,queryname2,grouptime,resetbydbchange,msgtouser,upcheck,uniqueid,updateinfotime,currvers,exceptuuid,exceptgroup,dateformat,showexcld,showcolcld,showcoluuid,showcoldbid,showcolot,showcolit,showcolat,showcolnx,showcolsg,showcolrg,showcolls,slowmode,cleanclients,cleanperiod,showhighest,showcolas,defchid,timezone,logpath,ignoreidle,rankupmsg,newversion,servernews,nextupinfo,nextupinfomsg1,nextupinfomsg2,nextupinfomsg3,shownav,showgrpsince) VALUES ('$user','$pass','localhost','10011','9987','serveradmin','en','Ranksystem','RankSystem','31536000=>47,31536060=>50','1','1','1','xrTKhT/HDl4ea0WoFDQH2zOpmKg=,9odBYAU7z2E2feUz965sL0/Myom=','7200','1.1.2','xrTKhT/HDl4ea0WoFDQH2zOpmKg=','2,6','%a days, %h hours, %i mins, %s secs','1','1','1','1','1','1','1','1','1','1','1','0','1','86400','1','1','0','Europe/Berlin','$logpath','600',$rankupmsg,'1.1.2',$servernews,'1',$nextupinfomsg1,$nextupinfomsg2,$nextupinfomsg3,'1','1')") === false) {
$err_msg = $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true); $err_lvl = 2;
} else {
$err_msg .= $lang['isntwiusr'].'<br><br>';
$err_msg = $lang['isntwiusr'].'<br><br>';
$err_msg .= sprintf($lang['isntwiconf'],"<a href=\"webinterface\\\">/webinterface/</a>").'<br><br>';
if(!unlink('./install.php')) {
$err_msg .= sprintf($lang['isntwidel'],"<a href=\"webinterface\\\">/webinterface/</a>");
$err_msg .= $lang['isntwidel'];
}
$install_finished = 1; $err_lvl = NULL;
}
@@ -266,7 +272,7 @@ if (!isset($_POST['install']) && !isset($_POST['confweb'])) {
unset($err_lvl);
$err_msg = '';
if(!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != "on") {
$host = "<a href=\"https://".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\')."\">";
$host = "<a href=\"https://".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF'])."/install.php", '/\\')."\">";
$err_msg = sprintf($lang['winav10'], $host,'</a>!<br>', '<br>'); $err_lvl = 2;
}
if(!is_writeable('./other/dbconfig.php')) {
@@ -290,12 +296,15 @@ if (!isset($_POST['install']) && !isset($_POST['confweb'])) {
if(version_compare(phpversion(), '5.5.0', '<')) {
$err_msg .= "<br>".sprintf($lang['insterr4'],phpversion()); $err_lvl = 3;
}
if (!function_exists('simplexml_load_file')) {
$err_msg .= "<br>".$lang['insterr5']; $err_lvl = 3;
}
if(!isset($err_lvl)) {
unset($err_msg);
}
}
function error_handling($msg,$type = NULL) {
function error_handling($lang,$msg,$type = NULL) {
switch ($type) {
case NULL: echo '<div class="alert alert-success alert-dismissible">'; break;
case 1: echo '<div class="alert alert-info alert-dismissible">'; break;
@@ -319,7 +328,7 @@ if ((!isset($_POST['install']) && !isset($_POST['confweb'])) || $err_lvl == 1 ||
}
?>
<div id="page-wrapper">
<?PHP if(isset($err_msg)) error_handling($err_msg, $err_lvl); ?>
<?PHP if(isset($err_msg)) error_handling($lang, $err_msg, $err_lvl); ?>
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
@@ -345,7 +354,7 @@ if ((!isset($_POST['install']) && !isset($_POST['confweb'])) || $err_lvl == 1 ||
<option data-subtext="Firebird/Interbase 6" value="firebird">firebird</option>
<option data-subtext="IBM DB2" value="ibm">ibm</option>
<option data-subtext="IBM Informix Dynamic Server" value="informix">informix</option>
<option data-subtext="MySQL 3.x/4.x/5.x [recommend]" value="mysql" selected>mysql (and mariadb)</option>
<option data-subtext="MySQL 3.x/4.x/5.x [recommend]" value="mysql" selected>mysql (also mariadb)</option>
<option data-subtext="Oracle Call Interface" value="oci">oci</option>
<option data-subtext="ODBC v3 (IBM DB2, unixODBC und win32 ODBC)" value="odbc">odbc</option>
<option data-subtext="PostgreSQL" value="pgsql">pgsql</option>
@@ -512,7 +521,7 @@ if ((!isset($_POST['install']) && !isset($_POST['confweb'])) || $err_lvl == 1 ||
} elseif(isset($install_webuser)) {
?>
<div id="page-wrapper">
<?PHP if(isset($err_msg)) error_handling($err_msg, $err_lvl); ?>
<?PHP if(isset($err_msg)) error_handling($lang, $err_msg, $err_lvl); ?>
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
@@ -561,7 +570,7 @@ if ((!isset($_POST['install']) && !isset($_POST['confweb'])) || $err_lvl == 1 ||
} elseif(isset($install_finished)) {
?>
<div id="page-wrapper">
<?PHP if(isset($err_msg)) error_handling($err_msg, $err_lvl); ?>
<?PHP if(isset($err_msg)) error_handling($lang, $err_msg, $err_lvl); ?>
<div class="container-fluid">
<div class="row">
</div>

View File

@@ -1,11 +1,8 @@
#!/usr/bin/php
<?PHP
if(isset($_SERVER['HTTP_HOST'])) exit;
if(isset($_SERVER['REMOTE_ADDR'])) exit;
set_time_limit(0);
ini_set('default_charset', 'UTF-8');
setlocale(LC_ALL, 'UTF-8');
error_reporting(0);
function enter_logfile($logpath,$timezone,$loglevel,$logtext) {
@@ -47,6 +44,10 @@ function enter_logfile($logpath,$timezone,$loglevel,$logtext) {
require_once(substr(__DIR__,0,-4).'other/config.php');
if(isset($_SERVER['HTTP_HOST']) || isset($_SERVER['REMOTE_ADDR'])) {
enter_logfile($logpath,$timezone,1,"Request to start the Ranksystem from ".$_SERVER['REMOTE_ADDR'].". It seems the request came not from the command line! Shuttin down!\n\n");
exit;
}
if(version_compare(phpversion(), '5.5.0', '<')) {
enter_logfile($logpath,$timezone,1,"Your PHP version (".phpversion().") is below 5.5.0. Update of PHP needed! Shuttin down!\n\n");
exit;
@@ -61,6 +62,7 @@ require_once(substr(__DIR__,0,-4).'jobs/calc_serverstats.php');
require_once(substr(__DIR__,0,-4).'jobs/calc_userstats.php');
require_once(substr(__DIR__,0,-4).'jobs/clean.php');
require_once(substr(__DIR__,0,-4).'jobs/check_db.php');
require_once(substr(__DIR__,0,-4).'jobs/handle_messages.php');
function check_shutdown($timezone,$logpath) {
if(!is_file(substr(__DIR__,0,-4).'logs/pid')) {
@@ -69,13 +71,25 @@ function check_shutdown($timezone,$logpath) {
}
}
function get_data($url,$currvers,$ts) {
$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_REFERER, php_uname("s")." ".$ts['host'].":".$ts['voice']);curl_setopt($ch, CURLOPT_USERAGENT, "TSN Ranksystem ".$currvers);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,false);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);curl_setopt($ch, CURLOPT_MAXREDIRS, 10);curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);$data = curl_exec($ch);curl_close($ch);return $data;
}
$currvers = check_db($mysqlcon,$lang,$dbname,$timezone,$currvers,$logpath);
enter_logfile($logpath,$timezone,5," Ranksystem Version: ".$currvers);
enter_logfile($logpath,$timezone,5,"Connect to TS3 Server (Address: \"".$ts['host']."\" Voice-Port: \"".$ts['voice']."\" Query-Port: \"".$ts['query']."\").");
try {
$ts3 = TeamSpeak3::factory("serverquery://" . $ts['user'] . ":" . $ts['pass'] . "@" . $ts['host'] . ":" . $ts['query'] . "/?server_port=" . $ts['voice'] . "&blocking=0");
$ts3 = TeamSpeak3::factory("serverquery://".$ts['user'].":".$ts['pass']."@".$ts['host'].":".$ts['query']."/?server_port=".$ts['voice']."&blocking=0");
enter_logfile($logpath,$timezone,5," Connection to TS3 Server established.");
try {
usleep($slowmode);
$ts3->notifyRegister("textprivate");
TeamSpeak3_Helper_Signal::getInstance()->subscribe("notifyTextmessage", "handle_messages");
} catch (Exception $e) {
enter_logfile($logpath,$timezone,2," Error due register notifyTextmessage ".$e->getCode().': '.$e->getMessage());
}
try {
usleep($slowmode);
@@ -128,7 +142,7 @@ try {
if($defchid != 0) {
try { usleep($slowmode); $ts3->clientMove($whoami['client_id'],$defchid); } catch (Exception $e) {}
}
calc_user($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$update,$grouptime,$boostarr,$resetbydbchange,$msgtouser,$uniqueid,$updateinfotime,$currvers,$substridle,$exceptuuid,$exceptgroup,$allclients,$logpath,$rankupmsg,$ignoreidle,$exceptcid);
calc_user($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$update,$grouptime,$boostarr,$resetbydbchange,$msgtouser,$uniqueid,$updateinfotime,$currvers,$substridle,$exceptuuid,$exceptgroup,$allclients,$logpath,$rankupmsg,$ignoreidle,$exceptcid,$ts);
check_shutdown($timezone,$logpath); usleep($slowmode);
get_avatars($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$logpath);
check_shutdown($timezone,$logpath); usleep($slowmode);
@@ -140,6 +154,7 @@ try {
check_shutdown($timezone,$logpath); usleep($slowmode);
clean($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$cleanclients,$cleanperiod,$logpath);
$looptime = microtime(true) - $starttime;
try { $ts3->getAdapter(); } catch (Exception $e) {}
}
}
catch (Exception $e) {
@@ -147,7 +162,7 @@ catch (Exception $e) {
$offline_status = array(110,257,258,1024,1026,1031,1032,1033,1034,1280,1793);
if(in_array($e->getCode(), $offline_status)) {
if($mysqlcon->exec("UPDATE $dbname.stats_server SET server_status='0'") === false) {
enter_logfile($logpath,$timezone,2,$lang['error'].print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,$lang['error'].print_r($mysqlcon->errorInfo(), true));
}
}
}

View File

@@ -11,7 +11,7 @@ function calc_serverstats($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$serv
$server_used_slots = 0;
$server_channel_amount = 0;
if(($uuids = $mysqlcon->query("SELECT uuid,count,idle,platform,nation FROM $dbname.user")) === false) {
enter_logfile($logpath,$timezone,2,"calc_serverstats 1:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_serverstats 1:".print_r($mysqlcon->errorInfo(), true));
}
$uuids = $uuids->fetchAll();
foreach($uuids as $uuid) {
@@ -33,7 +33,7 @@ function calc_serverstats($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$serv
// Event Handling each 6 hours
// Duplicate users Table in snapshot Table
if(($max_entry_usersnap = $mysqlcon->query("SELECT MAX(DISTINCT(timestamp)) AS timestamp FROM $dbname.user_snapshot")) === false) {
enter_logfile($logpath,$timezone,2,"calc_serverstats 2:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_serverstats 2:".print_r($mysqlcon->errorInfo(), true));
}
$max_entry_usersnap = $max_entry_usersnap->fetch(PDO::FETCH_ASSOC);
$diff_max_usersnap = $nowtime - $max_entry_usersnap['timestamp'];
@@ -46,14 +46,14 @@ function calc_serverstats($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$serv
$allinsertsnap = substr($allinsertsnap, 0, -1);
if ($allinsertsnap != '') {
if($mysqlcon->exec("INSERT INTO $dbname.user_snapshot (timestamp, uuid, count, idle) VALUES $allinsertsnap") === false) {
enter_logfile($logpath,$timezone,2,"calc_serverstats 3:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_serverstats 3:".print_r($mysqlcon->errorInfo(), true));
}
}
}
//Delete old Entries in user_snapshot
$deletiontime = $nowtime - 2678400;
if($mysqlcon->exec("DELETE FROM $dbname.user_snapshot WHERE timestamp=$deletiontime") === false) {
enter_logfile($logpath,$timezone,2,"calc_serverstats 4:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_serverstats 4:".print_r($mysqlcon->errorInfo(), true));
}
}
@@ -69,13 +69,13 @@ function calc_serverstats($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$serv
// Calc Values for server stats
if(($entry_snapshot_count = $mysqlcon->query("SELECT count(DISTINCT(timestamp)) AS timestamp FROM $dbname.user_snapshot")) === false) {
enter_logfile($logpath,$timezone,2,"calc_serverstats 5:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_serverstats 5:".print_r($mysqlcon->errorInfo(), true));
}
$entry_snapshot_count = $entry_snapshot_count->fetch(PDO::FETCH_ASSOC);
if ($entry_snapshot_count['timestamp'] > 27) {
// Calc total_online_week
if(($snapshot_count_week = $mysqlcon->query("SELECT (SELECT SUM(count) FROM $dbname.user_snapshot WHERE timestamp=(SELECT MAX(s2.timestamp) AS value1 FROM (SELECT DISTINCT(timestamp) FROM $dbname.user_snapshot ORDER BY timestamp DESC LIMIT 28) AS s2, $dbname.user_snapshot AS s1 WHERE s1.timestamp=s2.timestamp)) - (SELECT SUM(count) FROM $dbname.user_snapshot WHERE timestamp=(SELECT MIN(s2.timestamp) AS value2 FROM (SELECT DISTINCT(timestamp) FROM $dbname.user_snapshot ORDER BY timestamp DESC LIMIT 28) AS s2, $dbname.user_snapshot AS s1 WHERE s1.timestamp=s2.timestamp) AND uuid IN (SELECT uuid FROM $dbname.user)) AS count")) === false) {
enter_logfile($logpath,$timezone,2,"calc_serverstats 6:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_serverstats 6:".print_r($mysqlcon->errorInfo(), true));
}
$snapshot_count_week = $snapshot_count_week->fetch(PDO::FETCH_ASSOC);
$total_online_week = $snapshot_count_week['count'];
@@ -85,7 +85,7 @@ function calc_serverstats($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$serv
if ($entry_snapshot_count['timestamp'] > 119) {
// Calc total_online_month
if(($snapshot_count_month = $mysqlcon->query("SELECT (SELECT SUM(count) FROM $dbname.user_snapshot WHERE timestamp=(SELECT MAX(s2.timestamp) AS value1 FROM (SELECT DISTINCT(timestamp) FROM $dbname.user_snapshot ORDER BY timestamp DESC LIMIT 120) AS s2, $dbname.user_snapshot AS s1 WHERE s1.timestamp=s2.timestamp)) - (SELECT SUM(count) FROM $dbname.user_snapshot WHERE timestamp=(SELECT MIN(s2.timestamp) AS value2 FROM (SELECT DISTINCT(timestamp) FROM $dbname.user_snapshot ORDER BY timestamp DESC LIMIT 120) AS s2, $dbname.user_snapshot AS s1 WHERE s1.timestamp=s2.timestamp) AND uuid IN (SELECT uuid FROM $dbname.user)) AS count")) === false) {
enter_logfile($logpath,$timezone,2,"calc_serverstats 7:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_serverstats 7:".print_r($mysqlcon->errorInfo(), true));
}
$snapshot_count_month = $snapshot_count_month->fetch(PDO::FETCH_ASSOC);
$total_online_month = $snapshot_count_month['count'];
@@ -183,7 +183,7 @@ function calc_serverstats($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$serv
$version_name_5 = $version['version'];
}
}
$version_other = $version_other[0]['count'] - $version_1 + $version_2 + $version_3 + $version_4 + $version_5;
$version_other = $version_other[0]['count'] - $version_1 - $version_2 - $version_3 - $version_4 - $version_5;
$total_user = count($sqlhis);
$server_used_slots = $serverinfo['virtualserver_clientsonline'] - $serverinfo['virtualserver_queryclientsonline'];
@@ -203,26 +203,26 @@ function calc_serverstats($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$serv
$server_version = $serverinfo['virtualserver_version'];
if($mysqlcon->exec("UPDATE $dbname.stats_server SET total_user='$total_user', total_online_time='$total_online_time', total_online_month='$total_online_month', total_online_week='$total_online_week', total_active_time='$total_active_time', total_inactive_time='$total_inactive_time', country_nation_name_1='$country_nation_name_1', country_nation_name_2='$country_nation_name_2', country_nation_name_3='$country_nation_name_3', country_nation_name_4='$country_nation_name_4', country_nation_name_5='$country_nation_name_5', country_nation_1='$country_nation_1', country_nation_2='$country_nation_2', country_nation_3='$country_nation_3', country_nation_4='$country_nation_4', country_nation_5='$country_nation_5', country_nation_other='$country_nation_other', platform_1='$platform_1', platform_2='$platform_2', platform_3='$platform_3', platform_4='$platform_4', platform_5='$platform_5', platform_other='$platform_other', version_name_1='$version_name_1', version_name_2='$version_name_2', version_name_3='$version_name_3', version_name_4='$version_name_4', version_name_5='$version_name_5', version_1='$version_1', version_2='$version_2', version_3='$version_3', version_4='$version_4', version_5='$version_5', version_other='$version_other', version_name_1='$version_name_1', server_status='$server_status', server_free_slots='$server_free_slots', server_used_slots='$server_used_slots', server_channel_amount='$server_channel_amount', server_ping='$server_ping', server_packet_loss='$server_packet_loss', server_bytes_down='$server_bytes_down', server_bytes_up='$server_bytes_up', server_uptime='$server_uptime', server_id='$server_id', server_name=$server_name, server_pass='$server_pass', server_creation_date='$server_creation_date', server_platform='$server_platform', server_weblist='$server_weblist', server_version='$server_version'") === false) {
enter_logfile($logpath,$timezone,2,"calc_serverstats 8:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_serverstats 8:".print_r($mysqlcon->errorInfo(), true));
}
// Stats for Server Usage
if(($max_entry_serverusage = $mysqlcon->query("SELECT MAX(timestamp) AS timestamp FROM $dbname.server_usage")) === false) {
enter_logfile($logpath,$timezone,2,"calc_serverstats 9:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_serverstats 9:".print_r($mysqlcon->errorInfo(), true));
$sqlerr++;
}
$max_entry_serverusage = $max_entry_serverusage->fetch(PDO::FETCH_ASSOC);
$diff_max_serverusage = $nowtime - $max_entry_serverusage['timestamp'];
if ($max_entry_serverusage['timestamp'] == 0 || $diff_max_serverusage > 898) { // every 15 mins
if($mysqlcon->exec("INSERT INTO $dbname.server_usage (timestamp, clients, channel) VALUES ($nowtime,$server_used_slots,$server_channel_amount)") === false) {
enter_logfile($logpath,$timezone,2,"calc_serverstats 10:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_serverstats 10:".print_r($mysqlcon->errorInfo(), true));
}
}
//Calc time next rankup
$upnextuptime = $nowtime - 86400;
if(($uuidsoff = $mysqlcon->query("SELECT uuid,idle,count FROM $dbname.user WHERE online<>1 AND lastseen>$upnextuptime")) === false) {
enter_logfile($logpath,$timezone,2,"calc_serverstats 11:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_serverstats 11:".print_r($mysqlcon->errorInfo(), true));
}
if ($uuidsoff->rowCount() != 0) {
$uuidsoff = $uuidsoff->fetchAll(PDO::FETCH_ASSOC);
@@ -261,21 +261,21 @@ function calc_serverstats($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$serv
}
$allupdateuuid = substr($allupdateuuid, 0, -1);
if ($mysqlcon->exec("UPDATE $dbname.user set nextup = CASE uuid $allupdatenextup END WHERE uuid IN ($allupdateuuid)") === false) {
enter_logfile($logpath,$timezone,2,"calc_serverstats 12:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_serverstats 12:".print_r($mysqlcon->errorInfo(), true));
}
}
//Calc Rank
if($mysqlcon->exec("SET @a:=0") === false) {
enter_logfile($logpath,$timezone,2,"calc_serverstats 13:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_serverstats 13:".print_r($mysqlcon->errorInfo(), true));
}
if ($substridle == 1) {
if($mysqlcon->exec("UPDATE $dbname.user u INNER JOIN (SELECT @a:=@a+1 nr,uuid FROM $dbname.user WHERE except!=1 ORDER BY (count - idle) DESC) s USING (uuid) SET u.rank=s.nr") === false) {
enter_logfile($logpath,$timezone,2,"calc_serverstats 14:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_serverstats 14:".print_r($mysqlcon->errorInfo(), true));
}
} else {
if($mysqlcon->exec("UPDATE $dbname.user u INNER JOIN (SELECT @a:=@a+1 nr,uuid FROM $dbname.user WHERE except!=1 ORDER BY count DESC) s USING (uuid) SET u.rank=s.nr") === false) {
enter_logfile($logpath,$timezone,2,"calc_serverstats 14:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_serverstats 14:".print_r($mysqlcon->errorInfo(), true));
}
}
}

View File

@@ -1,21 +1,19 @@
<?PHP
function calc_user($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$update,$grouptime,$boostarr,$resetbydbchange,$msgtouser,$uniqueid,$updateinfotime,$currvers,$substridle,$exceptuuid,$exceptgroup,$allclients,$logpath,$rankupmsg,$ignoreidle,$exceptcid) {
function calc_user($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$update,$grouptime,$boostarr,$resetbydbchange,$msgtouser,$uniqueid,$updateinfotime,$currvers,$substridle,$exceptuuid,$exceptgroup,$allclients,$logpath,$rankupmsg,$ignoreidle,$exceptcid,$ts) {
$nowtime = time();
if(($getversion = $mysqlcon->query("SELECT * FROM $dbname.job_check WHERE job_name='get_version'")) === false) {
enter_logfile($logpath,$timezone,2,"calc_user -3:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_user -3:".print_r($mysqlcon->errorInfo(), true));
} else {
$getversion = $getversion->fetchAll();
$updatetime = $nowtime - 43200;
if ($getversion[0]['timestamp'] < $updatetime) {
set_error_handler(function() { });
$newversion = file_get_contents('http://ts-n.net/ranksystem/version');
restore_error_handler();
$newversion=get_data('http://ts-n.net/ranksystem/version',$currvers,$ts);
if($mysqlcon->exec("UPDATE $dbname.job_check SET timestamp='$nowtime' WHERE job_name='get_version'") === false) {
enter_logfile($logpath,$timezone,2,"calc_user -2:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_user -2:".print_r($mysqlcon->errorInfo(), true));
}
if($mysqlcon->exec("UPDATE $dbname.config SET newversion='$newversion'") === false) {
enter_logfile($logpath,$timezone,2,"calc_user -1:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_user -1:".print_r($mysqlcon->errorInfo(), true));
}
}
}
@@ -23,12 +21,12 @@ function calc_user($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$update,$gro
if ($update == 1) {
$updatetime = $nowtime - $updateinfotime;
if(($lastupdate = $mysqlcon->query("SELECT * FROM $dbname.job_check WHERE job_name='check_update'")) === false) {
enter_logfile($logpath,$timezone,2,"calc_user 0:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_user 0:".print_r($mysqlcon->errorInfo(), true));
}
$lastupdate = $lastupdate->fetchAll();
if ($lastupdate[0]['timestamp'] < $updatetime) {
if(($getversion = $mysqlcon->query("SELECT newversion FROM $dbname.config")) === false) {
enter_logfile($logpath,$timezone,2,"calc_user 1:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_user 1:".print_r($mysqlcon->errorInfo(), true));
}
$getversion = $getversion->fetch(PDO::FETCH_ASSOC);
$newversion = $getversion['newversion'];
@@ -46,13 +44,13 @@ function calc_user($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$update,$gro
}
}
if($mysqlcon->exec("UPDATE $dbname.job_check SET timestamp=$nowtime WHERE job_name='check_update'") === false) {
enter_logfile($logpath,$timezone,2,"calc_user 3:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_user 3:".print_r($mysqlcon->errorInfo(), true));
}
}
}
if(($dbdata = $mysqlcon->query("SELECT * FROM $dbname.job_check WHERE job_name='calc_user_lastscan'")) === false) {
enter_logfile($logpath,$timezone,2,"calc_user 4:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_user 4:".print_r($mysqlcon->errorInfo(), true));
exit;
}
$lastscanarr = $dbdata->fetchAll();
@@ -66,10 +64,10 @@ function calc_user($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$update,$gro
}
if ($dbdata->rowCount() != 0) {
if($mysqlcon->exec("UPDATE $dbname.job_check SET timestamp='$nowtime' WHERE job_name='calc_user_lastscan'") === false) {
enter_logfile($logpath,$timezone,2,"calc_user 5:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_user 5:".print_r($mysqlcon->errorInfo(), true));
}
if(($dbuserdata = $mysqlcon->query("SELECT uuid,cldbid,count,grpid,nextup,idle,boosttime FROM $dbname.user")) === false) {
enter_logfile($logpath,$timezone,2,"calc_user 6:".print_r($mysqlcon->errorInfo()));
if(($dbuserdata = $mysqlcon->query("SELECT uuid,cldbid,count,grpid,nextup,idle,boosttime,grpsince FROM $dbname.user")) === false) {
enter_logfile($logpath,$timezone,2,"calc_user 6:".print_r($mysqlcon->errorInfo(), true));
}
$uuids = $dbuserdata->fetchAll(PDO::FETCH_ASSOC);
foreach($uuids as $uuid) {
@@ -80,7 +78,8 @@ function calc_user($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$update,$gro
"grpid" => $uuid['grpid'],
"nextup" => $uuid['nextup'],
"idle" => $uuid['idle'],
"boosttime" => $uuid['boosttime']
"boosttime" => $uuid['boosttime'],
"grpsince" => $uuid['grpsince']
);
$uidarr[] = $uuid['uuid'];
}
@@ -130,6 +129,7 @@ function calc_user($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$update,$gro
$idle = $sqlhis[$uid]['idle'] + $clientidle;
$grpid = $sqlhis[$uid]['grpid'];
$nextup = $sqlhis[$uid]['nextup'];
$grpsince = $sqlhis[$uid]['grpsince'];
if ($sqlhis[$uid]['cldbid'] != $cldbid && $resetbydbchange == 1) {
enter_logfile($logpath,$timezone,5,sprintf($lang['changedbid'], $name, $uid, $cldbid, $sqlhis[$uid]['cldbid']));
$count = 1;
@@ -206,6 +206,7 @@ function calc_user($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$update,$gro
check_shutdown($timezone,$logpath); usleep($slowmode);
try {
$ts3->serverGroupClientAdd($groupid, $cldbid);
$grpsince = $nowtime;
enter_logfile($logpath,$timezone,5,sprintf($lang['sgrpadd'], $groupid, $name, $uid, $cldbid));
}
catch (Exception $e) {
@@ -214,7 +215,7 @@ function calc_user($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$update,$gro
}
$grpid = $groupid;
if ($msgtouser == 1) {
check_shutdown($timezone); usleep($slowmode);
check_shutdown($timezone,$logpath); usleep($slowmode);
$days = $dtF->diff($dtT)->format('%a');
$hours = $dtF->diff($dtT)->format('%h');
$mins = $dtF->diff($dtT)->format('%i');
@@ -249,7 +250,8 @@ function calc_user($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$update,$gro
"platform" => $platform,
"nation" => $nation,
"version" => $version,
"except" => $except
"except" => $except,
"grpsince" => $grpsince
);
} else {
$grpid = '0';
@@ -281,7 +283,7 @@ function calc_user($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$update,$gro
}
if($mysqlcon->exec("UPDATE $dbname.user SET online='0'") === false) {
enter_logfile($logpath,$timezone,2,"calc_user 13:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_user 13:".print_r($mysqlcon->errorInfo(), true));
}
if ($insertdata != '') {
@@ -292,7 +294,7 @@ function calc_user($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$update,$gro
$allinsertdata = substr($allinsertdata, 0, -1);
if ($allinsertdata != '') {
if($mysqlcon->exec("INSERT INTO $dbname.user (uuid, cldbid, count, ip, name, lastseen, grpid, nextup, cldgroup, platform, nation, version, firstcon, except, online) VALUES $allinsertdata") === false) {
enter_logfile($logpath,$timezone,2,"calc_user 14:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_user 14:".print_r($mysqlcon->errorInfo(), true));
}
}
}
@@ -315,6 +317,7 @@ function calc_user($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$update,$gro
$allupdatenation = '';
$allupdateversion = '';
$allupdateexcept = '';
$allupdategrpsince = '';
foreach ($updatedata as $updatearr) {
$allupdateuuid = $allupdateuuid . $updatearr['uuid'] . ",";
$allupdatecldbid = $allupdatecldbid . "WHEN " . $updatearr['uuid'] . " THEN '" . $updatearr['cldbid'] . "' ";
@@ -331,10 +334,11 @@ function calc_user($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$update,$gro
$allupdatenation = $allupdatenation . "WHEN " . $updatearr['uuid'] . " THEN '" . $updatearr['nation'] . "' ";
$allupdateversion = $allupdateversion . "WHEN " . $updatearr['uuid'] . " THEN '" . $updatearr['version'] . "' ";
$allupdateexcept = $allupdateexcept . "WHEN " . $updatearr['uuid'] . " THEN '" . $updatearr['except'] . "' ";
$allupdategrpsince = $allupdategrpsince . "WHEN " . $updatearr['uuid'] . " THEN '" . $updatearr['grpsince'] . "' ";
}
$allupdateuuid = substr($allupdateuuid, 0, -1);
if($mysqlcon->exec("UPDATE $dbname.user set cldbid = CASE uuid $allupdatecldbid END, count = CASE uuid $allupdatecount END, ip = CASE uuid $allupdateip END, name = CASE uuid $allupdatename END, lastseen = CASE uuid $allupdatelastseen END, grpid = CASE uuid $allupdategrpid END, nextup = CASE uuid $allupdatenextup END, idle = CASE uuid $allupdateidle END, cldgroup = CASE uuid $allupdatecldgroup END, boosttime = CASE uuid $allupdateboosttime END, platform = CASE uuid $allupdateplatform END, nation = CASE uuid $allupdatenation END, version = CASE uuid $allupdateversion END, except = CASE uuid $allupdateexcept END, online = 1 WHERE uuid IN ($allupdateuuid)") === false) {
enter_logfile($logpath,$timezone,2,"calc_user 15:".print_r($mysqlcon->errorInfo()));
if($mysqlcon->exec("UPDATE $dbname.user set cldbid = CASE uuid $allupdatecldbid END, count = CASE uuid $allupdatecount END, ip = CASE uuid $allupdateip END, name = CASE uuid $allupdatename END, lastseen = CASE uuid $allupdatelastseen END, grpid = CASE uuid $allupdategrpid END, nextup = CASE uuid $allupdatenextup END, idle = CASE uuid $allupdateidle END, cldgroup = CASE uuid $allupdatecldgroup END, boosttime = CASE uuid $allupdateboosttime END, platform = CASE uuid $allupdateplatform END, nation = CASE uuid $allupdatenation END, version = CASE uuid $allupdateversion END, except = CASE uuid $allupdateexcept END, grpsince = CASE uuid $allupdategrpsince END, online = 1 WHERE uuid IN ($allupdateuuid)") === false) {
enter_logfile($logpath,$timezone,2,"calc_user 15:".print_r($mysqlcon->errorInfo(), true));
}
}
}

View File

@@ -2,13 +2,13 @@
function calc_userstats($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$logpath) {
if(($count_user = $mysqlcon->query("SELECT count(*) as count FROM ((SELECT u.uuid FROM $dbname.user AS u INNER JOIN $dbname.stats_user As s On u.uuid=s.uuid) UNION (SELECT u.uuid FROM $dbname.user AS u LEFT JOIN $dbname.stats_user As s On u.uuid=s.uuid WHERE s.uuid IS NULL)) x")) === false) {
enter_logfile($logpath,$timezone,2,"calc_userstats 1:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_userstats 1:".print_r($mysqlcon->errorInfo(), true));
}
$count_user = $count_user->fetchAll(PDO::FETCH_ASSOC);
$total_user = $count_user[0]['count'];
if(($job_begin = $mysqlcon->query("SELECT timestamp FROM $dbname.job_check WHERE job_name='calc_user_limit'")) === false) {
enter_logfile($logpath,$timezone,2,"calc_userstats 2:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_userstats 2:".print_r($mysqlcon->errorInfo(), true));
}
$job_begin = $job_begin->fetchAll();
$job_begin = $job_begin[0]['timestamp'];
@@ -21,7 +21,7 @@ function calc_userstats($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$logpat
}
if(($uuids = $mysqlcon->query("(SELECT u.uuid,u.rank,u.cldbid FROM $dbname.user AS u INNER JOIN $dbname.stats_user As s On u.uuid=s.uuid) UNION (SELECT u.uuid,u.rank,u.cldbid FROM $dbname.user AS u LEFT JOIN $dbname.stats_user As s On u.uuid=s.uuid WHERE s.uuid IS NULL) ORDER BY cldbid ASC LIMIT $job_begin, 10")) === false) {
enter_logfile($logpath,$timezone,2,"calc_userstats 3:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_userstats 3:".print_r($mysqlcon->errorInfo(), true));
}
$uuids = $uuids->fetchAll();
foreach($uuids as $uuid) {
@@ -34,11 +34,11 @@ function calc_userstats($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$logpat
// Calc Client Stats
if ($mysqlcon->exec("UPDATE $dbname.stats_user AS t LEFT JOIN $dbname.user AS u ON t.uuid=u.uuid SET t.removed='1' WHERE u.uuid IS NULL") === false) {
enter_logfile($logpath,$timezone,2,"calc_userstats 4:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_userstats 4:".print_r($mysqlcon->errorInfo(), true));
}
if(($statsuserhis = $mysqlcon->query("SELECT uuid, removed FROM $dbname.stats_user")) === false) {
enter_logfile($logpath,$timezone,2,"calc_userstats 5:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_userstats 5:".print_r($mysqlcon->errorInfo(), true));
}
$statsuserhis = $statsuserhis->fetchAll();
foreach($statsuserhis as $userhis) {
@@ -49,19 +49,19 @@ function calc_userstats($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$logpat
if(isset($sqlhis)) {
//enter_logfile($logpath,$timezone,6,"Update User Stats between ".$job_begin." and ".$job_end.":");
if(($userdataweekbegin = $mysqlcon->query("SELECT uuid,count,idle FROM $dbname.user_snapshot WHERE timestamp=(SELECT MIN(s2.timestamp) AS value2 FROM (SELECT DISTINCT(timestamp) FROM $dbname.user_snapshot ORDER BY timestamp DESC LIMIT 28) AS s2, $dbname.user_snapshot AS s1 WHERE s1.timestamp=s2.timestamp)")) === false) {
enter_logfile($logpath,$timezone,2,"calc_userstats 6:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_userstats 6:".print_r($mysqlcon->errorInfo(), true));
}
$userdataweekbegin = $userdataweekbegin->fetchAll(PDO::FETCH_GROUP|PDO::FETCH_ASSOC);
if(($userdataweekend = $mysqlcon->query("SELECT uuid,count,idle FROM $dbname.user_snapshot WHERE timestamp=(SELECT MAX(s2.timestamp) AS value1 FROM (SELECT DISTINCT(timestamp) FROM $dbname.user_snapshot ORDER BY timestamp DESC LIMIT 28) AS s2, $dbname.user_snapshot AS s1 WHERE s1.timestamp=s2.timestamp)")) === false) {
enter_logfile($logpath,$timezone,2,"calc_userstats 7:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_userstats 7:".print_r($mysqlcon->errorInfo(), true));
}
$userdataweekend = $userdataweekend->fetchAll(PDO::FETCH_GROUP|PDO::FETCH_ASSOC);
if(($userdatamonthbegin = $mysqlcon->query("SELECT uuid,count,idle FROM $dbname.user_snapshot WHERE timestamp=(SELECT MIN(s2.timestamp) AS value2 FROM (SELECT DISTINCT(timestamp) FROM $dbname.user_snapshot ORDER BY timestamp DESC LIMIT 120) AS s2, $dbname.user_snapshot AS s1 WHERE s1.timestamp=s2.timestamp)")) === false) {
enter_logfile($logpath,$timezone,2,"calc_userstats 8:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_userstats 8:".print_r($mysqlcon->errorInfo(), true));
}
$userdatamonthbegin = $userdatamonthbegin->fetchAll(PDO::FETCH_GROUP|PDO::FETCH_ASSOC);
if(($userdatamonthend = $mysqlcon->query("SELECT uuid,count,idle FROM $dbname.user_snapshot WHERE timestamp=(SELECT MAX(s2.timestamp) AS value1 FROM (SELECT DISTINCT(timestamp) FROM $dbname.user_snapshot ORDER BY timestamp DESC LIMIT 120) AS s2, $dbname.user_snapshot AS s1 WHERE s1.timestamp=s2.timestamp)")) === false) {
enter_logfile($logpath,$timezone,2,"calc_userstats 9:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_userstats 9:".print_r($mysqlcon->errorInfo(), true));
}
$userdatamonthend = $userdatamonthend->fetchAll(PDO::FETCH_GROUP|PDO::FETCH_ASSOC);
@@ -119,20 +119,20 @@ function calc_userstats($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$logpat
}
if ($mysqlcon->exec("UPDATE $dbname.job_check SET timestamp=$job_end WHERE job_name='calc_user_limit'") === false) {
enter_logfile($logpath,$timezone,2,"calc_userstats 11:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_userstats 11:".print_r($mysqlcon->errorInfo(), true));
}
if ($allupdateuuid != '') {
$allupdateuuid = substr($allupdateuuid, 0, -1);
if ($mysqlcon->exec("UPDATE $dbname.stats_user set rank = CASE uuid $allupdaterank END, count_week = CASE uuid $allupdatecountw END, count_month = CASE uuid $allupdatecountm END, idle_week = CASE uuid $allupdateidlew END, idle_month = CASE uuid $allupdateidlem END, total_connections = CASE uuid $allupdatetotac END, base64hash = CASE uuid $allupdatebase64 END, client_total_up = CASE uuid $allupdatecldtup END, client_total_down = CASE uuid $allupdatecldtdo END, client_description = CASE uuid $allupdateclddes END WHERE uuid IN ($allupdateuuid)") === false) {
enter_logfile($logpath,$timezone,2,"calc_userstats 12:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_userstats 12:".print_r($mysqlcon->errorInfo(), true));
}
}
if($allinsertuserstats != '') {
$allinsertuserstats = substr($allinsertuserstats, 0, -1);
if ($mysqlcon->exec("INSERT INTO $dbname.stats_user (uuid,rank,count_week,count_month,idle_week,idle_month,total_connections,base64hash,client_total_up,client_total_down,client_description) VALUES $allinsertuserstats") === false) {
enter_logfile($logpath,$timezone,2,"calc_userstats 13:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"calc_userstats 13:".print_r($mysqlcon->errorInfo(), true));
}
}
}

View File

@@ -1,11 +1,11 @@
<?PHP
function check_db($mysqlcon,$lang,$dbname,$timezone,$currvers,$logpath) {
$newversion = '1.1.1';
$newversion = '1.1.2';
enter_logfile($logpath,$timezone,5,"Check Ranksystem database for updates.");
function set_new_version($mysqlcon,$dbname,$timezone,$newversion,$logpath) {
if($mysqlcon->exec("UPDATE $dbname.config set currvers='$newversion'") === false) {
enter_logfile($logpath,$timezone,1," An error happens due updating the Ranksystem Database:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,1," An error happens due updating the Ranksystem Database:".print_r($mysqlcon->errorInfo(), true));
enter_logfile($logpath,$timezone,1," Check the database connection properties in other/dbconfig.php and check also the database permissions.");
exit;
} else {
@@ -26,6 +26,14 @@ function check_db($mysqlcon,$lang,$dbname,$timezone,$currvers,$logpath) {
enter_logfile($logpath,$timezone,2,sprintf($lang['isntwichm'],'avatars'));
}
}
function check_config($mysqlcon,$dbname) {
if(($dbdata = $mysqlcon->query("SELECT * FROM $dbname.config")) === false) { } else {
if($dbdata->rowCount() > 1) {
if($mysqlcon->exec("DELETE FROM $dbname.config WHERE webuser IS NULL") === false) { }
}
}
}
function old_files($timezone,$logpath) {
if(is_file(substr(__DIR__,0,-4).'install.php')) {
@@ -124,127 +132,128 @@ function check_db($mysqlcon,$lang,$dbname,$timezone,$currvers,$logpath) {
enter_logfile($logpath,$timezone,5," No newer version detected; Database check finished.");
old_files($timezone,$logpath);
check_chmod($timezone);
check_config($mysqlcon,$dbname);
} elseif($currvers=="0.13-beta") {
enter_logfile($logpath,$timezone,4," Update the Ranksystem Database to version 1.0.1");
$errcount=1;
if($mysqlcon->exec("ALTER TABLE $dbname.user ADD (boosttime bigint(11) NOT NULL default '0', rank bigint(11) NOT NULL default '0', platform text default NULL, nation text default NULL, version text default NULL, firstcon bigint(11) NOT NULL default '0', except int(1) NOT NULL default '0')") === false) {
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"user\" ".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"user\" ".print_r($mysqlcon->errorInfo(), true));
$errcount++;
}
if($mysqlcon->exec("ALTER TABLE $dbname.config ADD (boost text default NULL, showcolas int(1) NOT NULL default '0', defchid bigint(11) NOT NULL default '0', timezone varchar(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci, logpath varchar(200) CHARACTER SET utf8 COLLATE utf8_unicode_ci)") === false) {
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"config\" ".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"config\" ".print_r($mysqlcon->errorInfo(), true));
$errcount++;
}
$logpath = addslashes(__DIR__."/logs/");
if($mysqlcon->exec("ALTER TABLE $dbname.config MODIFY slowmode bigint(11) NOT NULL default '0'") === false) {
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"config\" ".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"config\" ".print_r($mysqlcon->errorInfo(), true));
$errcount++;
if($mysqlcon->exec("UPDATE $dbname.config set defchid='0', timezome='Europe/Berlin', slowmode='0', logpath='$logpath'") === false) {
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"config\" ".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"config\" ".print_r($mysqlcon->errorInfo(), true));
$errcount++;
}
}
if($mysqlcon->exec("ALTER TABLE $dbname.groups ADD (icondate bigint(11) NOT NULL default '0')") === false) {
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"groups\" ".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"groups\" ".print_r($mysqlcon->errorInfo(), true));
$errcount++;
}
if($mysqlcon->exec("CREATE TABLE $dbname.server_usage (timestamp bigint(11) NOT NULL default '0', clients bigint(11) NOT NULL default '0', channel bigint(11) NOT NULL default '0')") === false) {
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"server_usage\" ".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"server_usage\" ".print_r($mysqlcon->errorInfo(), true));
$errcount++;
}
if($mysqlcon->exec("CREATE TABLE $dbname.user_snapshot (timestamp bigint(11) NOT NULL default '0', uuid varchar(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci, count bigint(11) NOT NULL default '0', idle bigint(11) NOT NULL default '0')") === false) {
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"user_snapshot\" ".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"user_snapshot\" ".print_r($mysqlcon->errorInfo(), true));
$errcount++;
}
if($mysqlcon->exec("CREATE INDEX snapshot_timestamp ON $dbname.user_snapshot (timestamp)") === false) {
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"snapshot_timestamp\" ".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"snapshot_timestamp\" ".print_r($mysqlcon->errorInfo(), true));
$errcount++;
}
if($mysqlcon->exec("CREATE INDEX serverusage_timestamp ON $dbname.server_usage (timestamp)") === false) {
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"snapshot_timestamp\" ".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"snapshot_timestamp\" ".print_r($mysqlcon->errorInfo(), true));
$errcount++;
}
if($mysqlcon->exec("CREATE TABLE $dbname.stats_server (total_user bigint(11) NOT NULL default '0', total_online_time bigint(13) NOT NULL default '0', total_online_month bigint(11) NOT NULL default '0', total_online_week bigint(11) NOT NULL default '0', total_active_time bigint(11) NOT NULL default '0', total_inactive_time bigint(11) NOT NULL default '0', country_nation_name_1 varchar(3) NOT NULL default '0', country_nation_name_2 varchar(3) NOT NULL default '0', country_nation_name_3 varchar(3) NOT NULL default '0', country_nation_name_4 varchar(3) NOT NULL default '0', country_nation_name_5 varchar(3) NOT NULL default '0', country_nation_1 bigint(11) NOT NULL default '0', country_nation_2 bigint(11) NOT NULL default '0', country_nation_3 bigint(11) NOT NULL default '0', country_nation_4 bigint(11) NOT NULL default '0', country_nation_5 bigint(11) NOT NULL default '0', country_nation_other bigint(11) NOT NULL default '0', platform_1 bigint(11) NOT NULL default '0', platform_2 bigint(11) NOT NULL default '0', platform_3 bigint(11) NOT NULL default '0', platform_4 bigint(11) NOT NULL default '0', platform_5 bigint(11) NOT NULL default '0', platform_other bigint(11) NOT NULL default '0', version_name_1 varchar(35) NOT NULL default '0', version_name_2 varchar(35) NOT NULL default '0', version_name_3 varchar(35) NOT NULL default '0', version_name_4 varchar(35) NOT NULL default '0', version_name_5 varchar(35) NOT NULL default '0', version_1 bigint(11) NOT NULL default '0', version_2 bigint(11) NOT NULL default '0', version_3 bigint(11) NOT NULL default '0', version_4 bigint(11) NOT NULL default '0', version_5 bigint(11) NOT NULL default '0', version_other bigint(11) NOT NULL default '0', server_status int(1) NOT NULL default '0', server_free_slots bigint(11) NOT NULL default '0', server_used_slots bigint(11) NOT NULL default '0', server_channel_amount bigint(11) NOT NULL default '0', server_ping bigint(11) NOT NULL default '0', server_packet_loss float (4,4), server_bytes_down bigint(11) NOT NULL default '0', server_bytes_up bigint(11) NOT NULL default '0', server_uptime bigint(11) NOT NULL default '0', server_id bigint(11) NOT NULL default '0', server_name text CHARACTER SET utf8 COLLATE utf8_unicode_ci, server_pass int(1) NOT NULL default '0', server_creation_date bigint(11) NOT NULL default '0', server_platform text CHARACTER SET utf8 COLLATE utf8_unicode_ci, server_weblist text CHARACTER SET utf8 COLLATE utf8_unicode_ci, server_version text CHARACTER SET utf8 COLLATE utf8_unicode_ci)") === false) {
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"stats_server\" ".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"stats_server\" ".print_r($mysqlcon->errorInfo(), true));
$errcount++;
}
if($mysqlcon->exec("CREATE TABLE $dbname.stats_user (uuid varchar(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY, removed int(1) NOT NULL default '0', rank bigint(11) NOT NULL default '0', total_connections bigint(11) NOT NULL default '0', count_week bigint(11) NOT NULL default '0', count_month bigint(11) NOT NULL default '0', idle_week bigint(11) NOT NULL default '0', idle_month bigint(11) NOT NULL default '0', achiev_count bigint(11) NOT NULL default '0', achiev_time bigint(11) NOT NULL default '0', achiev_connects bigint(11) NOT NULL default '0', achiev_battles bigint(11) NOT NULL default '0', achiev_time_perc int(3) NOT NULL default '0', achiev_connects_perc int(3) NOT NULL default '0', achiev_battles_perc int(3) NOT NULL default '0', battles_total bigint(11) NOT NULL default '0', battles_won bigint(11) NOT NULL default '0', battles_lost bigint(11) NOT NULL default '0', client_description text CHARACTER SET utf8 COLLATE utf8_unicode_ci, base64hash varchar(58) CHARACTER SET utf8 COLLATE utf8_unicode_ci, client_total_up bigint(15) NOT NULL default '0', client_total_down bigint(15) NOT NULL default '0')") === false) {
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"stats_user\" ".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"stats_user\" ".print_r($mysqlcon->errorInfo(), true));
$errcount++;
}
if($mysqlcon->exec("INSERT INTO $dbname.stats_server SET total_user='9999'") === false) {
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"stats_server\" ".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"stats_server\" ".print_r($mysqlcon->errorInfo(), true));
$errcount++;
}
if($mysqlcon->exec("CREATE TABLE $dbname.job_check (job_name varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci PRIMARY KEY, timestamp bigint(11) NOT NULL default '0')") === false) {
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"job_check\" ".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"job_check\" ".print_r($mysqlcon->errorInfo(), true));
$errcount++;
}
if($mysqlcon->exec("INSERT INTO $dbname.job_check (job_name) VALUES ('calc_user_limit'),('calc_user_lastscan'),('check_update'),('check_clean')") === false) {
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"job_check\" ".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"job_check\" ".print_r($mysqlcon->errorInfo(), true));
$errcount++;
}
if($mysqlcon->exec("CREATE TABLE $dbname.job_log (id bigint(11) AUTO_INCREMENT PRIMARY KEY, timestamp bigint(11) NOT NULL default '0', job_name varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci, status int(1) NOT NULL default '0', err_msg text CHARACTER SET utf8 COLLATE utf8_unicode_ci, runtime float (4,4))") === false) {
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"job_log\" ".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"job_log\" ".print_r($mysqlcon->errorInfo(), true));
$errcount++;
}
if(($lastscan = $mysqlcon->query("SELECT timestamp FROM $dbname.lastscan")) === false) {
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"lastscan\" ".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"lastscan\" ".print_r($mysqlcon->errorInfo(), true));
$errcount++;
} else {
$timestampls = $lastscan->fetchAll();
$calc_user_lastscan = $timestampls[0]['timestamp'];
if($mysqlcon->exec("UPDATE $dbname.job_check SET timestamp='$calc_user_lastscan' WHERE job_name='calc_user_lastscan'") === false) {
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"job_check\" ".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"job_check\" ".print_r($mysqlcon->errorInfo(), true));
$errcount++;
} elseif($mysqlcon->exec("DROP TABLE $dbname.lastscan") === false) {
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"lastscan\" ".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"lastscan\" ".print_r($mysqlcon->errorInfo(), true));
$errcount++;
}
}
if(($lastupdate = $mysqlcon->query("SELECT timestamp FROM $dbname.upcheck")) === false) {
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"upcheck\" ".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"upcheck\" ".print_r($mysqlcon->errorInfo(), true));
$errcount++;
} else {
$timestampuc = $lastupdate->fetchAll();
$check_update = $timestampuc[0]['timestamp'];
if($mysqlcon->exec("UPDATE $dbname.job_check SET timestamp='$check_update' WHERE job_name='check_update'") === false) {
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"job_check\" ".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"job_check\" ".print_r($mysqlcon->errorInfo(), true));
$errcount++;
} elseif($mysqlcon->exec("DROP TABLE $dbname.upcheck") === false) {
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"upcheck\" ".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"upcheck\" ".print_r($mysqlcon->errorInfo(), true));
$errcount++;
}
}
if(($lastclean = $mysqlcon->query("SELECT timestamp FROM $dbname.cleanclients")) === false) {
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"upcheck\" ".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"upcheck\" ".print_r($mysqlcon->errorInfo(), true));
$errcount++;
} else {
$timestamplc = $lastclean->fetchAll();
$check_clean = $timestampls[0]['timestamp'];
if($mysqlcon->exec("UPDATE $dbname.job_check SET timestamp='$check_clean' WHERE job_name='check_clean'") === false) {
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"upcheck\" ".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"upcheck\" ".print_r($mysqlcon->errorInfo(), true));
$errcount++;
} elseif($mysqlcon->exec("DROP TABLE $dbname.cleanclients") === false) {
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"upcheck\" ".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,1,"DB Update Error: table \"upcheck\" ".print_r($mysqlcon->errorInfo(), true));
$errcount++;
}
}
@@ -260,28 +269,28 @@ function check_db($mysqlcon,$lang,$dbname,$timezone,$currvers,$logpath) {
}
} else {
enter_logfile($logpath,$timezone,4," Update the Ranksystem Database to new version...");
if($mysqlcon->exec("CREATE INDEX serverusage_timestamp ON $dbname.server_usage (timestamp)") === false) { }
if($mysqlcon->exec("ALTER TABLE $dbname.config ADD (advancemode int(1) NOT NULL default '0', count_access int(2) NOT NULL default '0', last_access bigint(11) NOT NULL default '0', ignoreidle bigint(11) NOT NULL default '0', exceptcid text CHARACTER SET utf8 COLLATE utf8_unicode_ci, rankupmsg text CHARACTER SET utf8 COLLATE utf8_unicode_ci, boost_mode int(1) NOT NULL default '0', newversion varchar(25) CHARACTER SET utf8 COLLATE utf8_unicode_ci)") === false) { } else {
enter_logfile($logpath,$timezone,4," [1.1.0] Adjusted table config successfully.");
}
if(version_compare($currvers, '1.1.0', '<')) {
if(version_compare($currvers, '1.0.2', '<=')) {
if($mysqlcon->exec("CREATE INDEX serverusage_timestamp ON $dbname.server_usage (timestamp)") === false) { }
if($mysqlcon->exec("ALTER TABLE $dbname.config ADD (advancemode int(1) NOT NULL default '0', count_access int(2) NOT NULL default '0', last_access bigint(11) NOT NULL default '0', ignoreidle bigint(11) NOT NULL default '0', exceptcid text CHARACTER SET utf8 COLLATE utf8_unicode_ci, rankupmsg text CHARACTER SET utf8 COLLATE utf8_unicode_ci, boost_mode int(1) NOT NULL default '0', newversion varchar(25) CHARACTER SET utf8 COLLATE utf8_unicode_ci)") === false) { } else {
enter_logfile($logpath,$timezone,4," [1.1.0] Adjusted table config successfully.");
}
if($mysqlcon->exec("UPDATE $dbname.config set ignoreidle='600', rankupmsg='\\nHey, you got a rank up, cause you reached an activity of %s days, %s hours, %s minutes and %s seconds.', newversion='1.1.0'") === false) { } else {
enter_logfile($logpath,$timezone,4," [1.1.0] Set default values to new fields in table config.");
}
}
if($mysqlcon->exec("INSERT INTO $dbname.job_check (job_name) VALUES ('get_version')") === false) { } else {
enter_logfile($logpath,$timezone,4," [1.1.0] Set new values to table job_check.");
}
if(($password = $mysqlcon->query("SELECT webpass FROM $dbname.config")) === false) { }
$password = $password->fetchAll();
if(strlen($password[0]['webpass']) != 60) {
$newwebpass = password_hash($password[0]['webpass'], PASSWORD_DEFAULT);
if($mysqlcon->exec("UPDATE $dbname.config set webpass='$newwebpass'") === false) { } else {
enter_logfile($logpath,$timezone,4," [1.1.0] Encrypted password for the webinterface and wrote hash to database.");
if($mysqlcon->exec("INSERT INTO $dbname.job_check (job_name) VALUES ('get_version')") === false) { } else {
enter_logfile($logpath,$timezone,4," [1.1.0] Set new values to table job_check.");
}
if(($password = $mysqlcon->query("SELECT webpass FROM $dbname.config")) === false) { }
$password = $password->fetchAll();
if(strlen($password[0]['webpass']) != 60) {
$newwebpass = password_hash($password[0]['webpass'], PASSWORD_DEFAULT);
if($mysqlcon->exec("UPDATE $dbname.config set webpass='$newwebpass'") === false) { } else {
enter_logfile($logpath,$timezone,4," [1.1.0] Encrypted password for the webinterface and wrote hash to database.");
}
}
if($mysqlcon->exec("ALTER TABLE $dbname.config DROP COLUMN showexgrp, DROP COLUMN showgen, DROP COLUMN bgcolor, DROP COLUMN hdcolor, DROP COLUMN txcolor, DROP COLUMN hvcolor, DROP COLUMN ifcolor, DROP COLUMN wncolor, DROP COLUMN sccolor") === false) { } else {
enter_logfile($logpath,$timezone,4," [1.1.0] Delete old configs, which are no more needed.");
}
}
if($mysqlcon->exec("ALTER TABLE $dbname.config DROP COLUMN showexgrp, DROP COLUMN showgen, DROP COLUMN bgcolor, DROP COLUMN hdcolor, DROP COLUMN txcolor, DROP COLUMN hvcolor, DROP COLUMN ifcolor, DROP COLUMN wncolor, DROP COLUMN sccolor") === false) { } else {
enter_logfile($logpath,$timezone,4," [1.1.0] Delete old configs, which are no more needed.");
}
if(version_compare($currvers, '1.1.0', '<=')) {
if($mysqlcon->exec("ALTER TABLE $dbname.user CHANGE ip clientip bigint(11) NOT NULL default '0'") === false) { }
@@ -309,7 +318,7 @@ function check_db($mysqlcon,$lang,$dbname,$timezone,$currvers,$logpath) {
}
if($mysqlcon->exec("ALTER TABLE $dbname.config ADD (servernews text CHARACTER SET utf8 COLLATE utf8_unicode_ci)") === false) { } else {
$servernews = $mysqlcon->quote(file_get_contents('../server-news'));
if($mysqlcon->exec("INSERT INTO $dbname.config (servernews) VALUES ($servernews)") === false) { } else {
if($mysqlcon->exec("UPDATE $dbname.config set servernews='$servernews')") === false) { } else {
enter_logfile($logpath,$timezone,4," [1.1.1] Adjusted table config successfully.");
}
}
@@ -317,9 +326,30 @@ function check_db($mysqlcon,$lang,$dbname,$timezone,$currvers,$logpath) {
enter_logfile($logpath,$timezone,4," [1.1.1] Drop table job_log, which is no more needed.");
}
}
if(version_compare($currvers, '1.1.1', '<=')) {
if($mysqlcon->exec("ALTER TABLE $dbname.config ADD (adminuuid varchar(29) CHARACTER SET utf8 COLLATE utf8_unicode_ci, nextupinfo int(1) NOT NULL default '0', nextupinfomsg1 text CHARACTER SET utf8 COLLATE utf8_unicode_ci, nextupinfomsg2 text CHARACTER SET utf8 COLLATE utf8_unicode_ci, nextupinfomsg3 text CHARACTER SET utf8 COLLATE utf8_unicode_ci)") === false) { } else {
$nextupinfomsg1 = $mysqlcon->quote("Your next rank up will be in %1\$s days, %2\$s hours, %3\$s minutes and %4\$s seconds. The next servergroup you will reach is [B]%5\$s[/B].");
$nextupinfomsg2 = $mysqlcon->quote("You have already reached the highest rank.");
$nextupinfomsg3 = $mysqlcon->quote("You are excepted from the Ranksystem. If you wish to rank contact an admin on the TS3 server.");
if($mysqlcon->exec("UPDATE $dbname.config set nextupinfo='1', nextupinfomsg1=$nextupinfomsg1, nextupinfomsg2=$nextupinfomsg2, nextupinfomsg3=$nextupinfomsg3") === false) { } else {
enter_logfile($logpath,$timezone,4," [1.1.2] Adjusted table config (part1) successfully.");
}
}
}
if(version_compare($currvers, '1.1.1', '<=')) {
if($mysqlcon->exec("ALTER TABLE $dbname.config ADD (shownav int(1) NOT NULL default '0', showgrpsince int(1) NOT NULL default '0')") === false) { } else {
if($mysqlcon->exec("UPDATE $dbname.config set shownav='1', showgrpsince='1'") === false) { } else {
enter_logfile($logpath,$timezone,4," [1.1.2] Adjusted table config (part2) successfully.");
}
}
if($mysqlcon->exec("ALTER TABLE $dbname.user ADD (grpsince bigint(11) NOT NULL default '0')") === false) { } else {
enter_logfile($logpath,$timezone,4," [1.1.2] Adjusted table user successfully.");
}
}
$currvers = set_new_version($mysqlcon,$dbname,$timezone,$newversion,$logpath);
old_files($timezone,$logpath);
check_chmod($timezone);
check_config($mysqlcon,$dbname);
}
return $currvers;
}

View File

@@ -5,24 +5,24 @@ function clean($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$cleanclients,$c
// clean usersnaps older then 1 month
if($mysqlcon->query("DELETE a FROM $dbname.user_snapshot AS a CROSS JOIN(SELECT DISTINCT(timestamp) FROM $dbname.user_snapshot ORDER BY timestamp DESC LIMIT 1000 OFFSET 121) AS b WHERE a.timestamp=b.timestamp") === false) {
enter_logfile($logpath,$timezone,2,"clean 2.1:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"clean 2.1:".print_r($mysqlcon->errorInfo(), true));
}
// clean old server usage - older then a year
if($mysqlcon->query("DELETE FROM $dbname.server_usage WHERE timestamp < (UNIX_TIMESTAMP() - 31536000)") === false) {
enter_logfile($logpath,$timezone,2,"clean 2.2:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"clean 2.2:".print_r($mysqlcon->errorInfo(), true));
}
// clean old clients out of the database
if ($cleanclients == 1) {
$cleantime = $nowtime - $cleanperiod;
if(($lastclean = $mysqlcon->query("SELECT * FROM $dbname.job_check WHERE job_name='check_clean'")) === false) {
enter_logfile($logpath,$timezone,2,"clean 3:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"clean 3:".print_r($mysqlcon->errorInfo(), true));
}
$lastclean = $lastclean->fetchAll();
if ($lastclean[0]['timestamp'] < $cleantime) {
if(($dbuserdata = $mysqlcon->query("SELECT uuid FROM $dbname.user")) === false) {
enter_logfile($logpath,$timezone,2,"clean 4:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"clean 4:".print_r($mysqlcon->errorInfo(), true));
}
$countrs = $dbuserdata->rowCount();
$uuids = $dbuserdata->fetchAll();
@@ -69,18 +69,18 @@ function clean($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$cleanclients,$c
$alldeldata = "(".$alldeldata.")";
if ($alldeldata != '') {
if($mysqlcon->exec("DELETE FROM $dbname.user WHERE uuid IN $alldeldata") === false) {
enter_logfile($logpath,$timezone,2,"clean 5:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"clean 5:".print_r($mysqlcon->errorInfo(), true));
} else {
enter_logfile($logpath,$timezone,4," ".sprintf($lang['cleandel'], $countdel));
if($mysqlcon->exec("UPDATE $dbname.job_check SET timestamp='$nowtime' WHERE job_name='check_clean'") === false) {
enter_logfile($logpath,$timezone,2,"clean 6:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"clean 6:".print_r($mysqlcon->errorInfo(), true));
}
}
}
} else {
enter_logfile($logpath,$timezone,4," ".$lang['cleanno']);
if($mysqlcon->exec("UPDATE $dbname.job_check SET timestamp='$nowtime' WHERE job_name='check_clean'") === false) {
enter_logfile($logpath,$timezone,2,"clean 7:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"clean 7:".print_r($mysqlcon->errorInfo(), true));
}
}
}

129
jobs/handle_messages.php Normal file
View File

@@ -0,0 +1,129 @@
<?PHP
function handle_messages(TeamSpeak3_Adapter_ServerQuery_Event $event, TeamSpeak3_Node_Host $host) {
global $lang, $logpath, $timezone, $nextupinfo, $nextupinfomsg1, $nextupinfomsg2, $nextupinfomsg3, $mysqlcon, $dbname, $grouptime, $substridle, $slowmode, $currvers, $newversion, $adminuuid;
if($host->whoami()["client_unique_identifier"] != $event["invokeruid"]) { //check whoami need to slowmode or is already stored?
$uuid = $event["invokeruid"];
if(strstr($event["msg"], 'nextup') && $nextupinfo == 1) {
//enter_logfile($logpath,$timezone,6,"Client ".$event["invokername"]." (".$event["invokeruid"].") sent textmessage: ".$event["msg"]);
if(($dbuserdata = $mysqlcon->query("SELECT count,nextup,idle,except FROM $dbname.user WHERE uuid='$uuid'")) === false) {
enter_logfile($logpath,$timezone,2,"handle_messages 1:".print_r($mysqlcon->errorInfo(), true));
}
$user = $dbuserdata->fetchAll(PDO::FETCH_ASSOC);
$nextup = $user[0]['nextup'];
$dtF = new DateTime("@0");
$dtT = new DateTime("@$nextup");
$days = $dtF->diff($dtT)->format('%a');
$hours = $dtF->diff($dtT)->format('%h');
$mins = $dtF->diff($dtT)->format('%i');
$secs = $dtF->diff($dtT)->format('%s');
if(($dbgroups = $mysqlcon->query("SELECT * FROM $dbname.groups")) === false) {
enter_logfile($logpath,$timezone,2,"handle_messages 2:".print_r($mysqlcon->errorInfo(), true));
}
$servergroups = $dbgroups->fetchAll(PDO::FETCH_ASSOC);
foreach($servergroups as $servergroup) {
$sqlhisgroup[$servergroup['sgid']] = $servergroup['sgidname'];
}
ksort($grouptime);
$countgrp = count($grouptime);
$grpcount=0;
foreach ($grouptime as $time => $groupid) {
$grpcount++;
if ($substridle == 1) {
$activetime = $user[0]['count'] - $user[0]['idle'];
} else {
$activetime = $user[0]['count'];
}
if ($activetime < $time || $grpcount == $countgrp && $nextup <= 0) {
check_shutdown($timezone,$logpath); usleep($slowmode);
if ($grpcount == $countgrp && $nextup == 0) {
try {
$host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message(sprintf($nextupinfomsg2, $days, $hours, $mins, $secs, $sqlhisgroup[$groupid]));
} catch (Exception $e) {
enter_logfile($logpath,$timezone,2,"handle_messages 3:".$e->getCode().': '.$e->getMessage());
}
} elseif ($user[0]['except'] == 1) {
try {
$host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message(sprintf($nextupinfomsg3, $days, $hours, $mins, $secs, $sqlhisgroup[$groupid]));
} catch (Exception $e) {
enter_logfile($logpath,$timezone,2,"handle_messages 4:".$e->getCode().': '.$e->getMessage());
}
} else {
try {
$host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message(sprintf($nextupinfomsg1, $days, $hours, $mins, $secs, $sqlhisgroup[$groupid]));
} catch (Exception $e) {
enter_logfile($logpath,$timezone,2,"handle_messages 5:".$e->getCode().': '.$e->getMessage());
}
}
}
}
}
if(strstr($event["msg"], 'version')) {
if(version_compare(substr($newversion, 0, 5), substr($currvers, 0, 5), '>') && $newversion != '') {
try {
$host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message(sprintf($lang['upmsg'], $currvers, $newversion));
} catch (Exception $e) {
enter_logfile($logpath,$timezone,2,"handle_messages 6:".$e->getCode().': '.$e->getMessage());
}
} else {
try {
$host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message(sprintf($lang['msg0001'], $currvers));
} catch (Exception $e) {
enter_logfile($logpath,$timezone,2,"handle_messages 7:".$e->getCode().': '.$e->getMessage());
}
}
}
if(strstr($event["msg"], 'help') || strstr($event["msg"], 'info') || strstr($event["msg"], 'commands')) {
try {
$host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message($lang['msg0002']);
} catch (Exception $e) {
enter_logfile($logpath,$timezone,2,"handle_messages 8:".$e->getCode().': '.$e->getMessage());
}
}
if((strstr($event["msg"], 'shutdown') || strstr($event["msg"], 'quit') || strstr($event["msg"], 'stop')) && $event["invokeruid"] == $adminuuid) {
enter_logfile($logpath,$timezone,5,sprintf($lang['msg0004'], $event["invokername"], $event["invokeruid"]));
$path = substr(__DIR__, 0, -4);
try {
$host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message($lang['msg0005']);
} catch (Exception $e) {
enter_logfile($logpath,$timezone,2,"handle_messages 9:".$e->getCode().': '.$e->getMessage());
}
exec("php ".$path."worker.php stop");
} elseif (strstr($event["msg"], 'shutdown') || strstr($event["msg"], 'exit')) {
try {
$host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message($lang['msg0003']);
} catch (Exception $e) {
enter_logfile($logpath,$timezone,2,"handle_messages 10:".$e->getCode().': '.$e->getMessage());
}
}
if((strstr($event["msg"], 'restart') || strstr($event["msg"], 'reboot')) && $event["invokeruid"] == $adminuuid) {
enter_logfile($logpath,$timezone,5,sprintf($lang['msg0007'], $event["invokername"], $event["invokeruid"]));
$path = substr(__DIR__, 0, -4);
try {
$host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message($lang['msg0006']);
} catch (Exception $e) {
enter_logfile($logpath,$timezone,2,"handle_messages 11:".$e->getCode().': '.$e->getMessage());
}
if (substr(php_uname(), 0, 7) == "Windows") {
exec("start php ".$path."worker.php restart");
} else {
exec("php ".$path."worker.php restart > /dev/null 2>/dev/null &");
}
} elseif (strstr($event["msg"], 'shutdown') || strstr($event["msg"], 'exit')) {
try {
$host->serverGetSelected()->clientGetByUid($event["invokeruid"])->message($lang['msg0003']);
} catch (Exception $e) {
enter_logfile($logpath,$timezone,2,"handle_messages 12:".$e->getCode().': '.$e->getMessage());
}
}
}
}
?>

View File

@@ -24,7 +24,7 @@ function update_groups($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$serveri
}
if(($dbgroups = $mysqlcon->query("SELECT * FROM $dbname.groups")) === false) {
enter_logfile($logpath,$timezone,2,"update_groups 3:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"update_groups 3:".print_r($mysqlcon->errorInfo(), true));
}
if ($dbgroups->rowCount() == 0) {
$sqlhisgroup = "empty";
@@ -93,7 +93,7 @@ function update_groups($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$serveri
try {
$iconfile = $servergroup->iconDownload();
} catch (Exception $e) {
enter_logfile($logpath,$timezone,2,"update_groups 5:".$e->getCode().': '."Error while downloading servericon: ".$e->getMessage());
enter_logfile($logpath,$timezone,2,"update_groups 5:".$e->getCode().': '."Error while downloading servergroupicon: ".$e->getMessage());
}
if(file_put_contents(substr(dirname(__FILE__),0,-4) . "icons/" . $sgid . ".png", $iconfile) === false) {
enter_logfile($logpath,$timezone,2,"Error while writing out the servergroup icon. Please check the permission for the folder 'icons'");
@@ -103,6 +103,7 @@ function update_groups($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$serveri
}
}
}
if(!isset($iconarr["i".$iconid])) {
$iconarr["i".$iconid] = 0;
}
@@ -115,7 +116,7 @@ function update_groups($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$serveri
"sgidname" => $sgname,
"iconid" => $iconid,
"icon" => $iconfile,
"icondate" => $groups['icondate']
"icondate" => $iconarr["i".$iconid]
);
break;
}
@@ -143,16 +144,12 @@ function update_groups($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$serveri
if (isset($insertgroups)) {
$allinsertdata = '';
foreach ($insertgroups as $insertarr) {
if( $insertarr['iconid'] == 0 || $insertarr['icondate'] == null || $insertarr['icondate'] == 0) {
//enter_logfile($logpath,$timezone,6,"IconID is 0 for (servergroup) ".$insertarr['sgidname']." (".$insertarr['sgid'].")");
continue;
}
$allinsertdata = $allinsertdata . "('" . $insertarr['sgid'] . "', " . $insertarr['sgidname'] . ", '" . $insertarr['iconid'] . "', '" . $insertarr['icondate'] . "'),";
}
$allinsertdata = substr($allinsertdata, 0, -1);
if ($allinsertdata != '') {
if($mysqlcon->exec("INSERT INTO $dbname.groups (sgid, sgidname, iconid, icondate) VALUES $allinsertdata") === false) {
enter_logfile($logpath,$timezone,2,"update_groups 7:".$allinsertdata.print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"update_groups 7:".$allinsertdata.print_r($mysqlcon->errorInfo(), true));
}
}
}
@@ -170,7 +167,7 @@ function update_groups($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$serveri
}
$allsgids = substr($allsgids, 0, -1);
if($mysqlcon->exec("UPDATE $dbname.groups set sgidname = CASE sgid $allupdatesgid END, iconid = CASE sgid $allupdateiconid END, icondate = CASE sgid $allupdatedate END WHERE sgid IN ($allsgids)") === false) {
enter_logfile($logpath,$timezone,2,"update_groups 8:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"update_groups 8:".print_r($mysqlcon->errorInfo(), true));
}
}
@@ -185,7 +182,7 @@ function update_groups($ts3,$mysqlcon,$lang,$dbname,$slowmode,$timezone,$serveri
if(isset($delsgroupids)) {
$delsgroupids = substr($delsgroupids, 0, -1);
if($mysqlcon->exec("DELETE FROM $dbname.groups WHERE sgid IN ($delsgroupids)") === false) {
enter_logfile($logpath,$timezone,2,"update_groups 9:".print_r($mysqlcon->errorInfo()));
enter_logfile($logpath,$timezone,2,"update_groups 9:".print_r($mysqlcon->errorInfo(), true));
}
}
}

View File

@@ -24,7 +24,8 @@ $lang['errlogin3'] = "Brute force protection: To much misstakes. Banned for 30
$lang['error'] = "خلل ";
$lang['errremgrp'] = "Error while removing user with unique Client-ID %s out of the servergroup with servergroup-database-ID %s!";
$lang['errremdb'] = "Error while removing user with unique Client-ID %s out of the Ranksystem database!";
$lang['errsel'] = "Error while choosing the selections with<br>selected client: %s<br>option 'delete clients': %s<br>option 'sum. online time': %s";
$lang['errselusr'] = "Please choose at least one user!";
$lang['errseltime'] = "Please enter an online time to add!";
$lang['errukwn'] = "حدث خلل غير معروف!";
$lang['errupcount'] = "Error while renewing the summary online time of %s by user with the unique Client-ID %s";
$lang['highest'] = "تم الوصول الى اعلى رتبة";
@@ -35,9 +36,11 @@ $lang['insterr1'] = "ATTENTION: You are trying to install the Ranksystem, but
$lang['insterr2'] = "PDO is needed but seems not installed. Install <a href=\"http://php.net/manual/de/pdo.installation.php\" target=\"_blank\">PDO</a> and try it again!";
$lang['insterr3'] = "PHP exec function need to be enabled but seems to be disabled. Please enable the PHP <a href=\http://php.net/manual/de/function.exec.php\" target=\"_blank\">exec</a> function and try it again!";
$lang['insterr4'] = "Your PHP version (%s) is below 5.5.0. Update your PHP and try it again!";
$lang['insterr5'] = "SimpleXML is needed but seems not available. Install <a href=\"http://php.net/manual/en/simplexml.installation.php\" target=\"_blank\">simpleXML</a> and try it again!";
$lang['isntwicfg'] = "Can't save the database configuration! Please edit the 'other/dbconfig.php' with a chmod 0777 (on windows 'full access') and try again after.";
$lang['isntwicfg2'] = "Configurate Webinterface";
$lang['isntwichm'] = "Write Permissions failed on folder \"%s\". Please give them a chmod 777 (on windows 'full access') and try to start the Ranksystem again.";
$lang['isntwiconf'] = "Open the %s to configure the Ranksystem!";
$lang['isntwidbhost'] = "DB Hostaddress:";
$lang['isntwidbhostdesc'] = "عنوان خادم قاعدة البيانات<br>(IP or DNS)";
$lang['isntwidbmsg'] = "خلل في قاعدة البيانات: ";
@@ -49,7 +52,7 @@ $lang['isntwidbtype'] = "DB Type:";
$lang['isntwidbtypedesc'] = "Database type<br><br>You have to install the needed PDO Driver.<br>For more informations have look at the requirements on http://ts-n.net/ranksystem.php";
$lang['isntwidbusr'] = "DB User:";
$lang['isntwidbusrdesc'] = "User to access the database";
$lang['isntwidel'] = "Please delete the file 'install.php' from your webserver and open the %s to configure the Ranksystem!";
$lang['isntwidel'] = "Please delete the file 'install.php' from your webserver!";
$lang['isntwiusr'] = "المستخدم للوحة التحكم انشئ بنجاح";
$lang['isntwiusrcr'] = "Create Webinterface-User";
$lang['isntwiusrdesc'] = "ادخل الاسم وكلمة المرور للدخول الى لوحة التحكم . بإستخدام لوحة التحكم يمكنك التعديل على نظام الرتب";
@@ -57,6 +60,7 @@ $lang['isntwiusrh'] = "Access - Webinterface";
$lang['listacsg'] = "الرتبة الحالية";
$lang['listcldbid'] = "Client-database-ID";
$lang['listexcept'] = "No, cause excepted";
$lang['listgrps'] = "actual group since";
$lang['listip'] = "IP address";
$lang['listnick'] = "اسم المستخدم";
$lang['listnxsg'] = "الرتبة التالية";
@@ -68,14 +72,26 @@ $lang['listsumi'] = "وقت عدم النشاط الكلي";
$lang['listsumo'] = "وقت التواجد الكلي";
$lang['listuid'] = "unique Client-ID";
$lang['login'] = "Login";
$lang['msg0001'] = "running version: %s";
$lang['msg0002'] = "Valid commands are:\n[B]help[/B], [B]info[/B], [B]commands[/B]\t\tget a command list\n[B]version[/B]\t\t\t\t\t\t\t\t get the Ranksystem version\n[B]nextup[/B]\t\t\t\t\t\t\t\t get the time to the next rank up\n[B]restart[/B], [B]reboot[/B]\t\t\t\t\trestart the Ranksystem bot\n[B]shutdown[/B], [B]quit[/B], [B]stop[/B]\t\t stop the Ranksystem bot";
$lang['msg0003'] = "You are not eligible for this command!";
$lang['msg0004'] = "Client %s (%s) requests shutdown.";
$lang['msg0005'] = "cya";
$lang['msg0006'] = "brb";
$lang['msg0007'] = "Client %s (%s) requests restart.";
$lang['nocount'] = "User %s (unique Client-ID: %s; Client-database-ID %s) is a query-user or is several times online (only first connection counts) -> this will not count!";
$lang['noentry'] = "لم يتم العثور على اي مدخلات";
$lang['pass'] = "كلمة المرور";
$lang['pass2'] = "Change password";
$lang['pass3'] = "old password";
$lang['pass4'] = "new password";
$lang['pass5'] = "Forgot Password?";
$lang['queryname'] = "اسم البوت الاول قيد الاستخدام جاري المحاولة باسم البوت الثاني";
$lang['repeat'] = "repeat";
$lang['sccrmcld'] = "User with unique Client-ID %s successfull removed from the Ranksystem database.";
$lang['sccupcount'] = "User with the unique Client-ID %s successfull overwritten with a summary online time of %s.";
$lang['setontime'] = "sum. online time";
$lang['setontimedesc'] = "Enter a new summary online time, which should be set to the previous selected clients. With this the old summary online gets overwritten.<br><br>The entered summary online time will be considered for the rank up.";
$lang['sccupcount'] = "Added successfully an online time of %s seconds to the users with the unique Client-IDs (%s)";
$lang['setontime'] = "add time";
$lang['setontimedesc'] = "Add online time to the previous selected clients. Each user will get this time additional to their old online time.<br><br>The entered online time will be considered for the rank up and should take effect immediately.";
$lang['sgrpadd'] = "Grant servergroup %s to user %s (unique Client-ID: %s; Client-database-ID %s).";
$lang['sgrprerr'] = "It happened a problem with the servergroup of the user %s (unique Client-ID: %s; Client-database-ID %s)!";
$lang['sgrprm'] = "تم حذف مجموعة السيرفر %s من المستخدم %s (unique Client-ID: %s; Client-database-ID %s).";
@@ -128,6 +144,9 @@ $lang['stix0048'] = "عدد غير كافي من المعلومات حتى ا
$lang['stix0049'] = "وقت التواجد لكل المستخدمين / شهر";
$lang['stix0050'] = "وقت التواجد لكل المستخدمين / اسبوع";
$lang['stix0051'] = "لقد فشل التيم سبيك لذا لن يكون هناك عملية انشاء";
$lang['stix0052'] = "others";
$lang['stix0053'] = "Active Time (in Days)";
$lang['stix0054'] = "Inactive Time (in Days)";
$lang['stmy0001'] = "العضوية";
$lang['stmy0002'] = "رتبة";
$lang['stmy0003'] = "Database ID:";
@@ -200,6 +219,7 @@ $lang['stnv0039'] = "Show only clients, which are not online.";
$lang['stnv0040'] = "Show only clients, which are in defined group. Represent the actuel rank/level.<br>Replace <i>GROUPID</i> with the wished servergroup ID.";
$lang['stnv0041'] = "Show only clients, which are selected by lastseen.<br>Replace <i>OPERATOR</i> with '<' or '>' or '=' or '!='.<br>And replace <i>TIME</i> with a timestamp or date with format 'Y-m-d H-i' (example: 2016-06-18 20-25).<br>Full example: filter:lastseen:<:2016-06-18 20-25:";
$lang['stnv0042'] = "Show only clients, which are from defined country.<br>Replace <i>TS3-COUNTRY-CODE</i> with the wished country.<br>For list of codes google for ISO 3166-1 alpha-2";
$lang['stnv0043'] = "connect TS3";
$lang['stri0001'] = "معلومات عن نظام الرتب";
$lang['stri0002'] = "ماهو نظام الرتب؟";
$lang['stri0003'] = "A TS3 Bot, which automatically grant ranks (servergroups) to user on a TeamSpeak 3 Server for online time or online activity. It also gathers informations and statistics about the user and displays the result on this site.";
@@ -240,7 +260,12 @@ $lang['upuserboost'] = "User %s (unique Client-ID: %s; Client-database-ID %s) g
$lang['upusrerr'] = "The unique Client-ID %s couldn't reached on the TeamSpeak!";
$lang['upusrinf'] = "المستخدم %s المستخدمح";
$lang['user'] = "اسم المستخدم";
$lang['wi'] = "Webinterface";
$lang['wiaction'] = "action";
$lang['wiadmhide'] = "hide excepted clients";
$lang['wiadmhidedesc'] = "To hide excepted user in the following selection";
$lang['wiadmuuid'] = "admin ID";
$lang['wiadmuuiddesc'] = "Enter here your unique Client-ID; as the administrator of the Ranksystem.<br><br>This is required to reset the password of the webinterface.<br><br>Is there no unique Client-ID address defined, it is not possible to reset the password!";
$lang['wiboost'] = "boost";
$lang['wiboostdesc'] = "Give an user on your TeamSpeak server a servergroup (have to be created manually), which you can declare here as boost group. Define also a factor which should be used (for example 2x) and a time, how long the boost should be rated.<br>The higher the factor, the faster an user reaches the next higher rank.<br>Is the time expired, the boost servergroup get automatically removed from the concerned user. The time starts running as soon as the user gets the servergroup.<br><br>servergroup ID=> factor=> time (in seconds)<br><br>Each entry have to separate from next with a comma.<br><br>Example:<br>12=>2=>6000,13=>3=>2500,14=>5=>600<br><br>On this an user in servergroup 12 get the factor 2 for the next 6000 seconds, an user in servergroup 13 get the factor 3 for 2500 seconds, and so on...";
$lang['wibot1'] = "Ranksystem Bot should be stopped. Check the log below for more information!";
@@ -255,6 +280,10 @@ $lang['wibot9'] = "Fill out all mandatory fields before starting the Ranksyst
$lang['wichdbid'] = "Client-database-ID reset";
$lang['wichdbiddesc'] = "Reset the online time of an user, if his TeamSpeak Client-database-ID changed.<br><br>Example:<br>If a clients gets removed from the TeamSpeak server, it gets a new Client-database-ID with the next connect to the server.";
$lang['wiconferr'] = "There is an error in the configuration of the Ranksystem. Please go to the webinterface and correct the Core Settings. Especially check the config 'rank up'!";
$lang['wichpw1'] = "Your old password is wrong. Please try again";
$lang['wichpw2'] = "The new passwords dismatch. Please try again.";
$lang['wichpw3'] = "The password of the webinterface has been successfully changed. Request from IP %s.";
$lang['wichpw4'] = "Change Password";
$lang['widaform'] = "نظام التاريخ";
$lang['widaformdesc'] = "اختر كيفية ضهور التاريخ.<br><br>Example:<br>%a ايام, %h ساعات, %i دقائق, %s ثوان";
$lang['widbcfgsuc'] = "تعديلات قاعدة البيانات حفظت بنجاح";
@@ -276,6 +305,7 @@ $lang['wiexuiddesc'] = "A comma seperated list of unique Client-IDs, which shou
$lang['wigrptime'] = "ترفيع رتبة";
$lang['wigrptimedesc'] = "Define here after which time a user should get automatically a predefined servergroup.<br><br>time (seconds)=>servergroup ID<br><br>Important for this is the 'online time' or the 'active time' of an user, depending on setting of the mode.<br><br>Each entry have to separate from next with a comma.<br><br>The time must be entered cumulative<br><br>Example:<br>60=>9,120=>10,180=>11<br><br>On this a user get after 60 seconds the servergroup 9, in turn after 60 seconds the servergroup 10, and so on...";
$lang['wihladm'] = "List Rankup (Admin-Mode)";
$lang['wihladm1'] = "Add online Time to User";
$lang['wihlcfg'] = "خيارات النواة";
$lang['wihldb'] = "اعدادات قاعدة البيانات";
$lang['wihlmsg'] = "Message settings";
@@ -303,8 +333,29 @@ $lang['winav7'] = "Administrate";
$lang['winav8'] = "Start / Stop Bot";
$lang['winav9'] = "Update available!";
$lang['winav10'] = "Please use the webinterface only via %s HTTPS%s An encryption is critical to ensure your privacy and security.%sTo be able to use HTTPS your webserver needs to support an SSL connection.";
$lang['winav11'] = "Please enter the unique Client-ID of the admin of the Ranksystem (Other -> admin ID). This is very important in case you lost your login details for the webinterface (to reset these).";
$lang['winxinfo'] = "Command \"nextup\"";
$lang['winxinfodesc'] = "Allows the user on the TS3 server to write the command \"nextup\" to the Ranksystem (query) bot as private textmessage.<br><br>As answer the user will get a defined text message with the needed time for the next rankup.";
$lang['winxmsg1'] = "Message";
$lang['winxmsgdesc1'] = "Define a message, which the user will get as answer at the command \"nextup\".<br><br>Arguments:<br>%1\$s - days to next rankup<br>%2\$s - hours to next rankup<br>%3\$s - minutes to next rankup<br>%4\$s - seconds to next rankup<br>%5\$s - name of the next servergroup<br><br>Example:<br>Your next rank up will be in %1\$s days, %2\$s hours and %3\$s minutes and %4\$s seconds. The next servergroup you will reach is [B]%5\$s[/B].";
$lang['winxmsg2'] = "Message (highest)";
$lang['winxmsgdesc2'] = "Define a message, which the user will get as answer at the command \"nextup\", when the user already reached the highest rank.<br><br>Arguments:<br>%1\$s - days to next rankup<br>%2\$s - hours to next rankup<br>%3\$s - minutes to next rankup<br>%4\$s - seconds to next rankup<br>%5\$s - name of the next servergroup<br><br>Example:<br>You have already reached the highest rank.";
$lang['winxmsg3'] = "Message (excepted)";
$lang['winxmsgdesc3'] = "Define a message, which the user will get as answer at the command \"nextup\", when the user is excepted from the Ranksystem.<br><br>Arguments:<br>%1\$s - days to next rankup<br>%2\$s - hours to next rankup<br>%3\$s - minutes to next rankup<br>%4\$s - seconds to next rankup<br>%5\$s - name of the next servergroup<br><br>Example:<br>You are excepted from the Ranksystem. If you wish to rank contact an admin on the TS3 server.";
$lang['wirtpw1'] = "Sorry Bro, you have forgotten to enter your admin ID inside the webinterface before. There is no way to reset the password!";
$lang['wirtpw2'] = "Admin ID not found on TS3 server. You need to be online with the unique Client ID, which is saved as admin ID.";
$lang['wirtpw3'] = "Your IP address do not match with the IP address of the admin on the TS3 server. Be sure you are with the same IP address online on the TS3 server and also on this page (same protocol IPv4 / IPv6 is also needed).";
$lang['wirtpw4'] = "\nThe password for the webinterface was successfully reset.\nUsername: %s\nPassword: [B]%s[/B]\n\nLogin %shere%s";
$lang['wirtpw5'] = "There was send a TeamSpeak3 privat textmessage to the admin with the new password. Click %s here %s to login.";
$lang['wirtpw6'] = "The password of the webinterface has been successfully reset. Request from IP %s.";
$lang['wirtpw7'] = "Reset Password";
$lang['wirtpw8'] = "Here you can reset the password for the webinterface.";
$lang['wirtpw9'] = "Following things are required to reset the password:";
$lang['wirtpw10'] = "You need to be online at the TeamSpeak3 server.";
$lang['wirtpw11'] = "You need to be online with the unique Client-ID, which is saved as admin ID.";
$lang['wirtpw12'] = "You need to be online with the same IP address on the TeamSpeak3 server as here on this page (also the same protocol IPv4 / IPv6).";
$lang['wiselcld'] = "select clients";
$lang['wiselclddesc'] = "Select the clients by the last known username. For this you only have to start typing.<br>Multiple selections are comma separated, which does the system automatically.<br><br>With the selection you can choose with the next step an action.";
$lang['wiselclddesc'] = "Select the clients by their last known username, unique Client-ID or Client-database-ID.<br>Multiple selections are also possible.<br><br>On bigger databases this selection could slow much. It is recommend to copy and paste the full nickname inside instead of typing it.";
$lang['wishcolas'] = "actual servergroup";
$lang['wishcolasdesc'] = "Show column 'actual servergroup' in stats/list_rankup.php";
$lang['wishcolat'] = "active time";
@@ -313,6 +364,8 @@ $lang['wishcolcld'] = "Client-name";
$lang['wishcolclddesc'] = "Show column 'Client-name' in stats/list_rankup.php";
$lang['wishcoldbid'] = "database-ID";
$lang['wishcoldbiddesc'] = "Show column 'Client-database-ID' in stats/list_rankup.php";
$lang['wishcolgs'] = "actual group since";
$lang['wishcolgsdesc'] = "Show column 'actual group since' in list_rankup.php";
$lang['wishcolit'] = "idle time";
$lang['wishcolitdesc'] = "Show column 'sum idle time' in stats/list_rankup.php";
$lang['wishcolls'] = "last seen";
@@ -333,6 +386,8 @@ $lang['wishexgrp'] = "excepted groups";
$lang['wishexgrpdesc'] = "Show clients in list_rankup.php, which are in the list 'client exception' and shouldn't be conside for the Ranksystem.";
$lang['wishhicld'] = "Clients in highest Level";
$lang['wishhiclddesc'] = "Show clients in list_rankup.php, which reached the highest level in the Ranksystem.";
$lang['wishnav'] = "show site-navigation";
$lang['wishnavdesc'] = "Show the site navigation on 'stats/' page.<br><br>If this option is deactivated on the stats page the site navigation will be hidden.<br>You can then take each site i.e. 'stats/list_rankup.php' and embed this as frame in your existing website or bulletin board.";
$lang['wisupidle'] = "Mode";
$lang['wisupidledesc'] = "There are two modes, as time can be counted and can then apply for a rank increase.<br><br>1) online time: Here the pure online time of the user is taken into account (see column 'sum. online time' in the 'stats/list_rankup.php')<br><br>2) active time: This will be deducted from the online time of a user, the inactive time (idle) (see column 'sum. active time' in the 'stats/list_rankup.php').<br><br>A change of mode with an already longer running database is not recommended, but may work.";
$lang['wisvconf'] = "save";

View File

@@ -24,7 +24,8 @@ $lang['errlogin3'] = "Brute force Schutz: Zu viele Fehlversuche. Für 300 Seku
$lang['error'] = "Fehler ";
$lang['errremgrp'] = "Fehler beim Entfernen des Users mit der eindeutigen Client-ID %s aus der Servergruppe mit der Servergruppen-Datenbank-ID %s!";
$lang['errremdb'] = "Fehler beim Löschen des Users mit der eindeutigen Client-ID %s aus der Ranksystem Datenbank!";
$lang['errsel'] = "Fehler bei der Auswahl der Bedingungen!<br>ausgewählte User: %s<br>Option 'lösche Clients': %s<br>Option 'ges. online Zeit': %s";
$lang['errselusr'] = "Bitte wähle zumindest einen User!";
$lang['errseltime'] = "Bitte trage eine online Zeit zum Hinzufügen ein!";
$lang['errukwn'] = "Unbekannter Fehler aufgetreten!";
$lang['errupcount'] = "Fehler beim Überschreiben der ges. online Zeit %s bei User mit der eindeutigen Client-ID %s!";
$lang['highest'] = "höchster Rang erreicht";
@@ -35,9 +36,11 @@ $lang['insterr1'] = "ACHTUNG: Du versuchst gerade das Ranksystem zu installier
$lang['insterr2'] = "PDO wird benötigt, scheint jedoch nicht installiert zu sein. Installiere <a href=\"http://php.net/manual/de/pdo.installation.php\" target=\"_blank\">PDO</a> und versuche es erneut!";
$lang['insterr3'] = "PHP exec wird benötigt, scheint jedoch deaktiviert zu sein. Bitte aktiviere PHP <a href=\http://php.net/manual/de/function.exec.php\" target=\"_blank\">exec</a> und versuche es erneut!";
$lang['insterr4'] = "Deine PHP Version (%s) ist unter 5.5.0. Aktualisiere dein PHP und versuche es erneut!";
$lang['insterr5'] = "SimpleXML wird benötigt, scheint jedoch nicht verfügbar zu sein. Bitte installiere <a href=\"http://php.net/manual/de/simplexml.installation.php\" target=\"_blank\">simpleXML</a> und versuche es erneut!";
$lang['isntwicfg'] = "Die Datenbankkonfigurationen konnten nicht gespeichert werden! Bitte versehe die 'other/dbconfig.php' mit einem chmod 0777 (für Windows 'Vollzugriff') und versuche es anschließend erneut.";
$lang['isntwicfg2'] = "Konfiguriere Webinterface";
$lang['isntwichm'] = "Schreibrechte fehlen für Verzeichnis \"%s\". Bitte setze auf dieses einen chmod 777 (für Windows 'Vollzugriff') und starte anschließend das Ranksystem erneut.";
$lang['isntwiconf'] = "Öffne das %s um das Ranksystem zu konfigurieren!";
$lang['isntwidbhost'] = "DB Hostadresse:";
$lang['isntwidbhostdesc'] = "Datenbank Server Adresse<br>(IP oder DNS)";
$lang['isntwidbmsg'] = "Datenbank-Fehler: ";
@@ -49,7 +52,7 @@ $lang['isntwidbtype'] = "DB Typ:";
$lang['isntwidbtypedesc'] = "Datenbank Typ<br><br>Der benötigte PDO Treiber muss installiert sein.<br>Für mehr Informationen beachte die Anforderungen auf http://ts-n.net/ranksystem.php";
$lang['isntwidbusr'] = "DB Benutzer:";
$lang['isntwidbusrdesc'] = "Username für die Datenbank";
$lang['isntwidel'] = "Bitte lösche noch die Datei 'install.php' vom Webserver und öffne danach das %s um das Ranksystem zu konfigurieren!";
$lang['isntwidel'] = "Bitte lösche noch die Datei 'install.php' vom Webserver!";
$lang['isntwiusr'] = "Benutzer für das Webinterface wurde erfolgreich erstellt.";
$lang['isntwiusrcr'] = "Erstelle Webinterface-User";
$lang['isntwiusrdesc'] = "Gib einen frei wählbaren Benutzer und ein Passwort für das Webinterface ein. Mit dem Webinterface wird das Ranksystem konfiguriert.";
@@ -57,6 +60,7 @@ $lang['isntwiusrh'] = "Zugang - Webinterface";
$lang['listacsg'] = "aktuelle Servergruppe";
$lang['listcldbid'] = "Client-Datenbank-ID";
$lang['listexcept'] = "Keine, da ausgeschlossen";
$lang['listgrps'] = "aktuelle Gruppe seit";
$lang['listip'] = "IP Adresse";
$lang['listnick'] = "Client-Name";
$lang['listnxsg'] = "nächste Servergruppe";
@@ -68,14 +72,26 @@ $lang['listsumi'] = "ges. idle Zeit";
$lang['listsumo'] = "ges. online Zeit";
$lang['listuid'] = "eindeutige Client-ID";
$lang['login'] = "Login";
$lang['msg0001'] = "eingesetzte Version: %s";
$lang['msg0002'] = "Verfügbare Befehle sind:\n[B]help[/B], [B]info[/B], [B]commands[/B]\t\terhalte Liste der Befehle\n[B]version[/B]\t\t\t\t\t\t\t\t erhalte die aktuelle Version\n[B]nextup[/B]\t\t\t\t\t\t\t\t erhalte die Zeit zur nächsten Rangsteigerung\n[B]restart[/B], [B]reboot[/B]\t\t\t\t\tden Ranksystem bot neu starten\n[B]shutdown[/B], [B]quit[/B], [B]stop[/B]\t\t den Ranksystem Bot stoppen";
$lang['msg0003'] = "Du bist nicht berechtigt diesen Befehl abzusetzen!";
$lang['msg0004'] = "Client %s (%s) fordert Abschaltung.";
$lang['msg0005'] = "cya";
$lang['msg0006'] = "brb";
$lang['msg0007'] = "Client %s (%s) fordert Neustart.";
$lang['nocount'] = "User %s (eindeutige Client-ID: %s; Client-Datenbank-ID %s) ist ein Query-User oder ist mehrmals online (nur erste Verbindung z&auml;hlt) -> diese wird nicht gewertet!";
$lang['noentry'] = "Keine Einträge gefunden..";
$lang['pass'] = "Passwort";
$lang['pass2'] = "Passwort ändern";
$lang['pass3'] = "altes Passwort";
$lang['pass4'] = "neues Passwort";
$lang['pass5'] = "Passwort vergessen?";
$lang['queryname'] = "Erster Botname ist bereits in Verwendung. Versuche zweiten Botnamen zu nutzen...";
$lang['repeat'] = "wiederholen";
$lang['sccrmcld'] = "User mit der eindeutigen Client-ID %s wurde erfolgreich aus der Ranksystem Datenbank gelöscht.";
$lang['sccupcount'] = "User mit der eindeutigen Client-ID %s erhielt erfolgreich ein neue ges. online Zeit von %s.";
$lang['setontime'] = "ges. online Zeit";
$lang['setontimedesc'] = "Gib eine neue ges. online Zeit ein, welche bei den zuvor selektierten Usern hinterlegt werden soll. Mit dieser wird die alte ges. online Zeit überschrieben.<br><br>Die eingegeben ges. online Zeit wird für die nächsten Rangsteigerungen berücksichtigt.";
$lang['sccupcount'] = "Online Zeit von %s Sekunden erfolgreich zu den Benutzer mit der eindeutigen Client-ID (%s) hinzugefügt.";
$lang['setontime'] = "Zeit hinzufügen";
$lang['setontimedesc'] = "Füge eine online Zeit den zuvor ausgewählten Usern hinzu. Jeder User erhält diese Zeit zusätzlich zur bestehenden.<br><br>Die eingegebene online Zeit wird direkt berücksichtigt für die Rangsteigerung und sollte sofort Wirkung zeigen.";
$lang['sgrpadd'] = "Servergruppe %s zu User %s (eindeutige Client-ID: %s; Client-Datenbank-ID %s) hinzugefügt.";
$lang['sgrprerr'] = "Es ist ein Problem mit den Servergruppen des Users %s (eindeutige Client-ID: %s; Client-Datenbank-ID %s) aufgetreten!";
$lang['sgrprm'] = "Servergruppe %s von User %s (eindeutige Client-ID: %s; Client-Datenbank-ID %s) entfernt.";
@@ -128,6 +144,9 @@ $lang['stix0048'] = "nicht genügend Daten ...";
$lang['stix0049'] = "Online Zeit aller User / Monat";
$lang['stix0050'] = "Online Zeit aller User / Woche";
$lang['stix0051'] = "TeamSpeak hat gefailed, daher kein Erstelldatum...";
$lang['stix0052'] = "Andere";
$lang['stix0053'] = "Aktive Zeit (in Tagen)";
$lang['stix0054'] = "Inaktive Zeit (in Tagen)";
$lang['stmy0001'] = "Meine Statistiken";
$lang['stmy0002'] = "Rank";
$lang['stmy0003'] = "Datenbank ID:";
@@ -200,6 +219,7 @@ $lang['stnv0039'] = "Zeigt nur Clients an, welche nicht online sind";
$lang['stnv0040'] = "Zeigt nur Clients an, welche sich in einer bestimmten Servergruppe befinden. Stellt das aktuelle Level (Rang) dar.<br>Ersetze <i>GROUPID</i> mi der gewünschten Servergruppen ID.";
$lang['stnv0041'] = "Zeigt nur Clients an, welche dem ausgewählten 'zuletzt gesehen' Zeitraum entsprechen.<br>Ersetze <i>OPERATOR</i> mit '<' oder '>' oder '=' oder '!='.<br>Und ersetze <i>TIME</i> mit einem Zeitstempel (Timestamp) oder Datum mit im Format 'Y-m-d H-i' (Beispiel: 2016-06-18 20-25).<br>Vollständiges Beispiel: filter:lastseen:<:2016-06-18 20-25:";
$lang['stnv0042'] = "Zeigt nur Clients an, welche sich im definierten Land befinden.<br>Ersetze <i>TS3-COUNTRY-CODE</i> mit dem gewünschten Land.<br>Für eine Liste der gültigen Ländercodes, bitte nach dem 'ISO 3166-1 alpha-2' googlen.";
$lang['stnv0043'] = "verbinde zum TS3";
$lang['stri0001'] = "Ranksystem Informationen";
$lang['stri0002'] = "Was ist das Ranksystem?";
$lang['stri0003'] = "Ein TS3 Bot, der automatisch Servergruppen an User für online Zeit oder aktive Zeit auf einem TeamSpeak 3 Server zuweist. Weiterhin sammelt es diverse Statistiken und stellt diese hier dar.";
@@ -240,7 +260,12 @@ $lang['upuserboost'] = "User %s (eindeutige Client-ID: %s; Client-Datenbank-ID
$lang['upusrerr'] = "Die eindeutige Client-ID %s konnte auf dem TeamSpeak nicht erreicht werden!";
$lang['upusrinf'] = "User %s wurde erfolgreich benachrichtigt.";
$lang['user'] = "Benutzername";
$lang['wi'] = "Webinterface";
$lang['wiaction'] = "ausführen";
$lang['wiadmhide'] = "unterdrücke ausgeschl. User";
$lang['wiadmhidedesc'] = "Hiermit können vom Ranksystem ausgeschlossene User in der folgenden Auswahl unterdrückt werden.";
$lang['wiadmuuid'] = "admin ID";
$lang['wiadmuuiddesc'] = "Gebe hier die eindeutige Client-ID ein; als Administrator des Ranksystems<br><br>Diese wird benötigt um das Passwort des Webinterfaces resetten zu können.<br><br>Wenn hier keine eindeutige Client-ID angegeben ist, ist es nicht möglich das Passwort im Bedarfsfall zurückzusetzen.";
$lang['wiboost'] = "Boost";
$lang['wiboostdesc'] = "Gebe einen User auf dem TeamSpeak Server eine Servergruppe (ist manuell zu erstellen), welche hier für das Ranksystem als Boost Gruppe deklariert werden kann. Definiere hierfür noch einen Faktor (z.B. 2x) und eine Zeit, wie lange der Boost gewährt werden soll.<br>Umso höher der Faktor, umso schneller erreicht ein User den nächst höheren Rang.<br>Ist die Zeit abgelaufen, so wird dem betroffenen User die Servergruppe automatisch entfernt. Die Zeit beginnt in dem Moment zu laufen, in dem der User die Servergruppe erhält.<br><br>Servergruppen-ID=> Faktor=> Zeit (in Sekunden)<br><br>Beispiel:<br>12=>2=>6000,13=>3=>2500,14=>5=>600<br><br>Hier werden den Usern in der Servergruppe mit der ID 12 dem Faktor 2 für 6000 Sekunden, den Usern in der Servergruppe 13 dem Faktor 3 für 2500 Sekunden gewährt, und so weiter...";
$lang['wibot1'] = "Der Ranksystem Bot sollte gestoppt sein. Für mehr Informationen bitte die Log unterhalb prüfen!";
@@ -255,6 +280,10 @@ $lang['wibot9'] = "Bitte fülle alle erforderlichen Felder aus, bevor der Ran
$lang['wichdbid'] = "Client-Datenbank-ID Reset";
$lang['wichdbiddesc'] = "Setzt die online Zeit eines Users zurück, wenn sich seine TeamSpeak Client-Datenbank-ID ändert.<br><br>Beispiel:<br>Wird ein Client vom TeamSpeak Server gelöscht, so erhält er mit der nächsten Verbindung zum Server eine neue Client-Datenbank-ID.";
$lang['wiconferr'] = "Es ist ein Fehler in der Konfiguration des Ranksystems. Bitte prüfe im Webinterface die Kern-Einstellungen auf Richtigkeit. Besonders sollte die Einstellung 'Rangsteigerung' geprüft werden!";
$lang['wichpw1'] = "Das alte Passwort ist falsch! Versuche es erneut.";
$lang['wichpw2'] = "Die neuen Passwörter stimmen nicht überein. Versuche es erneut.";
$lang['wichpw3'] = "Das Passwort für das Webinterface wurde erfolgreich geändert. Anforderung von IP %s.";
$lang['wichpw4'] = "Passwort ändern";
$lang['widaform'] = "Datumsformat";
$lang['widaformdesc'] = "Gebe ein Datumsformat zur Anzeige vor.<br><br>Beispiel:<br>%a Tage, %h Std., %i Min., %s Sek.";
$lang['widbcfgsuc'] = "Datenbank Einstellungen erfolgreich gespeichert.";
@@ -276,6 +305,7 @@ $lang['wiexuiddesc'] = "Eine mit Komma getrennte Liste von eindeutigen Client-I
$lang['wigrptime'] = "Rangsteigerung Definition";
$lang['wigrptimedesc'] = "Definiere hier, nach welcher Zeit ein User automatisch in eine vorgegebene Servergruppe gelangen soll.<br><br>Zeit (Sekunden)=>Servergruppen ID<br><br>Entscheidend hierfür ist die 'online Zeit' bzw. die 'aktive Zeit' des Users, je nach Einstellung des Modus.<br><br>Jeder Eintrag ist vom nächsten durch ein Komma zu separieren.<br><br>Die Zeiten sind kummulativ zu hinterlegen.<br><br>Beispiel:<br>60=>9,120=>10,180=>11<br><br>Hier werden die User nach 60 Sekunden in die Servergruppe 9, nach wiederum 60 Sekunden in die Servergruppe 10, usw..., hinzugefügt.";
$lang['wihladm'] = "List Rankup (Admin-Modus)";
$lang['wihladm1'] = "Zeit zu User hinzufügen";
$lang['wihlcfg'] = "Kern-Einstellungen";
$lang['wihldb'] = "Datenbank";
$lang['wihlmsg'] = "Benachrichtigungen";
@@ -303,8 +333,30 @@ $lang['winav7'] = "Administration";
$lang['winav8'] = "Start / Stop Bot";
$lang['winav9'] = "Update verfügbar!";
$lang['winav10'] = "Bitte nutze das Webinterface nur via %s HTTPS%s Eine Verschlüsselung ist wichtig um die Privatsphäre und Sicherheit zu gewährleisten.%sUm HTTPS nutzen zu können, muss der Webserver eine SSL Verbindung unterstützen.";
$lang['wiselcld'] = "selektiere User";
$lang['wiselclddesc'] = "Wähle User anhand des letzt bekannten Usernamen aus. Hierfür einfach losschreiben.<br>Mehrfachselektionen sind kommagetrennt möglich, welche automatisch vorgenommen werden.<br><br>Mit den selektierten Usern kann im nächsten Schritt eine Aktion gewählt werden.";
$lang['winav11'] = "Bitte hinterlege die eindeutige Client-ID des Admins des Ranksystems (Anderes -> admin ID). Dies ist sehr wichtig im Falle des Verlustes der Logindaten für das Webinterface.";
$lang['winxinfo'] = "Befehl \"nextup\"";
$lang['winxinfodesc'] = "Erlaubt einen User auf dem TeamSpeak3 Server den Befehl \"nextup\" dem Ranksystem (Query) Bot als private Textnachricht zu schreiben.<br><br>Als Antwort erhält der User eine Nachricht mit der benötigten Zeit zur nächsten Rangsteigerung.<br><br>Unter folgender URL ein Beispiel zum Setzen einer Verlinkung mit \"client://\" für den Ranksystem (Query) Bot, da nicht unbedingt für alle die Query-User sichtbar sind:<br>http://ts-n.net/lexicon.php?showid=98#lexindex<br><br>Dieser kann dann mit dem [URL] Tag in einem Channel als Link eingefügt werden.<br>http://ts-n.net/lexicon.php?showid=97#lexindex";
$lang['winxmsg1'] = "Nachricht";
$lang['winxmsgdesc1'] = "Definiere eine Nachricht, welche ein User als Antwort auf den Befehl \"nextup\" erhält.<br><br>Argumente:<br>%1\$s - Tage zur nächsten Rangsteigerung<br>%2\$s - Stunden zur nächsten Rangsteigerung<br>%3\$s - Minuten zur nächsten Rangsteigerung<br>%4\$s - Sekunden zur nächsten Rangsteigerung<br>%5\$s - Name der nächsten Servergruppe (Rank)<br><br>Beispiel:<br>Deine nächste Rangsteigerung ist in %1\$s Tagen, %2\$s Stunden, %3\$s Minuten und %4\$s Sekunden. Die nächste Servergruppe, die du erreichst ist [B]%5\$s[/B].";
$lang['winxmsg2'] = "Nachricht (höchste)";
$lang['winxmsgdesc2'] = "Definiere eine Nachricht, welche ein User als Antwort auf den Befehl \"nextup\" erhält, wenn der User bereits im höchsten Rang ist.<br><br>Argumente:<br>%1\$s - Tage zur nächsten Rangsteigerung<br>%2\$s - Stunden zur nächsten Rangsteigerung<br>%3\$s - Minuten zur nächsten Rangsteigerung<br>%4\$s - Sekunden zur nächsten Rangsteigerung<br>%5\$s - Name der nächsten Servergruppe (Rank)<br><br>Beispiel:<br>Du hast bereits den höchsten Rang erreicht.";
$lang['winxmsg3'] = "Nachricht (Ausnahme)";
$lang['winxmsgdesc3'] = "Definiere eine Nachricht, welche ein User als Antwort auf den Befehl \"nextup\" erhält, wemm der User vom Ranksystem ausgeschlossen ist.<br><br>Argumente:<br>%1\$s - Tage zur nächsten Rangsteigerung<br>%2\$s - Stunden zur nächsten Rangsteigerung<br>%3\$s - Minuten zur nächsten Rangsteigerung<br>%4\$s - Sekunden zur nächsten Rangsteigerung<br>%5\$s - Name der nächsten Servergruppe (Rank)<br><br>Beispiel:<br>Du bist vom Ranksystem ausgeschlossen. Wenn du eine Teilnahme am Ranksystem wünschst, kontaktiere einen Admin auf dem TS3 Server.";
$lang['wirtpw1'] = "Sorry Bro, du hast vergessen die admin ID zuvor im Webinterface zu hinterlegen. Nun besteht keine Möglichkeit das Passwort zurückzusetzen!";
$lang['wirtpw2'] = "Admin ID konnte auf dem TS3 Server nicht gefunden werden. Du musst auf dem TS3 mit der hinterlegten admin ID online sein.";
$lang['wirtpw3'] = "Deine IP Adresse stimmt nicht mit der IP des Admins auf dem TS3 überein. Bitte stelle sicher, dass du die gleiche IP Adresse auf dem TS3 Server nutzt wie auch hier auf dieser Seite (und auch das gleiche Protokoll IPv4 / IPv6).";
$lang['wirtpw4'] = "\nDas Passwort für das Webinterface wurde erfolgreich zurückgesetzt.\nUsername: %s\nPasswort: [B]%s[/B]\n\n%sHier%s einloggen.";
$lang['wirtpw5'] = "Es wurde eine private Nachricht mit dem neuen Passwort an den Admin auf dem TS3 Server geschickt.";
$lang['wirtpw6'] = "Das Passwort für das Webinterface wurde erfolgreich zurückgesetzt. Anforderung von IP %s.";
$lang['wirtpw7'] = "Password zurücksetzen";
$lang['wirtpw8'] = "Hier kannst du das Passwort für das Webinterface zurücksetzen.";
$lang['wirtpw9'] = "Folgende Dinge werden für den Reset benötigt:";
$lang['wirtpw10'] = "Du musst mit dem TeamSpeak3 Server verbunden sein.";
$lang['wirtpw11'] = "Du musst mit der eindeutigen Client-ID online sein, welche als admin ID hinterlegt wurde.";
$lang['wirtpw12'] = "Du musst mit der gleichen IP Adresse mit dem TeamSpeak3 server verbunden sein, welche auch hier auf dieser Seite genutzt wird (und auch das gleiche Protokoll IPv4 / IPv6).";
$lang['wiselcld'] = "wähle User";
$lang['wiselclddesc'] = "Select the clients by their last known username, unique Client-ID or Client-database-ID.<br>Multiple selections are also possible.<br><br>On bigger databases this selection could slow much. It is recommend to copy and paste the full nickname inside instead of typing it.";
$lang['wiselclddesc'] = "Wähle User anhand des letzt bekannten Nicknamen, der eindeutigen Client-ID oder der Client-Datenbank-ID.<br>Mehrfachselektionen sind ebenso möglich.<br><br>Größere Datenbanken können die Suche stark verlangsamen. Es wird empfohlen dann die Suche per copy and paste zu nutzen an Stelle der manuellen Eingabe.";
$lang['wishcolas'] = "aktuelle Servergruppe";
$lang['wishcolasdesc'] = "Zeige Spalte 'aktuelle Servergruppe' in der stats/list_rankup.php";
$lang['wishcolat'] = "aktive Zeit";
@@ -313,6 +365,8 @@ $lang['wishcolcld'] = "Client-Name";
$lang['wishcolclddesc'] = "Zeige Spalte 'Client-Name' in der stats/list_rankup.php";
$lang['wishcoldbid'] = "Datenbank-ID";
$lang['wishcoldbiddesc'] = "Zeige Spalte 'Client-Datenbank-ID' in der stats/list_rankup.php";
$lang['wishcolgs'] = "aktuelle Gruppe seit";
$lang['wishcolgsdesc'] = "Zeige Spalte 'aktuelle Gruppe seit' in der stats/list_rankup.php";
$lang['wishcolit'] = "idle Zeit";
$lang['wishcolitdesc'] = "Zeige Spalte 'ges. idle Zeit' in der stats/list_rankup.php";
$lang['wishcolls'] = "zuletzt gesehen";
@@ -333,6 +387,8 @@ $lang['wishexgrp'] = "ausgeschl. Servergruppen";
$lang['wishexgrpdesc'] = "Zeige User in der list_rankup.php, welche über die 'Servergruppen-Ausnahmen' nicht am Ranksystem teilnehmen.";
$lang['wishhicld'] = "User in höchestem Rang";
$lang['wishhiclddesc'] = "Zeige User in der list_rankup.php, welche den höchsten Rang erreicht haben.";
$lang['wishnav'] = "Zeige Seitennavigation";
$lang['wishnavdesc'] = "Zeige die Seitennavigation auf der 'stats/' Seite.<br><br>Wenn diese Option deaktiviert ist, wird die Seitennavigation auf der Stats Seite ausgeblendet.<br>So kannst du jede einzelne Seite z.B. die 'stats/list_rankup.php' besser als Frame in eine bestehende Website bzw. Forum einbinden.";
$lang['wisupidle'] = "Modus";
$lang['wisupidledesc'] = "Es gibt zwei Ausprägungen, wie Zeiten gewertet werden können und dann für eine Rangsteigerung herangezogen werden.<br><br>1) online Zeit: Hier wird die reine online Zeit des Users beachtet (siehe Spalte 'ges. online Zeit' in der stats/list_rankup.php).<br><br>2) aktive Zeit: Hier wird von der online Zeit eines Users noch die inaktive Zeit (Idle) abgezogen (siehe Spalte 'ges. aktive Zeit' in der stats/list_rankup.php).<br><br><br>Eine Umstellung des Modus mit einer bereits länger laufenden Datenbank wird nicht empfohlen, kann aber funktionieren.";
$lang['wisvconf'] = "speichern";

View File

@@ -24,7 +24,8 @@ $lang['errlogin3'] = "Brute force protection: To much misstakes. Banned for 30
$lang['error'] = "Error ";
$lang['errremgrp'] = "Error while removing user with unique Client-ID %s out of the servergroup with servergroup-database-ID %s!";
$lang['errremdb'] = "Error while removing user with unique Client-ID %s out of the Ranksystem database!";
$lang['errsel'] = "Error while choosing the selections with<br>selected client: %s<br>option 'delete clients': %s<br>option 'sum. online time': %s";
$lang['errselusr'] = "Please choose at least one user!";
$lang['errseltime'] = "Please enter an online time to add!";
$lang['errukwn'] = "An unknown error has occurred!";
$lang['errupcount'] = "Error while renewing the summary online time of %s by user with the unique Client-ID %s";
$lang['highest'] = "highest rank reached";
@@ -35,9 +36,11 @@ $lang['insterr1'] = "ATTENTION: You are trying to install the Ranksystem, but
$lang['insterr2'] = "PDO is needed but seems not installed. Install <a href=\"http://php.net/manual/de/pdo.installation.php\" target=\"_blank\">PDO</a> and try it again!";
$lang['insterr3'] = "PHP exec function need to be enabled but seems to be disabled. Please enable the PHP <a href=\http://php.net/manual/de/function.exec.php\" target=\"_blank\">exec</a> function and try it again!";
$lang['insterr4'] = "Your PHP version (%s) is below 5.5.0. Update your PHP and try it again!";
$lang['insterr5'] = "SimpleXML is needed but seems not available. Install <a href=\"http://php.net/manual/en/simplexml.installation.php\" target=\"_blank\">simpleXML</a> and try it again!";
$lang['isntwicfg'] = "Can't save the database configuration! Please edit the 'other/dbconfig.php' with a chmod 0777 (on windows 'full access') and try again after.";
$lang['isntwicfg2'] = "Configurate Webinterface";
$lang['isntwichm'] = "Write Permissions failed on folder \"%s\". Please give them a chmod 777 (on windows 'full access') and try to start the Ranksystem again.";
$lang['isntwiconf'] = "Open the %s to configure the Ranksystem!";
$lang['isntwidbhost'] = "DB Hostaddress:";
$lang['isntwidbhostdesc'] = "Database server address<br>(IP or DNS)";
$lang['isntwidbmsg'] = "Database error: ";
@@ -49,7 +52,7 @@ $lang['isntwidbtype'] = "DB Type:";
$lang['isntwidbtypedesc'] = "Database type<br><br>You have to install the needed PDO Driver.<br>For more informations have look at the requirements on http://ts-n.net/ranksystem.php";
$lang['isntwidbusr'] = "DB User:";
$lang['isntwidbusrdesc'] = "User to access the database";
$lang['isntwidel'] = "Please delete the file 'install.php' from your webserver and open the %s to configure the Ranksystem!";
$lang['isntwidel'] = "Please delete the file 'install.php' from your webserver";
$lang['isntwiusr'] = "User for the webinterface successfully created.";
$lang['isntwiusrcr'] = "Create Webinterface-User";
$lang['isntwiusrdesc'] = "Enter a username and password for access the webinterface. With the webinterface you can configurate the ranksytem.";
@@ -57,6 +60,7 @@ $lang['isntwiusrh'] = "Access - Webinterface";
$lang['listacsg'] = "actual servergroup";
$lang['listcldbid'] = "Client-database-ID";
$lang['listexcept'] = "No, cause excepted";
$lang['listgrps'] = "actual group since";
$lang['listip'] = "IP address";
$lang['listnick'] = "Clientname";
$lang['listnxsg'] = "next servergroup";
@@ -68,14 +72,26 @@ $lang['listsumi'] = "sum. idle time";
$lang['listsumo'] = "sum. online time";
$lang['listuid'] = "unique Client-ID";
$lang['login'] = "Login";
$lang['msg0001'] = "running version: %s";
$lang['msg0002'] = "Valid commands are:\n[B]help[/B], [B]info[/B], [B]commands[/B]\t\tget a command list\n[B]version[/B]\t\t\t\t\t\t\t\t get the Ranksystem version\n[B]nextup[/B]\t\t\t\t\t\t\t\t get the time to the next rank up\n[B]restart[/B], [B]reboot[/B]\t\t\t\t\trestart the Ranksystem bot\n[B]shutdown[/B], [B]quit[/B], [B]stop[/B]\t\t stop the Ranksystem bot";
$lang['msg0003'] = "You are not eligible for this command!";
$lang['msg0004'] = "Client %s (%s) requests shutdown.";
$lang['msg0005'] = "cya";
$lang['msg0006'] = "brb";
$lang['msg0007'] = "Client %s (%s) requests restart.";
$lang['nocount'] = "User %s (unique Client-ID: %s; Client-database-ID %s) is a query-user or is several times online (only first connection counts) -> this will not count!";
$lang['noentry'] = "No entries found..";
$lang['pass'] = "Password";
$lang['pass2'] = "Change password";
$lang['pass3'] = "old password";
$lang['pass4'] = "new password";
$lang['pass5'] = "Forgot Password?";
$lang['queryname'] = "First Botname already in use. Trying with second Botname...";
$lang['repeat'] = "repeat";
$lang['sccrmcld'] = "User with unique Client-ID %s successfull removed from the Ranksystem database.";
$lang['sccupcount'] = "User with the unique Client-ID %s successfull overwritten with a summary online time of %s.";
$lang['setontime'] = "sum. online time";
$lang['setontimedesc'] = "Enter a new summary online time, which should be set to the previous selected clients. With this the old summary online gets overwritten.<br><br>The entered summary online time will be considered for the rank up.";
$lang['sccupcount'] = "Added successfully an online time of %s seconds to the users with the unique Client-IDs (%s)";
$lang['setontime'] = "add time";
$lang['setontimedesc'] = "Add online time to the previous selected clients. Each user will get this time additional to their old online time.<br><br>The entered online time will be considered for the rank up and should take effect immediately.";
$lang['sgrpadd'] = "Grant servergroup %s to user %s (unique Client-ID: %s; Client-database-ID %s).";
$lang['sgrprerr'] = "It happened a problem with the servergroup of the user %s (unique Client-ID: %s; Client-database-ID %s)!";
$lang['sgrprm'] = "Removed servergroup %s from user %s (unique Client-ID: %s; Client-database-ID %s).";
@@ -128,6 +144,9 @@ $lang['stix0048'] = "not enough data yet...";
$lang['stix0049'] = "Online time of all user / month";
$lang['stix0050'] = "Online time of all user / week";
$lang['stix0051'] = "TeamSpeak has failed, so no creation date...";
$lang['stix0052'] = "others";
$lang['stix0053'] = "Active Time (in Days)";
$lang['stix0054'] = "Inactive Time (in Days)";
$lang['stmy0001'] = "My statistics";
$lang['stmy0002'] = "Rank";
$lang['stmy0003'] = "Database ID:";
@@ -200,6 +219,7 @@ $lang['stnv0039'] = "Show only clients, which are not online.";
$lang['stnv0040'] = "Show only clients, which are in defined group. Represent the actuel rank/level.<br>Replace <i>GROUPID</i> with the wished servergroup ID.";
$lang['stnv0041'] = "Show only clients, which are selected by lastseen.<br>Replace <i>OPERATOR</i> with '<' or '>' or '=' or '!='.<br>And replace <i>TIME</i> with a timestamp or date with format 'Y-m-d H-i' (example: 2016-06-18 20-25).<br>Full example: filter:lastseen:<:2016-06-18 20-25:";
$lang['stnv0042'] = "Show only clients, which are from defined country.<br>Replace <i>TS3-COUNTRY-CODE</i> with the wished country.<br>For list of codes google for ISO 3166-1 alpha-2";
$lang['stnv0043'] = "connect TS3";
$lang['stri0001'] = "Ranksystem information";
$lang['stri0002'] = "What is the Ranksystem?";
$lang['stri0003'] = "A TS3 Bot, which automatically grant ranks (servergroups) to user on a TeamSpeak 3 Server for online time or online activity. It also gathers informations and statistics about the user and displays the result on this site.";
@@ -240,7 +260,12 @@ $lang['upuserboost'] = "User %s (unique Client-ID: %s; Client-database-ID %s) g
$lang['upusrerr'] = "The unique Client-ID %s couldn't reached on the TeamSpeak!";
$lang['upusrinf'] = "User %s was successfully informed.";
$lang['user'] = "Username";
$lang['wi'] = "Webinterface";
$lang['wiaction'] = "action";
$lang['wiadmhide'] = "hide excepted clients";
$lang['wiadmhidedesc'] = "To hide excepted user in the following selection";
$lang['wiadmuuid'] = "admin ID";
$lang['wiadmuuiddesc'] = "Enter here your unique Client-ID; as the administrator of the Ranksystem.<br><br>This is required to reset the password of the webinterface.<br><br>Is there no unique Client-ID address defined, it is not possible to reset the password!";
$lang['wiboost'] = "boost";
$lang['wiboostdesc'] = "Give an user on your TeamSpeak server a servergroup (have to be created manually), which you can declare here as boost group. Define also a factor which should be used (for example 2x) and a time, how long the boost should be rated.<br>The higher the factor, the faster an user reaches the next higher rank.<br>Is the time expired, the boost servergroup get automatically removed from the concerned user. The time starts running as soon as the user gets the servergroup.<br><br>servergroup ID => factor => time (in seconds)<br><br>Each entry have to separate from next with a comma.<br><br>Example:<br>12=>2=>6000,13=>3=>2500,14=>5=>600<br><br>On this an user in servergroup 12 get the factor 2 for the next 6000 seconds, an user in servergroup 13 get the factor 3 for 2500 seconds, and so on...";
$lang['wibot1'] = "Ranksystem Bot should be stopped. Check the log below for more information!";
@@ -255,6 +280,10 @@ $lang['wibot9'] = "Fill out all mandatory fields before starting the Ranksyst
$lang['wichdbid'] = "Client-database-ID reset";
$lang['wichdbiddesc'] = "Reset the online time of an user, if his TeamSpeak Client-database-ID changed.<br><br>Example:<br>If a clients gets removed from the TeamSpeak server, it gets a new Client-database-ID with the next connect to the server.";
$lang['wiconferr'] = "There is an error in the configuration of the Ranksystem. Please go to the webinterface and correct the Core Settings. Especially check the config 'rank up'!";
$lang['wichpw1'] = "Your old password is wrong. Please try again";
$lang['wichpw2'] = "The new passwords dismatch. Please try again.";
$lang['wichpw3'] = "The password of the webinterface has been successfully changed. Request from IP %s.";
$lang['wichpw4'] = "Change Password";
$lang['widaform'] = "Date format";
$lang['widaformdesc'] = "Choose the showing date format.<br><br>Example:<br>%a days, %h hours, %i mins, %s secs";
$lang['widbcfgsuc'] = "Database configurations saved successfully.";
@@ -276,6 +305,7 @@ $lang['wiexuiddesc'] = "A comma seperated list of unique Client-IDs, which shou
$lang['wigrptime'] = "rank up definition";
$lang['wigrptimedesc'] = "Define here after which time a user should get automatically a predefined servergroup.<br><br>time (seconds)=>servergroup ID<br><br>Important for this is the 'online time' or the 'active time' of an user, depending on setting of the mode.<br><br>Each entry have to separate from next with a comma.<br><br>The time must be entered cumulative<br><br>Example:<br>60=>9,120=>10,180=>11<br><br>On this a user get after 60 seconds the servergroup 9, in turn after 60 seconds the servergroup 10, and so on...";
$lang['wihladm'] = "List Rankup (Admin-Mode)";
$lang['wihladm1'] = "Add online Time to User";
$lang['wihlcfg'] = "Core settings";
$lang['wihldb'] = "Database settings";
$lang['wihlmsg'] = "Message settings";
@@ -303,8 +333,29 @@ $lang['winav7'] = "Administrate";
$lang['winav8'] = "Start / Stop Bot";
$lang['winav9'] = "Update available!";
$lang['winav10'] = "Please use the webinterface only via %s HTTPS%s An encryption is critical to ensure your privacy and security.%sTo be able to use HTTPS your webserver needs to support an SSL connection.";
$lang['winav11'] = "Please enter the unique Client-ID of the admin of the Ranksystem (Other -> admin ID). This is very important in case you lost your login details for the webinterface (to reset these).";
$lang['winxinfo'] = "Command \"nextup\"";
$lang['winxinfodesc'] = "Allows the user on the TS3 server to write the command \"nextup\" to the Ranksystem (query) bot as private textmessage.<br><br>As answer the user will get a defined text message with the needed time for the next rankup.";
$lang['winxmsg1'] = "Message";
$lang['winxmsgdesc1'] = "Define a message, which the user will get as answer at the command \"nextup\".<br><br>Arguments:<br>%1\$s - days to next rankup<br>%2\$s - hours to next rankup<br>%3\$s - minutes to next rankup<br>%4\$s - seconds to next rankup<br>%5\$s - name of the next servergroup<br><br>Example:<br>Your next rank up will be in %1\$s days, %2\$s hours and %3\$s minutes and %4\$s seconds. The next servergroup you will reach is [B]%5\$s[/B].";
$lang['winxmsg2'] = "Message (highest)";
$lang['winxmsgdesc2'] = "Define a message, which the user will get as answer at the command \"nextup\", when the user already reached the highest rank.<br><br>Arguments:<br>%1\$s - days to next rankup<br>%2\$s - hours to next rankup<br>%3\$s - minutes to next rankup<br>%4\$s - seconds to next rankup<br>%5\$s - name of the next servergroup<br><br>Example:<br>You have already reached the highest rank.";
$lang['winxmsg3'] = "Message (excepted)";
$lang['winxmsgdesc3'] = "Define a message, which the user will get as answer at the command \"nextup\", when the user is excepted from the Ranksystem.<br><br>Arguments:<br>%1\$s - days to next rankup<br>%2\$s - hours to next rankup<br>%3\$s - minutes to next rankup<br>%4\$s - seconds to next rankup<br>%5\$s - name of the next servergroup<br><br>Example:<br>You are excepted from the Ranksystem. If you wish to rank contact an admin on the TS3 server.";
$lang['wirtpw1'] = "Sorry Bro, you have forgotten to enter your admin ID inside the webinterface before. There is no way to reset the password!";
$lang['wirtpw2'] = "Admin ID not found on TS3 server. You need to be online with the unique Client ID, which is saved as admin ID.";
$lang['wirtpw3'] = "Your IP address do not match with the IP address of the admin on the TS3 server. Be sure you are with the same IP address online on the TS3 server and also on this page (same protocol IPv4 / IPv6 is also needed).";
$lang['wirtpw4'] = "\nThe password for the webinterface was successfully reset.\nUsername: %s\nPassword: [B]%s[/B]\n\nLogin %shere%s";
$lang['wirtpw5'] = "There was send a TeamSpeak3 privat textmessage to the admin with the new password. Click %s here %s to login.";
$lang['wirtpw6'] = "The password of the webinterface has been successfully reset. Request from IP %s.";
$lang['wirtpw7'] = "Reset Password";
$lang['wirtpw8'] = "Here you can reset the password for the webinterface.";
$lang['wirtpw9'] = "Following things are required to reset the password:";
$lang['wirtpw10'] = "You need to be online at the TeamSpeak3 server.";
$lang['wirtpw11'] = "You need to be online with the unique Client-ID, which is saved as admin ID.";
$lang['wirtpw12'] = "You need to be online with the same IP address on the TeamSpeak3 server as here on this page (also the same protocol IPv4 / IPv6).";
$lang['wiselcld'] = "select clients";
$lang['wiselclddesc'] = "Select the clients by the last known username. For this you only have to start typing.<br>Multiple selections are comma separated, which does the system automatically.<br><br>With the selection you can choose with the next step an action.";
$lang['wiselclddesc'] = "Select the clients by their last known username, unique Client-ID or Client-database-ID.<br>Multiple selections are also possible.<br><br>On bigger databases this selection could slow much. It is recommend to copy and paste the full nickname inside instead of typing it.";
$lang['wishcolas'] = "actual servergroup";
$lang['wishcolasdesc'] = "Show column 'actual servergroup' in list_rankup.php";
$lang['wishcolat'] = "active time";
@@ -313,6 +364,8 @@ $lang['wishcolcld'] = "Client-name";
$lang['wishcolclddesc'] = "Show column 'Client-name' in list_rankup.php";
$lang['wishcoldbid'] = "database-ID";
$lang['wishcoldbiddesc'] = "Show column 'Client-database-ID' in list_rankup.php";
$lang['wishcolgs'] = "actual group since";
$lang['wishcolgsdesc'] = "Show column 'actual group since' in list_rankup.php";
$lang['wishcolit'] = "idle time";
$lang['wishcolitdesc'] = "Show column 'sum idle time' in list_rankup.php";
$lang['wishcolls'] = "last seen";
@@ -333,6 +386,8 @@ $lang['wishexgrp'] = "excepted groups";
$lang['wishexgrpdesc'] = "Show clients in list_rankup.php, which are in the list 'client exception' and shouldn't be conside for the Ranksystem.";
$lang['wishhicld'] = "Clients in highest Level";
$lang['wishhiclddesc'] = "Show clients in list_rankup.php, which reached the highest level in the Ranksystem.";
$lang['wishnav'] = "show site-navigation";
$lang['wishnavdesc'] = "Show the site navigation on 'stats/' page.<br><br>If this option is deactivated on the stats page the site navigation will be hidden.<br>You can then take each site i.e. 'stats/list_rankup.php' and embed this as frame in your existing website or bulletin board.";
$lang['wisupidle'] = "Mode";
$lang['wisupidledesc'] = "There are two modes, as time can be counted and can then apply for a rank increase.<br><br>1) online time: Here the pure online time of the user is taken into account (see column 'sum. online time' in the 'stats/list_rankup.php')<br><br>2) active time: This will be deducted from the online time of a user, the inactive time (idle) (see column 'sum. active time' in the 'stats/list_rankup.php').<br><br>A change of mode with an already longer running database is not recommended, but may work.";
$lang['wisvconf'] = "save";

View File

@@ -24,20 +24,23 @@ $lang['errlogin3'] = "Protezione attacchi brute force: Hai commesso troppi err
$lang['error'] = "Errore ";
$lang['errremgrp'] = "Errore nella rimozione dell'utente: %s (Client-ID) Dal server Group con il servergroup-database-ID: %s!";
$lang['errremdb'] = "Errore nella rimozione dell'utente: %s (Client-ID) dal database del RankSystem!";
$lang['errsel'] = "Errore nella selezione degli <br>Utenti: %s<br>opzione 'cancella utenti': %s<br>opzione 'somma del tempo online': %s";
$lang['errselusr'] = "Seleziona almeno un utente!";
$lang['errseltime'] = "Inserire tempo online da aggiungere!";
$lang['errukwn'] = "È stato riscontrato un errore sconosciuto!";
$lang['errupcount'] = "Errore nel rinnovo della somma del tempo online dellutente %s con lId unico %s";
$lang['highest'] = "È stato raggiunto il rank massimo";
$lang['install'] = "Installazione";
$lang['instdb'] = "Installa il database:";
$lang['instdbsuc'] = "Il database %s è stato creato con successo.";
$lang['insterr1'] = "ATTENTION: You are trying to install the Ranksystem, but there is already existing a database with the name \"%s\".<br>Due installation this database will be dropped!<br>Be sure you want this. If not, please choose an other database name.";
$lang['insterr2'] = "PDO is needed but seems not installed. Install <a href=\"http://php.net/manual/de/pdo.installation.php\" target=\"_blank\">PDO</a> and try it again!";
$lang['insterr3'] = "PHP exec function need to be enabled but seems to be disabled. Please enable the PHP <a href=\http://php.net/manual/de/function.exec.php\" target=\"_blank\">exec</a> function and try it again!";
$lang['insterr4'] = "Your PHP version (%s) is below 5.5.0. Update your PHP and try it again!";
$lang['insterr1'] = "ATTENZIONE: Il database selezionato per il Ranksystem esiste già \"%s\".<br>Durante l'installazione il database verrà resettato<br>Se non sei sicuro che sia il database corretto usa un database differente.";
$lang['insterr2'] = "PDO è necessario ma non sembra essere installato. Install <a href=\"http://php.net/manual/de/pdo.installation.php\" target=\"_blank\">PDO</a> and try it again!";
$lang['insterr3'] = "La funzione PHP exec deve essere abilitata, ma sembra non lo sia. Per favore, abilita la funzione PHP <a href=\http://php.net/manual/de/function.exec.php\" target=\"_blank\">exec</a> e prova ancora!";
$lang['insterr4'] = "La tua versione PHP (%s) is antecedente alla 5.5.0. Aggiorna la tua PHP e prova ancora!";
$lang['insterr5'] = "SimpleXML è richiesto, ma non sembra disponibile. Installa <a href=\"http://php.net/manual/en/simplexml.installation.php\" target=\"_blank\">simpleXML</a> e provca ancora!";
$lang['isntwicfg'] = "Impossibile salvare la configurazione del database! Modifica il file 'other/dbconfig.php' dandogli i permessi 0777 (chmod 777 nomefile on windows 'full access') e riprova.";
$lang['isntwicfg2'] = "Configurate Webinterface";
$lang['isntwicfg2'] = "Configura Webinterface";
$lang['isntwichm'] = "Permessi di scrittura negati per la cartella \"%s\". Per favore dai i permessi chmod 777 (on windows 'full access') e prova ad avviare il Ranksystem di nuovo.";
$lang['isntwiconf'] = "Apri la %s per configurare il Ranksystem!";
$lang['isntwidbhost'] = "Indirizzo host DB:";
$lang['isntwidbhostdesc'] = "L'indirizzo del server su cui si trova il database (Se il database è in locale basterà inserire 127.0.0.1)<br>(IP o DNS)";
$lang['isntwidbmsg'] = "Errore del Database: ";
@@ -49,14 +52,15 @@ $lang['isntwidbtype'] = "Tipo DB:";
$lang['isntwidbtypedesc'] = "Il tipo di Database<br><br>Dovrai installare i driver PDO.<br>Per maggiori informazioni sui requisiti guarda sulla pagina http://ts-n.net/ranksystem.php";
$lang['isntwidbusr'] = "Utente DB:";
$lang['isntwidbusrdesc'] = "Nome dell'utente che ha l'accesso al database";
$lang['isntwidel'] = "Per favore cancella il file 'install.php' dal tuo webserver e apri la %s per configurare il Ranksystem!";
$lang['isntwidel'] = "Per favore cancella il file 'install.php' dal tuo webserver";
$lang['isntwiusr'] = "L'utente dell'interfaccia Web è stato creato con successo.";
$lang['isntwiusrcr'] = "Create Webinterface-User";
$lang['isntwiusrcr'] = "Crea Webinterface-User";
$lang['isntwiusrdesc'] = "Inserisci nome utente e password per l'accesso all'interfaccia web. Con l'interfaccia web tu potrai configurare il Ranksystem.";
$lang['isntwiusrh'] = "Accesso - Interfaccia Web";
$lang['listacsg'] = "Servergroup attuale";
$lang['listcldbid'] = "Client-database-ID";
$lang['listexcept'] = "No, cause excepted";
$lang['listgrps'] = "actual group since";
$lang['listip'] = "Indirizzo IP";
$lang['listnick'] = "Nome Utente";
$lang['listnxsg'] = "Prossimo servergroup";
@@ -68,14 +72,26 @@ $lang['listsumi'] = "Somma del tempo in IDLE";
$lang['listsumo'] = "Somma del tempo Online";
$lang['listuid'] = "unique Client-ID";
$lang['login'] = "Login";
$lang['msg0001'] = "running version: %s";
$lang['msg0002'] = "Valid commands are:\n[B]help[/B], [B]info[/B], [B]commands[/B]\t\tget a command list\n[B]version[/B]\t\t\t\t\t\t\t\t get the Ranksystem version\n[B]nextup[/B]\t\t\t\t\t\t\t\t get the time to the next rank up\n[B]restart[/B], [B]reboot[/B]\t\t\t\t\trestart the Ranksystem bot\n[B]shutdown[/B], [B]quit[/B], [B]stop[/B]\t\t stop the Ranksystem bot";
$lang['msg0003'] = "You are not eligible for this command!";
$lang['msg0004'] = "Client %s (%s) requests shutdown.";
$lang['msg0005'] = "cya";
$lang['msg0006'] = "brb";
$lang['msg0007'] = "Client %s (%s) requests restart.";
$lang['nocount'] = "L'utente %s (unique Client-ID: %s; Client-database-ID %s) è una query oppure effettua molte connessioni (conterà solo la prima connessione) -> Non verrà contato!";
$lang['noentry'] = "Nessuna voce trovata..";
$lang['pass'] = "Password";
$lang['pass2'] = "Cambia la password";
$lang['pass3'] = "vecchia password";
$lang['pass4'] = "nuova password";
$lang['pass5'] = "dimenticato password?";
$lang['queryname'] = "Il primo nome del bot è già in uso. Sto riprovando con il secondo...";
$lang['repeat'] = "ripetere";
$lang['sccrmcld'] = "L'utente con il Client-ID %s è stato correttamente cancellato dal database del ranksystem.";
$lang['sccupcount'] = "All'utente con il Client-ID %s è stato assegnato un tempo online di %s.";
$lang['setontime'] = "Somma tempo online";
$lang['setontimedesc'] = "Inserisci il nuovo tempo online, che verrà impostato per gli utenti precedentemente selezionati. Il tempo online raccolto precedentemente verrà sovrascritto.<br><br>La somma del tempo online inserita verrà considerata per il rank.";
$lang['sccupcount'] = "Aggiunto con successo un tempo online di %s secondi agli utenti con unique Client-IDs (%s)";
$lang['setontime'] = "aggiungi tempo";
$lang['setontimedesc'] = "Aggiungi tempo online agli utenti precedentemente selezionati. Ogni utente avrà questo tempo addizionale aggiunto al loro vecchio tempo online.<br><br>Il tempo online digitato sarà considerato per l'aumento di rank e avrà effetto immediato.";
$lang['sgrpadd'] = "All'utente %s è stato assegnato il servergroup %s (Client-ID unico: %s; Client-database-ID %s).";
$lang['sgrprerr'] = "C'è stato un problema con l'aggiunta del servergroup all'utente %s (unique Client-ID: %s; Client-database-ID %s)!";
$lang['sgrprm'] = "All'utente %s è stato rimosso il servergroup %s (unique Client-ID: %s; Client-database-ID %s).";
@@ -128,6 +144,9 @@ $lang['stix0048'] = "Non vi sono ancora abbastanza informazioni...";
$lang['stix0049'] = "Tempo online di tutti gli utenti / mese";
$lang['stix0050'] = "Tempo online di tutti gli utenti / settimana";
$lang['stix0051'] = "Il TeamSpeak non ha una data di creazione...";
$lang['stix0052'] = "others";
$lang['stix0053'] = "Active Time (in Days)";
$lang['stix0054'] = "Inactive Time (in Days)";
$lang['stmy0001'] = "Le mie statistiche";
$lang['stmy0002'] = "Rank";
$lang['stmy0003'] = "Database ID:";
@@ -200,6 +219,7 @@ $lang['stnv0039'] = "Mostra solo gli utenti offline";
$lang['stnv0040'] = "Mostra solo gli utenti che sono in un determinato Server Group. Rappresentano il rank attuale.<br>Sostituisci qui <i>GROUPID</i>.";
$lang['stnv0041'] = "Mostra solo gli utenti selezionati per ultima visita effettuata.<br>Replace <i>OPERATOR</i> con '<' or '>' or '=' or '!='.<br>E Sostituisci qui <i>TIME</i> con formato data 'Y-m-d H-i' (example: 2016-06-18 20-25).<br>Esempio: filter:lastseen:<:2016-06-18 20-25:";
$lang['stnv0042'] = "Mostra solo gli utenti di un determinato paese.<br>Sostituisci qui <i>TS3-COUNTRY-CODE</i> e il codice del paese.<br>Per la lista dei codici google for ISO 3166-1 alpha-2";
$lang['stnv0043'] = "connect TS3";
$lang['stri0001'] = "Informazioni sul Ranksystem";
$lang['stri0002'] = "Che cos'è il ranksystem?";
$lang['stri0003'] = "Un TS3 Bot, che automaticamente attribuisce i rank (servergroups) agli utenti su un TeamSpeak 3 per il tempo trascorso online o di attività online. Inoltre raccoglie info e statistiche sullutente e mostra i risultati sul sito.";
@@ -240,7 +260,12 @@ $lang['upuserboost'] = "L'utente %s (unique Client-ID: %s; Client-database-ID %
$lang['upusrerr'] = "Il Client-ID unico %s non è raggiungibile dal sistema TeamSpeak!";
$lang['upusrinf'] = "L'utente %s è stato informato correttamente.";
$lang['user'] = "Nome Utente";
$lang['wi'] = "Webinterface";
$lang['wiaction'] = "Azione";
$lang['wiadmhide'] = "hide excepted clients";
$lang['wiadmhidedesc'] = "To hide excepted user in the following selection";
$lang['wiadmuuid'] = "admin ID";
$lang['wiadmuuiddesc'] = "Digita qui il tuo unique Client-ID; come amministratore del Ranksystem.<br><br>Questo è richiesto per effettuare un reset della password della webinterface.<br><br>Non c'è un indirizzo unique Client-ID definito, non è possibile effettuare un reset della password!";
$lang['wiboost'] = "Boost";
$lang['wiboostdesc'] = "Dai all'utente sul TS3 un servergroup (che dovrà essere creato manualmente), con il quale potrai definire il Boost. Definisci anche il fattore di moltiplicazione (per esempio 2x) e il (per quanto il boost durerà).<br>Più alto è il fattore, più velocemente l'utente raggiungerà il rank successivo.<br>Uno volta che il tempo impostato finirà il servergroup verrà rimosso in automatico dal RankSystem.Il tempo parte non appena viene assegnato il servergroup all'utente.<br><br>servergroup ID => fattore (2,3) => tempo (in secondi)<br><br>Per separare ogni voce utilizza la virgola.<br><br>Esempio:<br>12=>2=>6000,13=>3=>2500,14=>5=>600<br><br>Nell'esempio il servergroup 12 per i successivi 6000 secondi gli verrà conteggiato il doppio del tempo online, al servergroup 13 verrà moltiplicato il tempo per 3 per 2500 secondi, e cosi via...";
$lang['wibot1'] = "Il Ranksystem Bot dovrebbe essere stoppato. Controlla il log qui sotto per maggiori informazioni!";
@@ -255,6 +280,10 @@ $lang['wibot9'] = "Compila tutti i campi obbligatori prima di avviare il bot
$lang['wichdbid'] = "Client-database-ID reset";
$lang['wichdbiddesc'] = "Resetta il tempo online di un utente se il suo database-ID è cambiato.<br><br>Esempio:<br>Se un utente viene rimosso da TeamSpeak, gli viene assegnato un nuovo database-ID con la successiva connesione al server.";
$lang['wiconferr'] = "C'è un errore nella configurazione del RankSystem. Vai nell'interfaccia web i sistema le Impostazioni Principali. Specialmente la configurazione 'rank'!";
$lang['wichpw1'] = "La vecchia password è errata. Riprova.";
$lang['wichpw2'] = "La nuova password non corrisponde. Riprova.";
$lang['wichpw3'] = "La password è stata cambiata con successo. Connettiti con le credenziali su IP %s.";
$lang['wichpw4'] = "Cambia Password";
$lang['widaform'] = "Formato data";
$lang['widaformdesc'] = "scegli il formato della data.<br><br>Esempio:<br>%a Giorni, %h Ore, %i Min, %s Sec";
$lang['widbcfgsuc'] = "Configurazione del database salvata con successo.";
@@ -276,6 +305,7 @@ $lang['wiexuiddesc'] = "Lista degli utenti (ID unico) che non verranno contati
$lang['wigrptime'] = "rank up defintion";
$lang['wigrptimedesc'] = "Definisci qui dopo quanto tempo un utente debba ottenere automaticamente un servergroup predefinito.<br><br>time (seconds)=>servergroup ID<br><br>Important for this is the 'online time' or the 'active time' of an user, depending on setting of the mode.<br><br>Ogni voce deve essere separate dalla successive con una virgola. br><br>Dovrà essere inserito il tempo cumulativo<br><br>Esempio:<br>60=>9,120=>10,180=>11<br><br>Su queste basi un utente ottiene il servergroup 9 dopo 60 secondi, a sua volta il 10 dopo altri 60 secondi e così via...";
$lang['wihladm'] = "List Rankup (Admin-Mode)";
$lang['wihladm1'] = "Add online Time to User";
$lang['wihlcfg'] = "Impostazioni Principali";
$lang['wihldb'] = "Impostazioni Database";
$lang['wihlmsg'] = "Impostazioni Messaggi";
@@ -289,7 +319,7 @@ $lang['wilogdesc'] = "La path dei log del RankSystem.<br><br>Example:<br>/var/
$lang['wimsgmsg'] = "Messaggio";
$lang['wimsgmsgdesc'] = "Imposta un messaggio che verrà inviato come messaggio privato su TS3 per quando un utente raggiunge il Rank Successivo.<br><br>Potrete utilizzare i BB-code di un comunissimo messaggio .<br>http://ts-n.net/lexicon.php?showid=97#lexindex<br><br>Inoltre il tempo trascorsco potrà essere espresso con la stringa:<br>%1\$s - days<br>%2\$s - hours<br>%3\$s - minutes<br>%4\$s - seconds<br><br>Esempio:<br>Hey,\\nComplimenti! hai raggiunto il Ranksuccessivo grazie al tuo tempo online di %1\$s days, %2\$s hours and %3\$s minutes. [B]Continua Così[/B] ;-)";
$lang['wimsgsn'] = "Server-News";
$lang['wimsgsndesc'] = "Define a message, which will be shown on the /stats/ page as server news.<br><br>You can use default html functions to modify the layout<br><br>Example:<br>&#60b&#62; - <b>for bold</b><br>&#60u&#62; - <u>for underline</u><br>&#60i&#62; - <i>for italic</i><br>&#60br&#62; - for word-wrap (new line)";
$lang['wimsgsndesc'] = "Definisci un messaggio, che sarà presto mostrato nella pagina /stats/ come notizia del server.<br><br>Puoi usare le funzioni base html per modificare il layout<br><br>Esempio:<br>&#60b&#62; - <b>per grassetto</b><br>&#60u&#62; - <u>per sottolineato</u><br>&#60i&#62; - <i>per italico</i><br>&#60br&#62; - per andata a capo (new line)";
$lang['wilogout'] = "Logout";
$lang['wimsgusr'] = "Notifica di aumento di rank";
$lang['wimsgusrdesc'] = "Informa un utente con un messaggio privato testuale sul suo aumento di rank.";
@@ -303,8 +333,29 @@ $lang['winav7'] = "Amministra";
$lang['winav8'] = "Avvia / Ferma il Bot";
$lang['winav9'] = "Aggiornamento disponibile!";
$lang['winav10'] = "Per favore utilizzare l'interfaccia solo attraverso %s HTTPS%s Una crittografia è fondamentale per garantire la privacy e la sicurezza.%sPer essere in grado di utilizzare HTTPS il vostro web server deve supportare una connessione SSL.";
$lang['wiselcld'] = "Seleziona utenti";
$lang['wiselclddesc'] = "Seleziona gli utenti in base allultimo nickname noto. Per farlo devi solo scrivere.<br>Selezioni multiple vanno separate da una virgola, che il sistema fa automaticamente.<br><br>Con la selezione puoi scegliere unazione con il prossimo passaggio.";
$lang['winav11'] = "Per favore digita lo unique Client-ID dell'admin per il Ranksystem (Altro -> admin ID). Questo è molto importante nel caso perdessi le credenziali di accesso per la webinterface (per effettuarne un reset).";
$lang['winxinfo'] = "Comando \"nextup\"";
$lang['winxinfodesc'] = "Permette all'utente nel server TS3 di scrivere nel comando \"nextup\" al bot del Ranksystem (coda) come messaggio privato.<br><br>Come risposta l'utente riceverà un messaggio di testo definito con il tempo rimanente alla prossimo rank.";
$lang['winxmsg1'] = "Messaggio";
$lang['winxmsgdesc1'] = "Definisci il messaggio, che l'utente riceverà come risposta al comando \"nextup\".<br><br>Argomenti:<br>%1\$s - giorni al prossimo aumento di rank<br>%2\$s - ore al prossimo aumento di rank<br>%3\$s - minutial prossimo aumento di rank<br>%4\$s - secondi al prossimo aumento di rank<br>%5\$s - nome del prossimo servergroup<br><br>Esempio:<br>Il tuo prossimo aumento di rank sarà tra %1\$s giorni, %2\$s ore and %3\$s minuti and %4\$s secondi. Il prossimo servergroup che raggiungerai è [B]%5\$s[/B].";
$lang['winxmsg2'] = "Messaggio (highest)";
$lang['winxmsgdesc2'] = "Definisci un messaggio, che l'utente riceverà come risposta al comando \"nextup\", quando l'utente ha già raggiunto il rank più alto.<br><br>Argomenti:<br>%1\$s - giorni al prossimo aumento di rank<br>%2\$s - ore al prossimo aumento di rank<br>%3\$s - minuti al prossimo aumento di rank<br>%4\$s - secondi al prossimo aumento di rank<br>%5\$s - nome del prossimo servergroup<br><br>Esempio:<br>Hai già raggiunto il rank più alto.";
$lang['winxmsg3'] = "Messaggio (excepted)";
$lang['winxmsgdesc3'] = "Definisci un messaggio, che l'utente riceverà come risposta al comando \"nextup\",quando l'utente è escluso dal Ranksystem.<br><br>Argomenti:<br>%1\$s - giorni al prossimo aumento di rank<br>%2\$s - ore al prossimo aumento di rank<br>%3\$s - minuti al prossimo aumento di rank<br>%4\$s - secondi al prossimo aumento di rank<br>%5\$s - nome del prossimo servergroup<br><br>Esempio:<br>Sei escluso dal Ranksystem. Se desideri un rank contatta un amministratore nel server di TS3.";
$lang['wirtpw1'] = "Scusa Bro, hai dimenticato di inserire il tuo admin ID prima all'interno della webinterface. Non c'è modo di resettare la password!";
$lang['wirtpw2'] = "Admin ID non trovato nel server TS3. Devi essere online con il tuo unique Client ID, che è salvato come admin ID.";
$lang['wirtpw3'] = "Il tuo indirizzo IP non coincide con l'indirizzo IP dell'amministratore nel server TS3. Assicurati di avere lo stesso indirizzo IP online nel server TS3 e anche in questa pagina (stesso protocollo IPv4 / IPv6 è inoltre richiesto).";
$lang['wirtpw4'] = "\nLa password per la webinterface è stata resettata con successo.\nUsername: %s\nPassword: [B]%s[/B]";
$lang['wirtpw5'] = "E' stato inviato a TeamSpeak3 un messaggio privato all'amministratore con la nuova password.";
$lang['wirtpw6'] = "La password della webinterface è stata resettata con successo. Richiesta dall' IP %s.";
$lang['wirtpw7'] = "Resetta la Password";
$lang['wirtpw8'] = "Qui puoi resettare la password dell'interfaccia web.";
$lang['wirtpw9'] = "I seguenti campi sono necessari per resettare la password:";
$lang['wirtpw10'] = "Devi essere online nel server Teamspeak.";
$lang['wirtpw11'] = "Devi essere online con l' unique Client-ID, che è salvato come admin ID.";
$lang['wirtpw12'] = "Devi essere online con lo stesso indirizzo IP nel server TeamSpeak3 come qui in questa pagina (anche con lo stesso protocollo IPv4 / IPv6).";
$lang['wiselcld'] = "Seleziona gli utenti";
$lang['wiselclddesc'] = "Seleziona gli utenti con il loro nickname, con l'ID unico o con il Client-database-ID.<br>È possibile selezionare più utenti.<br><br>Nei database più grandi questa operazione potrebbe risultare molto lenta.";
$lang['wishcolas'] = "Servergroup attuale";
$lang['wishcolasdesc'] = "Mostra colonna 'Servergroup attuale' in stats/list_rankup.php";
$lang['wishcolat'] = "Tempo Attività";
@@ -313,6 +364,8 @@ $lang['wishcolcld'] = "Nome Utente";
$lang['wishcolclddesc'] = "Mostra colonna 'Nome Utente' in stats/list_rankup.php";
$lang['wishcoldbid'] = "ID del database";
$lang['wishcoldbiddesc'] = "Mostra colonna 'ID del database' in stats/list_rankup.php";
$lang['wishcolgs'] = "actual group since";
$lang['wishcolgsdesc'] = "Show column 'actual group since' in list_rankup.php";
$lang['wishcolit'] = "tempo in IDLE";
$lang['wishcolitdesc'] = "Mostra colonna 'tempo in IDLE' in stats/list_rankup.php";
$lang['wishcolls'] = "Ultimo volta online";
@@ -333,6 +386,8 @@ $lang['wishexgrp'] = "Eccetto i Servergroups";
$lang['wishexgrpdesc'] = "Mostra gli utenti in list_rankup.php, che sono nella lista 'client exception' e non dovrebbero essere considerati per il Ranksystem.";
$lang['wishhicld'] = "Utenti col massimo rank";
$lang['wishhiclddesc'] = "Mostra gli utenti in list_rankup.php, che hanno raggiunto il più elevato rank nel Ranksystem.";
$lang['wishnav'] = "show site-navigation";
$lang['wishnavdesc'] = "Show the site navigation on 'stats/' page.<br><br>If this option is deactivated on the stats page the site navigation will be hidden.<br>You can then take each site i.e. 'stats/list_rankup.php' and embed this as frame in your existing website or bulletin board.";
$lang['wisupidle'] = "Modalità";
$lang['wisupidledesc'] = "Ci sono due modalità di conteggio del tempo per applicare un aumento di rank.<br><br>1) Tempo Online: Tutto il tempo che l'utente passa in TS in IDLE o meno (Vedi colonna 'sum. online time' in the 'stats/list_rankup.php')<br><br>2) Tempo di attività: Al tempo online dell'utente viene sottratto il tempo in IDLE (AFK) (Vedi colonna 'sum. active time' in the 'stats/list_rankup.php').<br><br>Il cambiamento di modalità dopo lungo tempo non è consigliato ma dovrebbe funzionare comunque.";
$lang['wisvconf'] = "Salva";
@@ -365,5 +420,5 @@ $lang['wiuptimedesc'] = "Inserisci qui ogni quanti secondi il Ranksystem verifi
$lang['wiupuid'] = "Recipiente";
$lang['wiupuiddesc'] = "La lista di utenti (dovrà essere inserito l'ID unico dell'utente(i) es. YdicUS4yofeBEONN7J3FeLic8b4=,RiGqBf8hU1kbCV/vwfPL0rzAwZQ=), che verranno informati di eventuali aggiornamenti attraverso un messaggio privato su Teamspeak.";
$lang['wivlang'] = "Lingua";
$lang['wivlangdesc'] = "Choose a default language for the Ranksystem.<br><br>The language is also selectable on the websites for the users and will be stored for the session.";
$lang['wivlangdesc'] = "Scegli la lingua di default del Ranksystem.<br><br>La lingua è inoltre selezionabile dal sito e viene salvata per tutta la sessione.";
?>

View File

@@ -24,7 +24,8 @@ $lang['errlogin3'] = "Protecție forță brută: Prea multe greșeli. Banat pe
$lang['error'] = "Eroare ";
$lang['errremgrp'] = "Eroare la eliminarea utilizatorului cu identitatea %s din servergroup cu servergroup-database-ID %s!";
$lang['errremdb'] = "Eroare când eliminăm utilizatorului cu identitatea %s din baza de date Ranksystem!";
$lang['errsel'] = "Eroare când alegem selecțiile cu<br>Clientul selectat: %s<br>opțiune 'ștergeți clienții': %s<br>opțiune 'sum. online timp': %s";
$lang['errselusr'] = "Please choose at least one user!";
$lang['errseltime'] = "Please enter an online time to add!";
$lang['errukwn'] = "A apărut o eroare necunoscută!";
$lang['errupcount'] = "Eroare în timp ce reînnoim timpul rezumat on-line de %s de către utilizator cu identitatea %s";
$lang['highest'] = "Cel mai înalt rang atins";
@@ -35,9 +36,11 @@ $lang['insterr1'] = "ATTENTION: You are trying to install the Ranksystem, but
$lang['insterr2'] = "PDO is needed but seems not installed. Install <a href=\"http://php.net/manual/de/pdo.installation.php\" target=\"_blank\">PDO</a> and try it again!";
$lang['insterr3'] = "PHP exec function need to be enabled but seems to be disabled. Please enable the PHP <a href=\http://php.net/manual/de/function.exec.php\" target=\"_blank\">exec</a> function and try it again!";
$lang['insterr4'] = "Your PHP version (%s) is below 5.5.0. Update your PHP and try it again!";
$lang['insterr5'] = "SimpleXML is needed but seems not available. Install <a href=\"http://php.net/manual/en/simplexml.installation.php\" target=\"_blank\">simpleXML</a> and try it again!";
$lang['insttb'] = "Instalăm tabelele:";
$lang['isntwicfg'] = "Nu se poate salva configurația bazei de date ! Vă rugăm să modificați 'other/dbconfig.php' cu acces chmod 0777 (on windows 'full access') și incercați iar.";
$lang['isntwichm'] = "Vă rugăm să modificați 'other/dbconfig.php', și folderele 'avatars/', 'icons/' and 'logs/' cu permisiile necesare. Prin urmare, sa editați accesul chmod cu 0777 (on windows 'full access'). Apoi incercați iar (refresh la pagină).";
$lang['isntwiconf'] = "Deschideți %s să configurați Ranksystem!";
$lang['isntwidbhost'] = "Host-ul bazei de date:";
$lang['isntwidbhostdesc'] = "Server-ul DB<br>(IP sau DNS)";
$lang['isntwidbmsg'] = "Eroare DB: ";
@@ -49,7 +52,7 @@ $lang['isntwidbtype'] = "Tipul DB:";
$lang['isntwidbtypedesc'] = "Tipul DB<br><br>Trebuie să instalați necesarul de PDO Driver.<br>Pentru mai multe informatii accesați http://ts-n.net/ranksystem.php";
$lang['isntwidbusr'] = "DB User:";
$lang['isntwidbusrdesc'] = "User-ul pentru acces la DB";
$lang['isntwidel'] = "Vă rugăm să ștergeți fișierul 'install.php' din webserver și deschideți %s să configurați Ranksystem!";
$lang['isntwidel'] = "Vă rugăm să ștergeți fișierul 'install.php' din webserver";
$lang['isntwiusr'] = "Utilizator pentru webinterface creat cu succes.";
$lang['isntwiusrcr'] = "Creare acces";
$lang['isntwiusrdesc'] = "Introduceți un nume de utilizator și o parolă pentru accesul webinterface. Cu webinterface vă puteți configura Ranksytem-ul.";
@@ -57,6 +60,7 @@ $lang['isntwiusrh'] = "Acces - Webinterface";
$lang['listacsg'] = "Servergroup actual";
$lang['listcldbid'] = "Client-database-ID";
$lang['listexcept'] = "No, cause excepted";
$lang['listgrps'] = "actual group since";
$lang['listip'] = "Adresă IP";
$lang['listnick'] = "Nume Client";
$lang['listnxsg'] = "Următorul servergroup";
@@ -68,14 +72,26 @@ $lang['listsumi'] = "sum. timpul de inactivitate";
$lang['listsumo'] = "sum. timp online";
$lang['listuid'] = "unique Client-ID";
$lang['login'] = "Logare";
$lang['msg0001'] = "running version: %s";
$lang['msg0002'] = "Valid commands are:\n[B]help[/B], [B]info[/B], [B]commands[/B]\t\tget a command list\n[B]version[/B]\t\t\t\t\t\t\t\t get the Ranksystem version\n[B]nextup[/B]\t\t\t\t\t\t\t\t get the time to the next rank up\n[B]restart[/B], [B]reboot[/B]\t\t\t\t\trestart the Ranksystem bot\n[B]shutdown[/B], [B]quit[/B], [B]stop[/B]\t\t stop the Ranksystem bot";
$lang['msg0003'] = "You are not eligible for this command!";
$lang['msg0004'] = "Client %s (%s) requests shutdown.";
$lang['msg0005'] = "cya";
$lang['msg0006'] = "brb";
$lang['msg0007'] = "Client %s (%s) requests restart.";
$lang['nocount'] = "User-ul %s (Client-ID unic: %s; Client-database-ID %s) este un query-user sau este de mai multe ori on-line ( numai primul număr de conexiune ) - > acest lucru nu va conta !";
$lang['noentry'] = "Nu au gasit ..";
$lang['pass'] = "Parolă";
$lang['pass2'] = "Change password";
$lang['pass3'] = "old password";
$lang['pass4'] = "new password";
$lang['pass5'] = "Forgot Password?";
$lang['queryname'] = "În primul rând Botname deja în uz . Încerc cu al doilea Botname ...";
$lang['repeat'] = "repeat";
$lang['sccrmcld'] = "User-ul cu unic Client-ID %s scos cu success din baza de date Ranksystem .";
$lang['sccupcount'] = "User-ul cu unic Client-ID %s rescrise cu un succes timp rezumat on-line al %s.";
$lang['setontime'] = "sum. timp online";
$lang['setontimedesc'] = "Introduceți un timp on-line nou rezumat , care ar trebui să fie setat la clienții anteriori selectate . Cu acest vechi rezumat on-line va fi rescris .<br><br>Timpul de sinteză introdus on-line v-a fi luat în considerare pentru rangul sus.";
$lang['sccupcount'] = "Added successfully an online time of %s seconds to the users with the unique Client-IDs (%s)";
$lang['setontime'] = "add time";
$lang['setontimedesc'] = "Add online time to the previous selected clients. Each user will get this time additional to their old online time.<br><br>The entered online time will be considered for the rank up and should take effect immediately.";
$lang['sgrpadd'] = "Aloca servergroup %s user-ului %s (unique Client-ID: %s; Client-database-ID %s).";
$lang['sgrprerr'] = "S-a întâmplat o problemă cu servergroup utilizatorului %s (unique Client-ID: %s; Client-database-ID %s)!";
$lang['sgrprm'] = "S-a șters servergroup %s de la user-ul %s (unique Client-ID: %s; Client-database-ID %s).";
@@ -128,6 +144,9 @@ $lang['stix0048'] = "Nu sunt suficiente date încă ...";
$lang['stix0049'] = "Timp on-line la toți utilizatorii / luna";
$lang['stix0050'] = "Timp on-line la toți utilizatorii / săptămână";
$lang['stix0051'] = "TeamSpeak nu a reușit , deci nici o data creată...";
$lang['stix0052'] = "others";
$lang['stix0053'] = "Active Time (in Days)";
$lang['stix0054'] = "Inactive Time (in Days)";
$lang['stmy0001'] = "Statisticile mele";
$lang['stmy0002'] = "Rank";
$lang['stmy0003'] = "Database ID:";
@@ -200,6 +219,7 @@ $lang['stnv0039'] = "Show only clients, which are not online.";
$lang['stnv0040'] = "Show only clients, which are in defined group. Represent the actuel rank/level.<br>Replace <i>GROUPID</i> with the wished servergroup ID.";
$lang['stnv0041'] = "Show only clients, which are selected by lastseen.<br>Replace <i>OPERATOR</i> with '<' or '>' or '=' or '!='.<br>And replace <i>TIME</i> with a timestamp or date with format 'Y-m-d H-i' (example: 2016-06-18 20-25).<br>Full example: filter:lastseen:<:2016-06-18 20-25:";
$lang['stnv0042'] = "Show only clients, which are from defined country.<br>Replace <i>TS3-COUNTRY-CODE</i> with the wished country.<br>For list of codes google for ISO 3166-1 alpha-2";
$lang['stnv0043'] = "connect TS3";
$lang['stri0001'] = "Ranksystem information";
$lang['stri0002'] = "What is the Ranksystem?";
$lang['stri0003'] = "A TS3 Bot, which automatically grant ranks (servergroups) to user on a TeamSpeak 3 Server for online time or online activity. It also gathers informations and statistics about the user and displays the result on this site.";
@@ -240,7 +260,12 @@ $lang['upuserboost'] = "User %s (unique Client-ID: %s; Client-database-ID %s) g
$lang['upusrerr'] = "The unique Client-ID %s couldn't reached on the TeamSpeak!";
$lang['upusrinf'] = "User %s was successfully informed.";
$lang['user'] = "Username";
$lang['wi'] = "Webinterface";
$lang['wiaction'] = "action";
$lang['wiadmhide'] = "hide excepted clients";
$lang['wiadmhidedesc'] = "To hide excepted user in the following selection";
$lang['wiadmuuid'] = "admin ID";
$lang['wiadmuuiddesc'] = "Enter here your unique Client-ID; as the administrator of the Ranksystem.<br><br>This is required to reset the password of the webinterface.<br><br>Is there no unique Client-ID address defined, it is not possible to reset the password!";
$lang['wiboost'] = "boost";
$lang['wiboostdesc'] = "Give an user on your TeamSpeak server a servergroup (have to be created manually), which you can declare here as boost group. Define also a factor which should be used (for example 2x) and a time, how long the boost should be rated.<br>The higher the factor, the faster an user reaches the next higher rank.<br>Is the time expired, the boost servergroup get automatically removed from the concerned user. The time starts running as soon as the user gets the servergroup.<br><br>servergroup ID => factor => time (in seconds)<br><br>Each entry have to separate from next with a comma.<br><br>Example:<br>12=>2=>6000,13=>3=>2500,14=>5=>600<br><br>On this an user in servergroup 12 get the factor 2 for the next 6000 seconds, an user in servergroup 13 get the factor 3 for 2500 seconds, and so on...";
$lang['wibot1'] = "Ranksystem Bot should be stopped. Check the log below for more information!";
@@ -255,6 +280,10 @@ $lang['wibot9'] = "Fill out all mandatory fields before starting the Ranksyst
$lang['wichdbid'] = "Client-database-ID reset";
$lang['wichdbiddesc'] = "Reset the online time of an user, if his TeamSpeak Client-database-ID changed.<br><br>Example:<br>If a clients gets removed from the TeamSpeak server, it gets a new Client-database-ID with the next connect to the server.";
$lang['wiconferr'] = "There is an error in the configuration of the Ranksystem. Please go to the webinterface and correct the Core Settings. Especially check the config 'rank up'!";
$lang['wichpw1'] = "Your old password is wrong. Please try again";
$lang['wichpw2'] = "The new passwords dismatch. Please try again.";
$lang['wichpw3'] = "The password of the webinterface has been successfully changed. Request from IP %s.";
$lang['wichpw4'] = "Change Password";
$lang['widaform'] = "Date format";
$lang['widaformdesc'] = "Choose the showing date format.<br><br>Example:<br>%a days, %h hours, %i mins, %s secs";
$lang['widbcfgsuc'] = "Database configurations saved successfully.";
@@ -276,6 +305,7 @@ $lang['wiexuiddesc'] = "A comma seperated list of unique Client-IDs, which shou
$lang['wigrptime'] = "rank up definition";
$lang['wigrptimedesc'] = "Define here after which time a user should get automatically a predefined servergroup.<br><br>time (seconds)=>servergroup ID<br><br>Important for this is the 'online time' or the 'active time' of an user, depending on setting of the mode.<br><br>Each entry have to separate from next with a comma.<br><br>The time must be entered cumulative<br><br>Example:<br>60=>9,120=>10,180=>11<br><br>On this a user get after 60 seconds the servergroup 9, in turn after 60 seconds the servergroup 10, and so on...";
$lang['wihladm'] = "List Rankup (Admin-Mode)";
$lang['wihladm1'] = "Add online Time to User";
$lang['wihlcfg'] = "Core settings";
$lang['wihldb'] = "Database settings";
$lang['wihlmsg'] = "Message settings";
@@ -303,8 +333,29 @@ $lang['winav7'] = "Administrate";
$lang['winav8'] = "Start / Stop Bot";
$lang['winav9'] = "Update available!";
$lang['winav10'] = "Please use the webinterface only via %s HTTPS%s An encryption is critical to ensure your privacy and security.%sTo be able to use HTTPS your webserver needs to support an SSL connection.";
$lang['winav11'] = "Please enter the unique Client-ID of the admin of the Ranksystem (Other -> admin ID). This is very important in case you lost your login details for the webinterface (to reset these).";
$lang['winxinfo'] = "Command \"nextup\"";
$lang['winxinfodesc'] = "Allows the user on the TS3 server to write the command \"nextup\" to the Ranksystem (query) bot as private textmessage.<br><br>As answer the user will get a defined text message with the needed time for the next rankup.";
$lang['winxmsg1'] = "Message";
$lang['winxmsgdesc1'] = "Define a message, which the user will get as answer at the command \"nextup\".<br><br>Arguments:<br>%1\$s - days to next rankup<br>%2\$s - hours to next rankup<br>%3\$s - minutes to next rankup<br>%4\$s - seconds to next rankup<br>%5\$s - name of the next servergroup<br><br>Example:<br>Your next rank up will be in %1\$s days, %2\$s hours and %3\$s minutes and %4\$s seconds. The next servergroup you will reach is [B]%5\$s[/B].";
$lang['winxmsg2'] = "Message (highest)";
$lang['winxmsgdesc2'] = "Define a message, which the user will get as answer at the command \"nextup\", when the user already reached the highest rank.<br><br>Arguments:<br>%1\$s - days to next rankup<br>%2\$s - hours to next rankup<br>%3\$s - minutes to next rankup<br>%4\$s - seconds to next rankup<br>%5\$s - name of the next servergroup<br><br>Example:<br>You have already reached the highest rank.";
$lang['winxmsg3'] = "Message (excepted)";
$lang['winxmsgdesc3'] = "Define a message, which the user will get as answer at the command \"nextup\", when the user is excepted from the Ranksystem.<br><br>Arguments:<br>%1\$s - days to next rankup<br>%2\$s - hours to next rankup<br>%3\$s - minutes to next rankup<br>%4\$s - seconds to next rankup<br>%5\$s - name of the next servergroup<br><br>Example:<br>You are excepted from the Ranksystem. If you wish to rank contact an admin on the TS3 server.";
$lang['wirtpw1'] = "Sorry Bro, you have forgotten to enter your admin ID inside the webinterface before. There is no way to reset the password!";
$lang['wirtpw2'] = "Admin ID not found on TS3 server. You need to be online with the unique Client ID, which is saved as admin ID.";
$lang['wirtpw3'] = "Your IP address do not match with the IP address of the admin on the TS3 server. Be sure you are with the same IP address online on the TS3 server and also on this page (same protocol IPv4 / IPv6 is also needed).";
$lang['wirtpw4'] = "\nThe password for the webinterface was successfully reset.\nUsername: %s\nPassword: [B]%s[/B]\n\nLogin %shere%s";
$lang['wirtpw5'] = "There was send a TeamSpeak3 privat textmessage to the admin with the new password. Click %s here %s to login.";
$lang['wirtpw6'] = "The password of the webinterface has been successfully reset. Request from IP %s.";
$lang['wirtpw7'] = "Reset Password";
$lang['wirtpw8'] = "Here you can reset the password for the webinterface.";
$lang['wirtpw9'] = "Following things are required to reset the password:";
$lang['wirtpw10'] = "You need to be online at the TeamSpeak3 server.";
$lang['wirtpw11'] = "You need to be online with the unique Client-ID, which is saved as admin ID.";
$lang['wirtpw12'] = "You need to be online with the same IP address on the TeamSpeak3 server as here on this page (also the same protocol IPv4 / IPv6).";
$lang['wiselcld'] = "select clients";
$lang['wiselclddesc'] = "Select the clients by the last known username. For this you only have to start typing.<br>Multiple selections are comma separated, which does the system automatically.<br><br>With the selection you can choose with the next step an action.";
$lang['wiselclddesc'] = "Select the clients by their last known username, unique Client-ID or Client-database-ID.<br>Multiple selections are also possible.<br><br>On bigger databases this selection could slow much. It is recommend to copy and paste the full nickname inside instead of typing it.";
$lang['wishcolas'] = "actual servergroup";
$lang['wishcolasdesc'] = "Show column 'actual servergroup' in list_rankup.php";
$lang['wishcolat'] = "active time";
@@ -313,6 +364,8 @@ $lang['wishcolcld'] = "Client-name";
$lang['wishcolclddesc'] = "Show column 'Client-name' in list_rankup.php";
$lang['wishcoldbid'] = "database-ID";
$lang['wishcoldbiddesc'] = "Show column 'Client-database-ID' in list_rankup.php";
$lang['wishcolgs'] = "actual group since";
$lang['wishcolgsdesc'] = "Show column 'actual group since' in list_rankup.php";
$lang['wishcolit'] = "idle time";
$lang['wishcolitdesc'] = "Show column 'sum idle time' in list_rankup.php";
$lang['wishcolls'] = "last seen";
@@ -333,6 +386,8 @@ $lang['wishexgrp'] = "excepted groups";
$lang['wishexgrpdesc'] = "Show clients in list_rankup.php, which are in the list 'client exception' and shouldn't be conside for the Ranksystem.";
$lang['wishhicld'] = "Clients in highest Level";
$lang['wishhiclddesc'] = "Show clients in list_rankup.php, which reached the highest level in the Ranksystem.";
$lang['wishnav'] = "show site-navigation";
$lang['wishnavdesc'] = "Show the site navigation on 'stats/' page.<br><br>If this option is deactivated on the stats page the site navigation will be hidden.<br>You can then take each site i.e. 'stats/list_rankup.php' and embed this as frame in your existing website or bulletin board.";
$lang['wisupidle'] = "Mode";
$lang['wisupidledesc'] = "There are two modes, as time can be counted and can then apply for a rank increase.<br><br>1) online time: Here the pure online time of the user is taken into account (see column 'sum. online time' in the 'stats/list_rankup.php')<br><br>2) active time: This will be deducted from the online time of a user, the inactive time (idle) (see column 'sum. active time' in the 'stats/list_rankup.php').<br><br>A change of mode with an already longer running database is not recommended, but may work.";
$lang['wisvconf'] = "save";

View File

@@ -1,45 +1,48 @@
<?PHP
$lang= array();
$lang['adduser'] = "Пользователь %s (Уникальный ID клиента: %s; ID в базе данных: %s) неизвестен -> добавлен к Ранг Системе.";
$lang['changedbid'] = "Пользователь %s (Уникальный ID клиента: %s) получил новый TeamSpeak Client-database-ID (%s). Обновление старой Client-database-ID (%s) и сбрасываем ему старое время!";
$lang['adduser'] = "Пользователь %s (Уникальный ID клиента: %s; ID в базе данных: %s) неизвестен -> добавлен в БД RankSystem.";
$lang['changedbid'] = "Пользователь %s (Уникальный ID клиента: %s) получил новый TeamSpeak Client-database-ID (%s). Обновляем старый Client-database-ID (%s) и сбрасываем ему старое время!";
$lang['crawl'] = "Сканирование активности подключенных пользователей...";
$lang['clean'] = "Сканирование пользователей, которых должен удалить...";
$lang['clean'] = "Сканирование пользователей, которых необходимо удалить...";
$lang['cleanc'] = "Чистка пользователей";
$lang['cleancdesc'] = "С включением этой функцией старые пользователи в Ranksystem будут удалены.<br><br>С этой целью, Ranksystem синхронизируется с базой данных TeamSpeak. Пользователи, которых не существует в базе данных TeamSpeak, будут удалены из Ranksystem.<br><br>Эта функция работает когда 'Slowmode' дезактивирован!<br><br><br>Для автоматического регулирования базы данных TeamSpeak 3 можете использоваться ClientCleaner:<br>http://ts-n.net/clientcleaner.php";
$lang['cleancdesc'] = "При включении данной функции, старые пользователи в БД Ranksystem будут удалены.<br><br>С этой целью, Ranksystem синхронизируется с базой данных TeamSpeak. Пользователи, которых не существует в базе данных TeamSpeak, будут удалены из Ranksystem.<br><br>Эта функция работает когда 'Slowmode' дезактивирован!<br><br><br>Для автоматического регулирования базы данных TeamSpeak 3 можете использоваться ClientCleaner:<br>http://ts-n.net/clientcleaner.php";
$lang['cleandel'] = "%s пользователя удаленны из базы данных Ranksystem, так как они больше не существуют в базе данных TeamSpeak.";
$lang['cleanno'] = "Не найдены пользователи, которые подходили бы для удаления из базы данных.";
$lang['cleanno'] = "Не найдены пользователи, которые подходят для удаления из базы данных.";
$lang['cleanp'] = "Период чистки БД RankSystem";
$lang['cleanpdesc'] = "Укажите время, которое должно пройти перед запуском 'чистка пользователей'.<br><br>Устанавливается в секундах.<br><br>Для больших баз данных рекомендуется использовать один раз в день.";
$lang['cleanrs'] = "Пользователи в базе данных Ranksystem: %s";
$lang['cleanpdesc'] = "Укажите время, которое должно пройти перед запуском 'Чистки пользователей'.<br><br>Устанавливается в секундах.<br><br>Для больших баз данных рекомендуется использовать один раз в день.";
$lang['cleanrs'] = "Пользователей в базе данных Ranksystem: %s";
$lang['cleants'] = "Пользователи найдены в базе данных TeamSpeak: %s (at %s)";
$lang['days'] = "%s <small>Дней</small>";
$lang['dbconerr'] = "Ошибка подключения к базе данных: ";
$lang['delcldgrpif'] = "Ошибка удаления пользователя из группы сервера: %s";
$lang['delcldgrpsc'] = "Данные о сервер группах для пользователя %s успешно удалена.";
$lang['delclientsif'] = "%s Клиент(ов) удалено из базы данных Ранг Системы!";
$lang['delclientssc'] = "%s Клиент(ов) успешно удалено из базы данных Ранг Системы!";
$lang['errlogin'] = "Логин или пароль введены неверно! Попробуйте снова...";
$lang['errlogin2'] = "Brute force protection: Попробуйте повторить через %s секунд!";
$lang['errlogin3'] = "Brute force protection: От вас поступает слишком много запросов. Вы были забанены на 300 секунд!";
$lang['delcldgrpsc'] = "Данные о группах сервера для пользователя %s успешно удалены.";
$lang['delclientsif'] = "%s Клиент(ов) удалено из базы данных RankSystem!";
$lang['delclientssc'] = "%s Клиент(ов) успешно удалено из базы данных RankSystem!";
$lang['errlogin'] = "Неверно введён логин или пароль! Пожалуйста, повторите ввод данных заново.";
$lang['errlogin2'] = "BruteForce защита: Попробуйте повторить через %s секунд!";
$lang['errlogin3'] = "BruteForce защита: От вас поступает слишком много запросов. Вы были забанены на 300 секунд!";
$lang['error'] = "Ошибка ";
$lang['errremgrp'] = "Ошибка удаления пользователя с уникальным идентификатором UID: %s из группы сервера ID: %s!";
$lang['errremdb'] = "Ошибка удаления пользователя с уникальным идентификатором UID %s из базы данных Ранг Системы!";
$lang['errsel'] = "Ошибка удаления пользователя с уникальным идентификатором UID: %s<br>параметр 'удаление клиентов': %s<br>По условию 'Суммарное время онлайна': %s";
$lang['errremdb'] = "Ошибка удаления пользователя с уникальным идентификатором UID %s из базы данных RankSystem!";
$lang['errselusr'] = "Пожалуйста, укажите пользователя!";
$lang['errseltime'] = "Пожалуйста, введите время, которое хотите начислить.";
$lang['errukwn'] = "Произошла неизвестная ошибка!";
$lang['errupcount'] = "Ошибка подсчета суммарного времени подключения %s пользователя с UCI %s";
$lang['highest'] = "Достигнут высший ранг";
$lang['install'] = "Установка";
$lang['instdb'] = "Установка базы данных";
$lang['instdbsuc'] = "База данных %s успешно создана.";
$lang['insterr1'] = "ATTENTION: You are trying to install the Ranksystem, but there is already existing a database with the name \"%s\".<br>Due installation this database will be dropped!<br>Be sure you want this. If not, please choose an other database name.";
$lang['insterr2'] = "PDO is needed but seems not installed. Install <a href=\"http://php.net/manual/de/pdo.installation.php\" target=\"_blank\">PDO</a> and try it again!";
$lang['insterr3'] = "PHP exec function need to be enabled but seems to be disabled. Please enable the PHP <a href=\http://php.net/manual/de/function.exec.php\" target=\"_blank\">exec</a> function and try it again!";
$lang['insterr4'] = "Your PHP version (%s) is below 5.5.0. Update your PHP and try it again!";
$lang['isntwicfg'] = "Не получилось записать настройки базы данных! Пожалуйста, установите права на запись 'other/dbconfig.php' chmod 0777 (on windows 'full access') и попробуйте снова.";
$lang['insterr1'] = "ВНИМАНИЕ: Указанная база данных \"%s\" уже существует и была создана ранее!<br>При продолжении процесса установки, старые данные в этой базе данных будут удалены.<br>Если вы не уверены, нужно ли очищать данную базу данных, то выберите другое название.";
$lang['insterr2'] = "Для работы RankSystem требуется наличие PDO-Драйвера. Пожалуйста, установите <a href=\"http://php.net/manual/ru/pdo.installation.php\" target=\"_blank\">PDO-драйвер</a> и попробуйте заново!";
$lang['insterr3'] = "Для работы RankSystem требуется наличие включеной функции PHP exec. Пожалуйста, включите данную <a href=\http://php.net/manual/ru/function.exec.php\" target=\"_blank\">exec</a> функцию и попробуйте заново!";
$lang['insterr4'] = "Ваша версия PHP (%s) ниже допустимой 5.5.0. Пожалуйста, обновите версию PHP и попробуйте заново!";
$lang['insterr5'] = "Для установки требуется SimpleXML. Пожалуйста, установите <a href=\"http://php.net/manual/ru/simplexml.installation.php\" target=\"_blank\">simpleXML</a> и попробуйте заново!";
$lang['isntwicfg'] = "Не получилось записать настройки базы данных! Пожалуйста, установите права на запись 'other/dbconfig.php' chmod 0777 (В windows 'Полный доступ') и попробуйте заново.";
$lang['isntwicfg2'] = "Конфигурирование веб-интерфейса";
$lang['isntwichm'] = "Отсутствуют права на запись в папку \"%s\". Пожалуйста, установите на эту папку права chmod 0777 (on windows 'full access') и повторите этот этап заново.";
$lang['isntwichm'] = "Отсутствуют права на запись в папку \"%s\". Пожалуйста, установите на эту папку права chmod 0777 (В windows 'полный доступ') и повторите этот этап заново.";
$lang['isntwiconf'] = "После, откройте %s для настройки Системы рангов(RankSystem)!";
$lang['isntwidbhost'] = "Адрес:";
$lang['isntwidbhostdesc'] = "Адрес сервера базы данных<br>(IP or DNS)";
$lang['isntwidbhostdesc'] = "Адрес сервера базы данных<br>(IP или домен)";
$lang['isntwidbmsg'] = "Ошибка базы данных: ";
$lang['isntwidbname'] = "Имя:";
$lang['isntwidbnamedesc'] = "Название базы данных";
@@ -49,14 +52,15 @@ $lang['isntwidbtype'] = "Тип базы данных:";
$lang['isntwidbtypedesc'] = "Тип базы данных<br><br>Для корректной работы у вас должен быть установлен PDO-Драйвер.<br>Для получения дополнительной информации см. http://ts-n.net/ranksystem.php";
$lang['isntwidbusr'] = "Пользователь:";
$lang['isntwidbusrdesc'] = "Пользователь с доступом к базе данных";
$lang['isntwidel'] = "Пожалуйста, удалите файл 'install.php' Веб-Сервера в целях безопасности! После откройте %s для настройки Системы рангов(RankSystem)!";
$lang['isntwidel'] = "Пожалуйста, удалите файл 'install.php' с Веб-Сервера в целях безопасности!";
$lang['isntwiusr'] = "Пользователь Веб-Панели успешно создан.";
$lang['isntwiusrcr'] = "Создать создать аккаунт Администратора";
$lang['isntwiusrdesc'] = "Введите имя пользователя и пароль для доступа в Веб-Панель. С помощью Веб-Панели вы сможете настроить ранг систему.";
$lang['isntwiusrcr'] = "Создать аккаунт Администратора";
$lang['isntwiusrdesc'] = "Введите имя пользователя и пароль для доступа в Веб-Панель. С помощью Веб-Панели вы сможете настроить RankSystem.";
$lang['isntwiusrh'] = "Доступ - Веб-Панель";
$lang['listacsg'] = "Текущая сервер группа";
$lang['listacsg'] = "Текущая группа ранга";
$lang['listcldbid'] = "ID клиента в базе данных";
$lang['listexcept'] = "No, cause excepted";
$lang['listexcept'] = "Нет, исключенный";
$lang['listgrps'] = "actual group since";
$lang['listip'] = "IP-адрес";
$lang['listnick'] = "Никнейм";
$lang['listnxsg'] = "Следующая группа ранга";
@@ -68,14 +72,26 @@ $lang['listsumi'] = "Сумм. время простоя";
$lang['listsumo'] = "Сумм. время подключения";
$lang['listuid'] = "Уникальный ID клиента(UID)";
$lang['login'] = "Авторизоваться";
$lang['msg0001'] = "running version: %s";
$lang['msg0002'] = "Valid commands are:\n[B]help[/B], [B]info[/B], [B]commands[/B]\t\tget a command list\n[B]version[/B]\t\t\t\t\t\t\t\t get the Ranksystem version\n[B]nextup[/B]\t\t\t\t\t\t\t\t get the time to the next rank up\n[B]restart[/B], [B]reboot[/B]\t\t\t\t\trestart the Ranksystem bot\n[B]shutdown[/B], [B]quit[/B], [B]stop[/B]\t\t stop the Ranksystem bot";
$lang['msg0003'] = "You are not eligible for this command!";
$lang['msg0004'] = "Client %s (%s) requests shutdown.";
$lang['msg0005'] = "cya";
$lang['msg0006'] = "brb";
$lang['msg0007'] = "Client %s (%s) requests restart.";
$lang['nocount'] = "Пользователь %s (Уникальный Клиент ID: %s; Клиент ID %s) является query-пользователем -> не будет учитываться!";
$lang['noentry'] = "Записей не найдено..";
$lang['pass'] = "Пароль";
$lang['pass2'] = "Изменить пароль";
$lang['pass3'] = "Старый пароль";
$lang['pass4'] = "Новый пароль";
$lang['pass5'] = "Забыли пароль?";
$lang['queryname'] = "Первый никнейм для бота уже занят другим пользователем. Пробуем использовать второй никнейм...";
$lang['sccrmcld'] = "Пользователь с уникальным ID %s успешно удален из базы данных Ранг Системы.";
$lang['sccupcount'] = "Пользователь с уникальным ID %s успешно переписан с итоговым временем онлайн %s.";
$lang['setontime'] = "Правка накопленного времени";
$lang['setontimedesc'] = "Укажите новое время в секундах, которое нужно задать выбранным клиентам. <br><br>Указанное время подключения будет учтено RankSystem и пользователь будет награжден новым Рангом, если он достиг его.";
$lang['repeat'] = "Повтор нового пароля";
$lang['sccrmcld'] = "Пользователь с уникальным ID %s успешно удален из базы данных RankSystem.";
$lang['sccupcount'] = "Клиенту(ам) => (%s) успешно начислено %s секунд времени онлайна.";
$lang['setontime'] = "Начислить время";
$lang['setontimedesc'] = "Данная функция начисляет пользователю время онлайна с учётом прошлых накоплений. От этого времени также будет впоследствии сформирован ранг пользователя.<br><br>The entered online time will be considered for the rank up and should take effect immediately.";
$lang['sgrpadd'] = "Выдана группа сервера №%s пользователю %s (Уникальный ID клиента: %s; ID в базе данных: %s).";
$lang['sgrprerr'] = "Что-то пошло не так! Проблема с группой сервера %s у пользователя (UID клиента: %s; ID в базе данных %s)!";
$lang['sgrprm'] = "С пользователя %s (Уникальный ID клиента: %s; ID в базе данных: %s) удалена сервер-группа %s.";
@@ -83,9 +99,9 @@ $lang['stix0001'] = "Статистика сервера";
$lang['stix0002'] = "Пользователей зарегистрировано в базе RankSystem";
$lang['stix0003'] = "Посмотреть подробнее";
$lang['stix0004'] = "Общий накопленный онлайн за всё время";
$lang['stix0005'] = "Топ онлайна за всё время";
$lang['stix0006'] = "Топ онлайна за месяц";
$lang['stix0007'] = "Топ онлайна за неделю";
$lang['stix0005'] = "Рейтинг за всё время";
$lang['stix0006'] = "Рейтинг за месяц";
$lang['stix0007'] = "Рейтинг за неделю";
$lang['stix0008'] = "Активность сервера";
$lang['stix0009'] = "За последние 7 дней";
$lang['stix0010'] = "За последние 30 дней";
@@ -105,8 +121,8 @@ $lang['stix0025'] = "Неактивен";
$lang['stix0026'] = "Пользователей (В сети / Вмещается)";
$lang['stix0027'] = "Количество каналов";
$lang['stix0028'] = "Средний пинг на сервере";
$lang['stix0029'] =" Всего байтов получено";
$lang['stix0030'] = "Всего байтов отправлено";
$lang['stix0029'] =" Всего байт получено";
$lang['stix0030'] = "Всего байт отправлено";
$lang['stix0031'] = "Сервер онлайн";
$lang['stix0032'] = "Находится в оффлайне:";
$lang['stix0033'] = "<span id=\"days\">00</span> Дней, <span id=\"hours\">00</span> Часов, <span id=\"minutes\">00</span> Мин., <span id=\"seconds\">00</span> Сек.";
@@ -120,7 +136,7 @@ $lang['stix0040'] = "Да (Приватный сервер)";
$lang['stix0041'] = "ID сервера";
$lang['stix0042'] = "Серверная платформа";
$lang['stix0043'] = "Версия сервера";
$lang['stix0044'] = "Дата создания (dd/mm/yyyy)";
$lang['stix0044'] = "Дата создания (дд/мм/гггг)";
$lang['stix0045'] = "Видимость в глобал. списке";
$lang['stix0046'] = "Отображается";
$lang['stix0047'] = "Не отображается";
@@ -128,6 +144,9 @@ $lang['stix0048'] = "Нет информации...";
$lang['stix0049'] = "Общий накопленный онлайн за месяц";
$lang['stix0050'] = "Общий накопленный онлайн за неделю";
$lang['stix0051'] = "Ошибка при получении даты";
$lang['stix0052'] = "others";
$lang['stix0053'] = "Active Time (in Days)";
$lang['stix0054'] = "Inactive Time (in Days)";
$lang['stmy0001'] = "Моя статистика";
$lang['stmy0002'] = "Ранг";
$lang['stmy0003'] = "ID в базе данных:";
@@ -193,13 +212,14 @@ $lang['stnv0032'] = "Вы также можете использовать ф
$lang['stnv0033'] = "Также допустимы комбинации шаблонов и фильтров. Для этого введите первым фильтр, за ним без пробелов шаблон.";
$lang['stnv0034'] = "Это позволяет комбинировать множество фильтров, вводить которые необходимо последовательно.";
$lang['stnv0035'] = "<u>Пример:</u><br>filter:nonexcepted:TeamSpeakUser";
$lang['stnv0036'] = "Показывать только клиентов находящихся в исключении (клиентов, групп сервера или исключение канала).";
$lang['stnv0037'] = "Показывать только клиентов не находящихся в исключении клиентов";
$lang['stnv0038'] = "Показывать только клиентов находящихся в онлайне";
$lang['stnv0039'] = "Показывать только клиентов не находящихся в онлайне";
$lang['stnv0040'] = "Показывать только клиентов в указанных группах, она же - выборка юзеров по рангам<br>Замените <i>GROUPID</i> на желаемые ID группы ранга.";
$lang['stnv0041'] = "Показать клиентов, удовлетворяющих поисковому запросу по дате последнего посещения сервера.<br>Замените <i>OPERATOR</i> на '<' или '>' или '=' или '!='.<br>Также замените <i>TIME</i> на желаемую дату поиска в формате 'Y-m-d H-i'(год-месяц-день час-минута) (пример: 2016-06-18 20-25).<br>Более подробный пример запроса: filter:lastseen:<:2016-06-18 20-25:";
$lang['stnv0042'] = "Показывать только клиентов из указанной страны.<br>Замените <i>TS3-COUNTRY-CODE</i> на желаемый код страны.<br>Коды стран вы можете взять <a href=\"https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\">Здесь(Википедия)</a>";
$lang['stnv0036'] = "Показывать только пользователей находящихся в исключении (пользователей, групп сервера или исключение канала).";
$lang['stnv0037'] = "Показывать только неисключенных пользователей";
$lang['stnv0038'] = "Показывать только пользователей находящихся в онлайне";
$lang['stnv0039'] = "Показывать только пользователей не находящихся в онлайне";
$lang['stnv0040'] = "Показывать только пользователей в указанных группах, она же - выборка юзеров по рангам<br>Замените <i>GROUPID</i> на желаемые ID группы ранга.";
$lang['stnv0041'] = "Показать пользователей, удовлетворяющих поисковому запросу по дате последнего посещения сервера.<br>Замените <i>OPERATOR</i> на '<' или '>' или '=' или '!='.<br>Также замените <i>TIME</i> на желаемую дату поиска в формате 'Y-m-d H-i'(год-месяц-день час-минута) (пример: 2016-06-18 20-25).<br>Более подробный пример запроса: filter:lastseen:<:2016-06-18 20-25:";
$lang['stnv0042'] = "Показывать только пользователей из указанной страны.<br>Замените <i>TS3-COUNTRY-CODE</i> на желаемый код страны.<br>Коды стран вы можете взять <a href=\"https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\">Здесь(Википедия)</a>";
$lang['stnv0043'] = "connect TS3";
$lang['stri0001'] = "Информация о системе рангов";
$lang['stri0002'] = "Что такое TSN RankSystem?";
$lang['stri0003'] = "Удобная система, позволяющая создать на сервере TeamSpeak 3 систему рангов-поощрений, основанную на времени, которое пользователи проводят на сервере. Ко всему прочему, она также занимается сбором информации о пользователях и последующим её отображением на сайте.";
@@ -209,16 +229,16 @@ $lang['stri0006'] = "Альфа-релиз: 05/10/2014.";
$lang['stri0007'] = "Бета-релиз: 01/02/2015.";
$lang['stri0008'] = "Вы можете найти новую версию на сайте: <a href=\"http://ts-n.net/ranksystem.php\" target=\"_blank\">Ranksystem Website</a>.";
$lang['stri0009'] = "Как создавалась TSN Ranksystem?";
$lang['stri0010'] = "\"RankSytem\" разрабатывалась на языке";
$lang['stri0010'] = "\"RankSystem\" разрабатывалась на языке";
$lang['stri0011'] = "При создании использовался следующий набор инструментов:";
$lang['stri0012'] = "Особая благодарность:";
$lang['stri0013'] = "<a href=\"http://nya-pw.ru/\" target=\"_blank\">sergey</a>, <a href=\"http://vk.com/akhachirov\" target=\"_blank\">Arselopster</a> & <a href=\"http://vk.com/zheez\" target=\"_blank\">DeviantUser</a> - За русскоязычный перевод текста.";
$lang['stri0013'] = "<a href=\"http://nya-pw.ru/\" target=\"_blank\">sergey</a>, <a href=\"http://vk.com/akhachirov\" target=\"_blank\">Arselopster</a> & <a href=\"http://want2speak.ru/\" target=\"_blank\">DeviantUser</a>(<a href=\"http://vk.com/zheez\" target=\"_blank\">VK</a>) - За русскоязычный перевод интерфейса. Пишите о всех очепятках в ВК DeviantUser'у";
$lang['stri0014'] = "Bejamin Frost - За помощь в создании дизайна сайта с помощью Bootstrap.";
$lang['stri0015'] = "<a href=\"http://hydrake.eu/\" target=\"_blank\">ZanK</a> - За перевод интерфейса на итальянский язык.";
$lang['stri0016'] = "<a href=\"http://iraqgaming.net/\" target=\"_blank\">DeStRoYzR</a> & <a href=\"http://www.sagamer.net/\" target=\"_blank\">Jehad</a> - За перевод интерфейса на арабский язык";
$lang['stri0017'] = "<a href=\"http://whitecs.ro/\" target=\"_blank\">SakaLuX</a> - За перевод интерфейса на румынский язык.";
$lang['sttw0001'] = "Рейтинг пользователей";
$lang['sttw0002'] = "Лучшие за неделю";
$lang['sttw0001'] = "Топ-10 пользователей";
$lang['sttw0002'] = "За неделю";
$lang['sttw0003'] = "Набрал %s часов онлайна";
$lang['sttw0004'] = "Топ-10 в графике(Разрыв между участниками)";
$lang['sttw0005'] = "Часов (Представляет собой 100 %)";
@@ -230,19 +250,24 @@ $lang['sttw0010'] = "Tоп-10 Vs остальные по времени офф
$lang['sttw0011'] = "Топ-10 в графике";
$lang['sttw0012'] = "Остальные %s клиенты (в часах)";
$lang['sttw0013'] = "С %s Часами аквтиности";
$lang['sttm0001'] = "Лучшие за месяц";
$lang['stta0001'] = "Лучшие за все время";
$lang['upinf'] = "Доступна новая версия Ранг Системы; Сообщаю Клиентам на Сервере...";
$lang['upmsg'] = "\nЭй, доступна новая версия [B]Ранг Системы[/B]!\n\nТекущая версия: %s\n[B]новая версия: %s[/B]\n\nПожалуйста, посетите наш сайт [URL]http://ts-n.net/ranksystem.php[/URL] для получения более подробной информации.";
$lang['sttm0001'] = "За месяц";
$lang['stta0001'] = "За все время";
$lang['upinf'] = "Доступна новая версия RankSystem; Сообщаю пользователям из списка на сервере...";
$lang['upmsg'] = "\nЭй, доступна новая версия [B]RankSystem[/B]!\n\nТекущая версия: %s\n[B]новая версия: %s[/B]\n\nПожалуйста, посетите наш сайт [URL]http://ts-n.net/ranksystem.php[/URL] для получения более подробной информации.";
$lang['upsucc'] = "Обновление базы данных успешно выполнено.";
$lang['upuser'] = "Пользователь %s (Никнейм: %s; UID в базе данных: %s) получает новое количество (сумм. время подключения) из %s (активное время онлайна %s).";
$lang['upuserboost'] = "Пользователь %s (Никнейм: %s; UID в базе данных: %s) получает новое количество (сумм. время подключения) из %s (активное время онлайна %s) <b>[BOOST %sx]</b>.";
$lang['upusrerr'] = "Пользователь с уникальным ID %s не был найден (не правильно указан Уникальный ID или пользователь в настоящий момент не подключен к серверу Teamspeak)!";
$lang['upusrinf'] = "Пользователь %s был успешно информирован.";
$lang['upusrinf'] = "Пользователь %s был успешно проинформирован.";
$lang['user'] = "Логин";
$lang['wi'] = "Веб-панель";
$lang['wiaction'] = "Выполнить";
$lang['wiadmhide'] = "hide excepted clients";
$lang['wiadmhidedesc'] = "To hide excepted user in the following selection";
$lang['wiadmuuid'] = "UID администратора";
$lang['wiadmuuiddesc'] = "Введите здесь уникальный Teamspeak 3 идентификатор(UID) Администратора RankSystem.<br><br>В дальнейшем это пригодится вам, если вы потеряете пароль и доступ к веб-панели.<br><br>Если UID не задан, то сбросить пароль будет невозможно!";
$lang['wiboost'] = "Бустер онлайна";
$lang['wiboostdesc'] = "Вы можете указать здесь ID групп сервера(Их необходимо создать на TeamSpeak сервере заранее), выступающие в роли множителя накапливаемого времени, которое получает пользователь за онлайн на сервере. Также вы должны указать на сколько должно умножаться время и период действия группы-множителя. Чем больше множитель времени, тем быстрее пользователь достигнет следующий ранг. По окончанию действия множителя, группа-множитель автоматически снимается с пользователя. Пример указания группы-множителя следующий: ID группы=> множитель=> время(В секундах). Если вы хотите сделать две такие группы, то просто разделите их между собой запятой.<br><br>Пример:<br>12=>2=>6000,13=>3=>2500,14=>5=>600<br><br>Из примера выше следует, что группа с ID 12 дает множитель времени х2 на 6000 секунд, а группа 13 имеет множитель х3 на 2500 секунд. 14 группа соответственно, имеет множитель х5 на 600 секунд.";
$lang['wiboostdesc'] = "Вы можете указать здесь ID групп сервера(Их необходимо создать на TeamSpeak сервере заранее), выступающие в роли множителя накапливаемого времени, которое получает пользователь за онлайн на сервере. Также вы должны указать на сколько должно умножаться время и период действия группы-множителя. Чем больше множитель времени, тем быстрее пользователь достигнет следующий ранг. По окончанию действия множителя, группа-множитель автоматически снимается с пользователя. Пример указания группы-множителя следующий: ID группы=> множитель=> время(В секундах). Если вы хотите сделать две или больше таких групп, то разделите их между собой запятой.<br><br>Пример:<br>12=>2=>6000,13=>3=>2500,14=>5=>600<br><br>Из примера выше следует, что группа с ID 12 дает множитель времени х2 на 6000 секунд, а группа 13 имеет множитель х3 на 2500 секунд. 14 группа соответственно, имеет множитель х5 на 600 секунд.";
$lang['wibot1'] = "RankSystem был выключен. Более подробную информацию смотрите в логе ниже!";
$lang['wibot2'] = "RankSystem запущен. Более подробную информацию смотрите в логе ниже!";
$lang['wibot3'] = "RankSystem перезагружается. Более подробную информацию смотрите в логе ниже!";
@@ -251,31 +276,36 @@ $lang['wibot5'] = "Запустить";
$lang['wibot6'] = "Остановить";
$lang['wibot7'] = "Перезапустить";
$lang['wibot8'] = "Лог RankSystem:";
$lang['wibot9'] = "Заполните все обязательные поля перед запуском RankSystem!!";
$lang['wibot9'] = "Заполните все обязательные поля перед запуском RankSystem!";
$lang['wichdbid'] = "Client-database-ID reset";
$lang['wichdbiddesc'] = "Сбрасывает время онлайн пользователя, если его ID в базе данных клиента TeamSpeak изменился.<br><br>Пример:<br>Если пользователь удален из БД сервера TeamSpeak, то, новый ID в базе данных клиента будет записан со следующим подключением к серверу.";
$lang['wiconferr'] = "Есть ошибка в конфигурации Ranksystem. Пожалуйста, зайдите в Веб-Панель и проверьте настройки раздела 'Настройка Ранг Системы'. Особенно тщательно проверьте 'Ранги'!";
$lang['wiconferr'] = "Есть ошибка в конфигурации Ranksystem. Пожалуйста, зайдите в Веб-Панель и проверьте настройки раздела 'Настройка RankSystem'. Особенно тщательно проверьте 'Ранги'!";
$lang['wichpw1'] = "Неверный старый пароль. Пожалуйста, повторите ввод заново.";
$lang['wichpw2'] = "Новые пароли не совпадают. Пожалуйста, повторите ввод заново.";
$lang['wichpw3'] = "Пароль для веб-панели успешно изменён. IP инициировавший сброс: IP %s.";
$lang['wichpw4'] = "Изменить пароль";
$lang['widaform'] = "Формат даты";
$lang['widaformdesc'] = "Выберите формат показа даты.<br><br>Пример:<br>%a дней, %h часов, %i минут, %s секунд";
$lang['widbcfgsuc'] = "Настройки Базы Данных успешно сохранены.";
$lang['widbcfgerr'] = "Ошибка сохранения настроек в базе данных! Ошибка подключения, проверьте на правильность настройки 'other/dbconfig.php'";
$lang['widbcfgerr'] = "Ошибка сохранения настроек в базе данных! Ошибка подключения, проверьте на правильность настройки '/other/dbconfig.php'";
$lang['widelcld'] = "удаление пользователей";
$lang['widelcldgrp'] = "Обновить группы";
$lang['widelcldgrpdesc'] = "RankSystem хранит текущие группы рангов пользователей в своей базе данных и после того, как вы отредактируете этих пользователей, то пройдет некоторое время, прежде чем бот уберёт затронутых пользователей из их прежних групп ранга.<br>Однако, этой функцией вы можете принудительно запустить процесс обновления групп ранга у всех пользователей, которые в данный момент подключены к серверу.";
$lang['widelclddesc'] = "Удаление выбранных клиентов из базы данных RankSystem.<br><br>Клиент непосредственно на сервере Teamspeak не будет удален.";
$lang['widelcldgrpdesc'] = "RankSystem хранит текущие группы рангов пользователей в своей базе данных и после того, как вы отредактируете этих пользователей должно пройти некоторое время, прежде чем RankSystem уберёт затронутых пользователей из их прежних групп ранга.<br>Однако, этой функцией вы можете принудительно запустить процесс обновления групп ранга у всех пользователей, которые в данный момент подключены к серверу.";
$lang['widelclddesc'] = "Удаление выбранных пользователей из базы данных RankSystem.<br><br>Пользователь из базы данных сервера Teamspeak не будет удален.";
$lang['widelsg'] = "Удалить их также из групп сервера";
$lang['widelsgdesc'] = "Выберите, если клиенты должны также быть удалены из последней заработанной ими группы-ранга.";
$lang['wideltime'] = "Время удаления";
$lang['wideltimedesc'] = "Очистка базы данных Ранг Системы от старых клиентов.<br>Введите время в секундах, достигнув которого, пользователь не будет удален из БД RankSystem.<br><br>0 - Удаление всех пользователей из БД RankSystem<br><br>При этом база данных пользователей на сервере TeamSpeak затронута не будет!";
$lang['wiexcid'] = "Исключения каналов";
$lang['wiexciddesc'] = "Через запятую должен будет указан список каналов, пользователей в которых должна будет игнорировать RankSystem<br><br>Находясь в этих каналах, пользователям не будет начислять время за онлайн на сервере. <br><br>Данную функция можно использовать к примеру, для AFK каналов.<br>При режиме 'активное время', эта функция становится бесполезной, т.к. в канале юзеру перестает вовсе начисляться время бездействия<br><br>Пользователи находящиеся в таких каналах, помечаются на этот период как 'исключение из списков RankSystem'. К тому же, данные пользователи перестают отображаться в 'stats/list_rankup.php' и становятся доступны только с фильтром поиска или с включенным отображением \"исключенных клиентов\"(Страница статистики - \"исключенный клиент\").";
$lang['wiexgrp'] = "Исключения сервер групп";
$lang['wideltimedesc'] = "Очистка базы данных RankSystem от старых пользователей.<br>Введите время в секундах, достигнув которого, пользователь не будет удален из БД RankSystem.<br><br>0 - Удаление всех пользователей из БД RankSystem<br><br>При этом база данных пользователей на сервере TeamSpeak затронута не будет!";
$lang['wiexcid'] = "Исключ. каналы";
$lang['wiexciddesc'] = "Через запятую должен будет указан список каналов, пользователей в которых должна будет игнорировать RankSystem<br><br>Находясь в этих каналах, пользователям не будет начисляться время за онлайн на сервере. <br><br>Данную функция можно использовать к примеру, для AFK каналов.<br>При режиме подсчёта за 'активное время', эта функция становится бесполезной, т.к. в канале юзеру перестает вовсе начисляться время бездействия<br><br>Пользователи находящиеся в таких каналах, помечаются на этот период как 'исключенные из RankSystem'. К тому же, данные пользователи перестают отображаться в 'stats/list_rankup.php' и становятся доступны только с фильтром поиска или с включенным отображением \"исключенных пользователей\"(Страница статистики - \"исключенные пользователи\").";
$lang['wiexgrp'] = "Исключ. группы сервера";
$lang['wiexgrpdesc'] = "Укажите через запятую ID групп сервера, пользователи в которых будут игнорироваться RankSystem.<br>Если пользователь находится хоты бы в одной из этих групп, то RankSystem будет игнорировать его.(Также не будет начислять онлайн)";
$lang['wiexuid'] = "Исключение для пользователей";
$lang['wiexuiddesc'] = "Укажите через запятую уникальные идентификаторы клиентов (UID), которых будет игнорировать RankSystem и им не будет засчитываться время, проведенное на сервере.<br>";
$lang['wiexuid'] = "Исключенные пользователи";
$lang['wiexuiddesc'] = "Укажите через запятую уникальные идентификаторы пользователей (UID), которых будет игнорировать RankSystem и им не будет засчитываться время, проведенное на сервере.<br>";
$lang['wigrptime'] = "Настройка рангов";
$lang['wigrptimedesc'] = "Укажите через какой промежуток времени, будут выдаваться группы сервера.<br><br>Время (в секундах)=>номер группы сервера(ServerGroupID)<br><br>К тому же, от выбранного режима будет зависеть.<br><br>Каждый параметр должен разделяться запятой.<br><br>Так же время должно быть указано по 'нарастающей'<br><br>Пример:<br>60=>9,120=>10,180=>11<br><br>По истечению 60 секунд пользователь получает сервер группу под SGID 9, по истечению еще 120 секунд пользователь получает сервер группу SGID 10, и так далее...";
$lang['wihladm'] = "Список пользователей (Admin-Mode)";
$lang['wihladm1'] = "Начислить время пользователю";
$lang['wihlcfg'] = "Настройка RankSystem";
$lang['wihldb'] = "Настройки Базы Данных";
$lang['wihlmsg'] = "Настройка оповещения";
@@ -283,16 +313,16 @@ $lang['wihlsty'] = "Отображение пользователей на с
$lang['wihlts'] = "Настройка подключения к TeamSpeak";
$lang['wihlvs'] = "Прочие настройки";
$lang['wiignidle'] = "Игнорировать время бездействия";
$lang['wiignidledesc'] = "Задать период, в течение которого время бездействия будет игнорироваться.<br><br>Время бездействия - если клиент не выполняет каких-либо действий на сервере (=idle/бездействует), это время также учитывается RankSystem. Только когда установленный лимит будет достигнут, RankSystem начнет подсчитывать время бездействия для пользователя.<br><br>Эта функция работает только при включенном режиме одсчитывать активное время'(при высчитывании группы-ранга, когда время бездействия вычитается из \"активного\" времени).<br><br>Использование этой функции оправдано в том случае, если пользователь \"слушает\" говорящих людей и при этом ему зачисляется \"время бездействия\", которое обнуляется при любом его действии. <br><br>0= отключить данную функцию<br><br>Пример:<br>Игнорировать бездействие= 600 (секунд)<br>Клиенту 8 минут простоя не будут засчитаны системой рангов и оно будет ему засчитано как \"активное время\". Если пользователь находился 12 минут в бездействии при \"игнорировании бездействия\" в 10 минут, то ему будет зачислены только 2 минуты простоя.";
$lang['wiignidledesc'] = "Задать период, в течение которого время бездействия будет игнорироваться.<br><br>Время бездействия - если клиент не выполняет каких-либо действий на сервере (=idle/бездействует), это время также учитывается RankSystem. Только когда установленный лимит будет достигнут, RankSystem начнет подсчитывать время бездействия для пользователя.<br><br>Эта функция работает только при включенном режиме подсчёта за 'активное время'(при высчитывании группы-ранга, когда время бездействия вычитается из \"активного\" времени).<br><br>Использование этой функции оправдано в том случае, если пользователь \"слушает\" говорящих людей и при этом ему зачисляется \"время бездействия\", которое обнуляется при любом его действии. <br><br>0= отключить данную функцию<br><br>Пример:<br>Игнорировать бездействие= 600 (секунд)<br>Клиенту 8 минут простоя не будут засчитаны системой рангов и оно будет ему засчитано как \"активное время\". Если пользователь находился 12 минут в бездействии при \"игнорировании бездействия\" в 10 минут, то ему будет зачислены только 2 минуты простоя.";
$lang['wilogout'] = "Выход";
$lang['wilog'] = "Папка логирования работы RankSystem";
$lang['wilogdesc'] = "Расположение логов Ranksystem на диске.<br><br>Пример:<br>/var/logs/ranksystem/<br><br>Убедитесь, что веб-пользователь имеет разрешение на редактирование этой папки/файлов(chmod).";
$lang['wimsgmsg'] = "Оповещение";
$lang['wimsgmsgdesc'] = "Задать сообщение, которое будет отправлено пользователю, при достижении высшего ранга.<br><br>Данное сообщение отправляется посредством личных сообщений на TeamSpeak 3 сервере. Текст поддерживает использование bb-кодов программы Teamspeak.<br>http://ts-n.net/lexicon.php?showid=97#lexindex<br><br>Кроме того, также поддерживаются следующие аргументы в сообщении:<br>%1\$s - дни<br>%2\$s - часы<br>%3\$s - минут<br>%4\$s - секунды<br><br>Пример:<br>Привет,\\nты достиг высший ранг, за время онлайн на сервере в течение %1\$s дней, %2\$s часов и %3\$s минут на нашем сервере.[B]Продолжай в том же духе![/B] ;-)";
$lang['wimsgsn'] = "Server-News";
$lang['wimsgsndesc'] = "Define a message, which will be shown on the /stats/ page as server news.<br><br>You can use default html functions to modify the layout<br><br>Example:<br>&#60b&#62; - <b>for bold</b><br>&#60u&#62; - <u>for underline</u><br>&#60i&#62; - <i>for italic</i><br>&#60br&#62; - for word-wrap (new line)";
$lang['wimsgsn'] = "Новости сервера";
$lang['wimsgsndesc'] = "Здесь указывается новостное сообщение, отображаемое пользователям в каталоге сайта \"/stats/\".<br><br>Вы можете использвать html-разметку для создания красивого оформления текста.<br><br>Пример:<br>&#60b&#62TEXT&#60/b&#62; - <b>Жирный</b><br>&#60u&#62TEXT&#60/u&#62; - <u>Подчеркнутый</u><br>&#60i&#62TEXT&#60/i&#62; - <i>Наклонный</i><br>&#60br&#62; - Перенос текста на новую строку";
$lang['wimsgusr'] = "Уведомление при повышении";
$lang['wimsgusrdesc'] = "Сообщение пользователю о повышение ранга.";
$lang['wimsgusrdesc'] = "Сообщение пользователю о повышении ранга.";
$lang['winav1'] = "TeamSpeak";
$lang['winav2'] = "База данных";
$lang['winav3'] = "Система";
@@ -303,8 +333,30 @@ $lang['winav7'] = "Администрирование";
$lang['winav8'] = "Запустить / Остановить бота";
$lang['winav9'] = "Доступно обновление!";
$lang['winav10'] = "Соединение с данным сайтом не защищено с помощью %s HTTPS%sЭто может повлечь за собой проблемы для вашей приватности и безопасности! %sДля использования HTTPS ваш веб-сервер должен поддерживать SSL-соединение.";
$lang['wiselcld'] = "Выбор клиентов";
$lang['wiselclddesc'] = "Выберите клиентов, путём ввода их последнего имени. В процессе ввода вы увидите подсказку<br>Для выбора нескольких пользователей нужно поставить запятую, которая поставится автоматически, после завершения ввода первого пользователя<br><br>После завершения ввода пользователей, выберите необходимое для них действие в селекторах ниже.";
$lang['winav11'] = "Пожалуйста, укажите ваш уникальный идентификатор(UID) в разделе меню \"Прочее\". Это очень важно, на случай, если вы потеряете пароль от аккаунта веб-панели.";
$lang['winxinfo'] = "Команда \"nextup\"";
$lang['winxinfodesc'] = "Разрешает отправлять RankSytem-боту команду \"nextup\" личным сообщением.<br><br>После отправки команды пользователю будет отправлено ответное сообщение с информацией о требуемом времени до следующего повышения.";
$lang['winxmsg1'] = "Сообщение-ответ";
$lang['winxmsgdesc1'] = "Задайте форматирование и текст для сообщения, которое будет отправлено ответом на команду \"nextup\".<br><br>Аргументы:<br>%1\$s - Оставшиеся дни до повышения<br>%2\$s - часы<br>%3\$s - минуты<br>%4\$s - секунды<br>%5\$s - Имя следующей группы-ранга<br><br>Пример:<br>Вы достигнете следующего ранга через: %1\$s дней, %2\$s часов, %3\$s минут и %4\$s секунд. Название следующей группы-ранга: [B]%5\$s[/B].";
$lang['winxmsg2'] = "Сообщ. о макс.ранге";
$lang['winxmsgdesc2'] = "Данный текст будет отправлен пользователю при вводе команды \"nextup\", если пользователь уже достиг высшего ранга<br><br>Аргументы:<br>%1\$s - Оставшиеся дни до повышения<br>%2\$s - часы<br>%3\$s - минуты<br>%4\$s - секунды<br><br>Пример:Вы достигли высшего ранга.";
$lang['winxmsg3'] = "Сообщ. о исключении";
$lang['winxmsgdesc3'] = "Данный текст будет отправлен пользователю при вводе команды \"nextup\", если пользователь исключен из системы рангов RankSystem(Исключенный канал, группа, UID)<br><br>Аргументы:<br>%1\$s - Оставшиеся дни до повышения<br>%2\$s - часы<br>%3\$s - минуты<br>%4\$s - секунды<br>%5\$s - Имя следующей группы-ранга<br><br>Пример:<br>Вы исключены из системы рангов RankSystem. Такое могло произойти, если Вы находитесь в \"Исключенном канале\", группе сервера или ваш идентификатор был вручную добавлен в исключение. За подробной информацией обратитесь к администратору сервера.";
$lang['wirtpw1'] = "Увы. Вами ранее не был указан UID администратора, с помощью которого должно производиться восстановление пароля от веб-панели. <b>В данном случае, восстановление пароля невозможно средствами RankSystem</b>.<br>Вы можете попробовать вручную изменить пароль от аккаунта через базу данных, но не забудьте при этом, что там хранится md5-хеш пароля( md5(\"password\") -> d41d8cd98f00b204e9800998ecf8427e ).";
$lang['wirtpw2'] = "Администратор с заданным UID не был найден среди пользователей онлайн на сервере. Вам необходимо подключиться к серверу с заданного в веб-панели уникального идентификатора(UID)!";
$lang['wirtpw3'] = "Ваш IP-адрес не совпадает с IP Администратора. Такое могло произойти, если ваш траффик в браузере перенаправлен на прокси-сервер или VPN(протоколы IPv4 / IPv6 также учитываются при сверке IP).";
$lang['wirtpw4'] = "\nThe password for the webinterface was successfully reset.\nUsername: %s\nPassword: [B]%s[/B]\n\nLogin %shere%s";
$lang['wirtpw4'] = "\nПароль для веб-панели успешно сброшен.\nПользователь: %s\nПароль: [B]%s[/B]\n\nВход %sздесь%s";
$lang['wirtpw5'] = "Сообщение с новым паролем было отправлено через Teamspeak 3 сервер Администратору. Нажмите %sздесь%s, чтобы войти";
$lang['wirtpw6'] = "Пароль от веб-панели успешно сброшен. IP, с которого произведен сброс: %s.";
$lang['wirtpw7'] = "Сбросить пароль";
$lang['wirtpw8'] = "Здесь вы можете сбросить пароль для восстановления доступа к веб-панели";
$lang['wirtpw9'] = "Для сброса пароля потребуется следующее:";
$lang['wirtpw10'] = "Вы должны находиться онлайн на сервере.";
$lang['wirtpw11'] = "Ранее в веб-панели должен был быть указан UID Администратора.";
$lang['wirtpw12'] = "Ваши IP-адреса на сервере и на данной странице сайта должны совпадать (протоколы IPv4 / IPv6 также учитываются при сверке IP).";
$lang['wiselcld'] = "Выбор пользователя";
$lang['wiselclddesc'] = "Укажите пользователя по его последнему никнейму или уникальному идентификатору(UID), или ID в базе данных Teamspeak 3 сервера.<br><br>Для большой базы данных поиск пользователя может занять некоторое время. Рекомендуется вставлять сразу скопированный никнейм(или UID) пользователя.";
$lang['wishcolas'] = "Текущая группа сервера";
$lang['wishcolasdesc'] = "Показ колонки 'Текущая группа сервера' в stats/list_rankup.php";
$lang['wishcolat'] = "Время активности";
@@ -313,6 +365,8 @@ $lang['wishcolcld'] = "Ник клиента";
$lang['wishcolclddesc'] = "Показ колонки 'Ник клиента' в stats/list_rankup.php";
$lang['wishcoldbid'] = "ID в Базе данных";
$lang['wishcoldbiddesc'] = "Показ колонки 'ID в Базе данных' в stats/list_rankup.php";
$lang['wishcolgs'] = "actual group since";
$lang['wishcolgsdesc'] = "Show column 'actual group since' in list_rankup.php";
$lang['wishcolit'] = "Учитывать время простоя";
$lang['wishcolitdesc'] = "Показ колонки 'суммарное время простоя' в stats/list_rankup.php";
$lang['wishcolls'] = "Последний раз замечен";
@@ -325,27 +379,29 @@ $lang['wishcolrg'] = "Ранг";
$lang['wishcolrgdesc'] = "Показ колонки 'Ранг' в stats/list_rankup.php";
$lang['wishcolsg'] = "Следующая сервер группа";
$lang['wishcolsgdesc'] = "Показ колонки 'следующая сервер группа' в stats/list_rankup.php";
$lang['wishcoluuid'] = "Client-ID";
$lang['wishcoluuid'] = "UID пользов.";
$lang['wishcoluuiddesc'] = "Показ колонки 'уникальный ID клиента'(UID) в stats/list_rankup.php";
$lang['wishexcld'] = "Пользователи исключения";
$lang['wishexcld'] = "Исключенные пользователи";
$lang['wishexclddesc'] = "Показывать пользователей в list_rankup.php,<br>которые исключены и не участвуют в системе рангов.";
$lang['wishexgrp'] = "Группы исключения";
$lang['wishexgrpdesc'] = "Показывать пользователей в list_rankup.php, которые находятся в списке 'исключение клиента' и не должны учитываться RankSystem.";
$lang['wishexgrpdesc'] = "Показывать пользователей в list_rankup.php, которые находятся в списке 'исключенных пользователей' и не должны учитываться RankSystem.";
$lang['wishhicld'] = "Пользователи с высшим рангом";
$lang['wishhiclddesc'] = "Показывать пользователей в list_rankup.php, который достиг высшего уровня в Ranksystem.";
$lang['wishhiclddesc'] = "Показывать пользователей в list_rankup.php, достигших высшего уровня в Ranksystem.";
$lang['wishnav'] = "show site-navigation";
$lang['wishnavdesc'] = "Show the site navigation on 'stats/' page.<br><br>If this option is deactivated on the stats page the site navigation will be hidden.<br>You can then take each site i.e. 'stats/list_rankup.php' and embed this as frame in your existing website or bulletin board.";
$lang['wisupidle'] = "Режим";
$lang['wisupidledesc'] = "Предоставлены два режима, от которых будет высчиваться ранг пользователей.<br><br>1) Время подключения(Общее время): Общее время подключения на сервере, складывается из \"Активного времени\" и \"времени бездействия\"(колонка 'Сумм. время подключения' в 'stats/list_rankup.php')<br><br>2) Активное время(Время активности): Время, которое пользователь не находился в бездействии. Значение этого времени высчитывается путем вычитания \"времени бездействия из\" из \"Общего времени подключения на сервере\" (Колонка 'Сумм. время активности' в 'stats/list_rankup.php').<br><br>Не рекомендуется смена режима при уже отработавшем долгий срок старом режиме, но допустимо.";
$lang['wisupidledesc'] = "Предоставлены два режима, по которым будет высчиваться ранг пользователей:<br><br>1) Время подключения(Общее время): Общее время подключения на сервере, складывается из \"Активного времени\" и \"времени бездействия\"(колонка 'Сумм. время подключения' в 'stats/list_rankup.php')<br><br>2) Активное время(Время активности): Время, которое пользователь не находился в бездействии. Значение этого времени высчитывается путем вычитания \"времени бездействия из\" из \"Общего времени подключения на сервере\" (Колонка 'Сумм. время активности' в 'stats/list_rankup.php').<br><br>Не рекомендуется смена режима при уже отработавшем долгий срок старом режиме, но допустимо.";
$lang['wisvconf'] = "Сохранить";
$lang['wisvsuc'] = "Изменения успешно сохранены!";
$lang['wisvres'] = "Для принятия внесенных правок вам необходимо перезагрузить RankSystem!";
$lang['witime'] = "Часовой пояс";
$lang['witimedesc'] = "Выбрать часовой пояс, в котором находится сервер.";
$lang['witimedesc'] = "Выбрать часовой пояс сервера.";
$lang['wits3dch'] = "Канал по умолчанию";
$lang['wits3dchdesc'] = "При подключении на сервер, бот будет пытаться войти в этот канал и останется там.";
$lang['wits3host'] = "TS3 адрес";
$lang['wits3dchdesc'] = "При подключении к серверу, бот RankSystem будет пытаться войти в этот канал и останется там.";
$lang['wits3host'] = "Адрес TS3";
$lang['wits3hostdesc'] = "Адрес TeamSpeak 3 Сервера<br>(IP или DNS)";
$lang['wits3sm'] = "Замедленный режим";
$lang['wits3smdesc'] = "Замедленный режим позволяет предотвратить флуд query-командами на сервер, из-за которого RankSystem может получить временный бан со стороны TeamSpeak 3 сервера.<br><br>!!! Также это снижает нагрузку на ЦП и уменьшает расход трафика !!!<br><br>Однако, не включайте эту функцию, если нет в ней нужды, потому как с ней не работает очистка базы от неактивных пользователей. К тому же, замедленный режим значительно увеличивает время обработки разного рода процессов.";
$lang['wits3smdesc'] = "Замедленный режим позволяет предотвратить флуд query-командами на сервер, из-за которых RankSystem может получить временный бан со стороны TeamSpeak 3 сервера.<br><br>!!! Также это снижает нагрузку на ЦП и уменьшает расход трафика !!!<br><br>Однако, не включайте эту функцию, если нет в ней нужды, потому как с ней не работает очистка базы от неактивных пользователей. К тому же, замедленный режим значительно увеличивает время обработки разного рода процессов.";
$lang['wits3qnm'] = "Основн. ник бота";
$lang['wits3qnm2'] = "Запас. ник бота";
$lang['wits3qnm2desc'] = "Этот никнейм будет использоваться, если первый уже занят. Рекомендуется заполнить!";
@@ -363,7 +419,7 @@ $lang['wiupcheckdesc'] = "Если проверка обновлений вкл
$lang['wiuptime'] = "Интервал проверки";
$lang['wiuptimedesc'] = "Введите здесь промежуток в секундах, через который RankSystem должна проверять наличие обновлений RankSystem.<br>Внимание, после каждой проверки перечисленные пользователи получат уведомление о новой версии. Если ни один из перечисленных пользователей не онлайн, RankSystem будет пытаться уведомить пользователей при следующем сканировании.";
$lang['wiupuid'] = "Получатель обновлений";
$lang['wiupuiddesc'] = "Укажите через запятую уникальные ID(UID) клиентов, которые будут проинформированы о доступных обновлениях посредством приватного сообщения через TeamSpeak.";
$lang['wiupuiddesc'] = "Укажите через запятую UID Teamspeak 3 пользователей, которые будут проинформированы о доступных обновлениях RankSystem, посредством отправки приватного сообщения через TeamSpeak.";
$lang['wivlang'] = "Язык";
$lang['wivlangdesc'] = "Choose a default language for the Ranksystem.<br><br>The language is also selectable on the websites for the users and will be stored for the session.";
$lang['wivlangdesc'] = "Выберите язык, используемый системой RankSystem по умолчанию.<br><br>Язык сайта по-прежнему будет доступен для переключения всем пользователям.";
?>

View File

@@ -21,101 +21,110 @@ try {
}
if (isset($mysqlcon) && ($config = $mysqlcon->query("SELECT * FROM config"))) {
$config = $config->fetchAll();
$ts['host'] = $config[0]['tshost'];
$ts['query'] = $config[0]['tsquery'];
$ts['voice'] = $config[0]['tsvoice'];
$ts['user'] = $config[0]['tsuser'];
$ts['pass'] = $config[0]['tspass'];
$webuser = $config[0]['webuser'];
$webpass = $config[0]['webpass'];
if(!isset($_GET["lang"])) {
if(isset($_SESSION['language'])) {
$language = $_SESSION['language'];
if($config->rowCount() != 0) {
$config = $config->fetchAll();
$ts['host'] = $config[0]['tshost'];
$ts['query'] = $config[0]['tsquery'];
$ts['voice'] = $config[0]['tsvoice'];
$ts['user'] = $config[0]['tsuser'];
$ts['pass'] = $config[0]['tspass'];
$webuser = $config[0]['webuser'];
$webpass = $config[0]['webpass'];
if(!isset($_GET["lang"])) {
if(isset($_SESSION['language'])) {
$language = $_SESSION['language'];
} else {
$language = $config[0]['language'];
}
} elseif($_GET["lang"] == "ar") {
$language = "ar";
$_SESSION['language'] = "ar";
} elseif($_GET["lang"] == "de") {
$language = "de";
$_SESSION['language'] = "de";
} elseif($_GET["lang"] == "it") {
$language = "it";
$_SESSION['language'] = "it";
} elseif($_GET["lang"] == "ro") {
$language = "ro";
$_SESSION['language'] = "ro";
} elseif($_GET["lang"] == "ru") {
$language = "ru";
$_SESSION['language'] = "ru";
} else {
$language = $config[0]['language'];
$language = "en";
$_SESSION['language'] = "en";
}
} elseif($_GET["lang"] == "ar") {
$language = "ar";
$_SESSION['language'] = "ar";
} elseif($_GET["lang"] == "de") {
$language = "de";
$_SESSION['language'] = "de";
} elseif($_GET["lang"] == "it") {
$language = "it";
$_SESSION['language'] = "it";
} elseif($_GET["lang"] == "ro") {
$language = "ro";
$_SESSION['language'] = "ro";
} elseif($_GET["lang"] == "ru") {
$language = "ru";
$_SESSION['language'] = "ru";
} else {
$language = "en";
$_SESSION['language'] = "en";
}
$queryname = $config[0]['queryname'];
$queryname2 = $config[0]['queryname2'];
$slowmode = $config[0]['slowmode'];
if(empty($config[0]['grouptime'])) {
$grouptime = null;
} else {
$grouptimearr = explode(',', $config[0]['grouptime']);
foreach ($grouptimearr as $entry) {
list($key, $value) = explode('=>', $entry);
$grouptime[$key] = $value;
$queryname = $config[0]['queryname'];
$queryname2 = $config[0]['queryname2'];
$slowmode = $config[0]['slowmode'];
if(empty($config[0]['grouptime'])) {
$grouptime = null;
} else {
$grouptimearr = explode(',', $config[0]['grouptime']);
foreach ($grouptimearr as $entry) {
list($key, $value) = explode('=>', $entry);
$grouptime[$key] = $value;
}
}
}
if(empty($config[0]['boost'])) {
$boostarr = null;
} else {
$boostexp = explode(',', $config[0]['boost']);
foreach ($boostexp as $entry) {
list($key, $value1, $value2) = explode('=>', $entry);
$boostarr[$key] = array("group"=>$key,"factor"=>$value1,"time"=>$value2);
if(empty($config[0]['boost'])) {
$boostarr = null;
} else {
$boostexp = explode(',', $config[0]['boost']);
foreach ($boostexp as $entry) {
list($key, $value1, $value2) = explode('=>', $entry);
$boostarr[$key] = array("group"=>$key,"factor"=>$value1,"time"=>$value2);
}
}
$resetbydbchange = $config[0]['resetbydbchange'];
$msgtouser = $config[0]['msgtouser'];
$update = $config[0]['upcheck'];
$uniqueid = explode(',', $config[0]['uniqueid']);
$updateinfotime = $config[0]['updateinfotime'];
$currvers = $config[0]['currvers'];
$substridle = $config[0]['substridle'];
$exceptuuid = explode(',', $config[0]['exceptuuid']);
$exceptgroup = explode(',', $config[0]['exceptgroup']);
$exceptcid = explode(',', $config[0]['exceptcid']);
$timeformat = $config[0]['dateformat'];
$showexcld = $config[0]['showexcld'];
$showhighest = $config[0]['showhighest'];
$showcolrg = $config[0]['showcolrg'];
$showcolcld = $config[0]['showcolcld'];
$showcoluuid = $config[0]['showcoluuid'];
$showcoldbid = $config[0]['showcoldbid'];
$showcolls = $config[0]['showcolls'];
$showcolot = $config[0]['showcolot'];
$showcolit = $config[0]['showcolit'];
$showcolat = $config[0]['showcolat'];
$showcolas = $config[0]['showcolas'];
$showcolnx = $config[0]['showcolnx'];
$showcolsg = $config[0]['showcolsg'];
$cleanclients = $config[0]['cleanclients'];
$cleanperiod = $config[0]['cleanperiod'];
$defchid = $config[0]['defchid'];
$logpath = $config[0]['logpath'];
if ($config[0]['timezone'] == NULL) {
$timezone = "Europe/Berlin";
} else {
$timezone = $config[0]['timezone'];
}
date_default_timezone_set($timezone);
$advancemode = $config[0]['advancemode'];
$count_access = $config[0]['count_access'];
$last_access = $config[0]['last_access'];
$ignoreidle = $config[0]['ignoreidle'];
$rankupmsg = $config[0]['rankupmsg'];
$newversion = $config[0]['newversion'];
$servernews = $config[0]['servernews'];
$adminuuid = $config[0]['adminuuid'];
$nextupinfo = $config[0]['nextupinfo'];
$nextupinfomsg1 = $config[0]['nextupinfomsg1'];
$nextupinfomsg2 = $config[0]['nextupinfomsg2'];
$nextupinfomsg3 = $config[0]['nextupinfomsg3'];
$shownav = $config[0]['shownav'];
$showgrpsince = $config[0]['showgrpsince'];
}
$resetbydbchange = $config[0]['resetbydbchange'];
$msgtouser = $config[0]['msgtouser'];
$update = $config[0]['upcheck'];
$uniqueid = explode(',', $config[0]['uniqueid']);
$updateinfotime = $config[0]['updateinfotime'];
$currvers = $config[0]['currvers'];
$substridle = $config[0]['substridle'];
$exceptuuid = explode(',', $config[0]['exceptuuid']);
$exceptgroup = explode(',', $config[0]['exceptgroup']);
$exceptcid = explode(',', $config[0]['exceptcid']);
$timeformat = $config[0]['dateformat'];
$showexcld = $config[0]['showexcld'];
$showhighest = $config[0]['showhighest'];
$showcolrg = $config[0]['showcolrg'];
$showcolcld = $config[0]['showcolcld'];
$showcoluuid = $config[0]['showcoluuid'];
$showcoldbid = $config[0]['showcoldbid'];
$showcolls = $config[0]['showcolls'];
$showcolot = $config[0]['showcolot'];
$showcolit = $config[0]['showcolit'];
$showcolat = $config[0]['showcolat'];
$showcolas = $config[0]['showcolas'];
$showcolnx = $config[0]['showcolnx'];
$showcolsg = $config[0]['showcolsg'];
$cleanclients = $config[0]['cleanclients'];
$cleanperiod = $config[0]['cleanperiod'];
$defchid = $config[0]['defchid'];
$logpath = $config[0]['logpath'];
if ($config[0]['timezone'] == NULL) {
$timezone = "Europe/Berlin";
} else {
$timezone = $config[0]['timezone'];
}
date_default_timezone_set($timezone);
$advancemode = $config[0]['advancemode'];
$count_access = $config[0]['count_access'];
$last_access = $config[0]['last_access'];
$ignoreidle = $config[0]['ignoreidle'];
$rankupmsg = $config[0]['rankupmsg'];
$newversion = $config[0]['newversion'];
$servernews = $config[0]['servernews'];
}
if(!isset($language) || $language == "en") {
require_once(substr(dirname(__FILE__),0,-5).'languages/core_en.php');

View File

@@ -3,7 +3,7 @@ if (isset($_POST['refresh'])) {
$_SESSION = array();
session_destroy();
}
function set_session_ts3($voiceport, $mysqlcon, $dbname, $language) {
function set_session_ts3($voiceport, $mysqlcon, $dbname, $language, $adminuuid) {
if (!empty($_SERVER['HTTP_CLIENT_IP']))
$hpclientip = $_SERVER['HTTP_CLIENT_IP'];
elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
@@ -29,6 +29,9 @@ function set_session_ts3($voiceport, $mysqlcon, $dbname, $language) {
$_SESSION['tsuid'] = $client['uuid'];
$_SESSION['tscldbid'] = $client['cldbid'];
$_SESSION['tsname'] = $client['name'];
if ($_SESSION['tsuid'] == $adminuuid) {
$_SESSION['admin'] = TRUE;
}
if ($client['firstcon'] == 0) {
$_SESSION['tscreated'] = "unkown";
} else {

View File

@@ -18,7 +18,7 @@ if($language == "ar") {
}
if(!isset($_SESSION['tsuid'])) {
set_session_ts3($ts['voice'], $mysqlcon, $dbname, $language);
set_session_ts3($ts['voice'], $mysqlcon, $dbname, $language, $adminuuid);
}
function human_readable_size($bytes) {

View File

@@ -6,7 +6,7 @@ require_once('../other/config.php');
require_once('../other/session.php');
if(!isset($_SESSION['tsuid'])) {
set_session_ts3($ts['voice'], $mysqlcon, $dbname, $language);
set_session_ts3($ts['voice'], $mysqlcon, $dbname, $language, $adminuuid);
}
require_once('nav.php');
?>

View File

@@ -23,7 +23,7 @@ function getclientip() {
}
if(!isset($_SESSION['tsuid'])) {
set_session_ts3($ts['voice'], $mysqlcon, $dbname, $language);
set_session_ts3($ts['voice'], $mysqlcon, $dbname, $language, $adminuuid);
}
if(isset($_POST['username'])) {
@@ -114,7 +114,7 @@ $keyorder = '';
if (isset($_GET['sort'])) {
$keysort = strip_tags(htmlspecialchars($_GET['sort']));
}
if ($keysort != 'name' && $keysort != 'uuid' && $keysort != 'cldbid' && $keysort != 'rank' && $keysort != 'lastseen' && $keysort != 'count' && $keysort != 'idle' && $keysort != 'active') {
if ($keysort != 'name' && $keysort != 'uuid' && $keysort != 'cldbid' && $keysort != 'rank' && $keysort != 'lastseen' && $keysort != 'count' && $keysort != 'idle' && $keysort != 'active' && $keysort != 'grpsince') {
$keysort = 'nextup';
}
if (isset($_GET['order'])) {
@@ -142,24 +142,24 @@ if(!isset($_GET["user"])) {
$start = $seite * $user_pro_seite - $user_pro_seite;
if ($keysort == 'active' && $keyorder == 'asc') {
$dbdata = $mysqlcon->prepare("SELECT uuid,cldbid,rank,count,name,idle,cldgroup,online,nextup,lastseen,ip,grpid,except FROM $dbname.user WHERE (uuid LIKE :searchvalue OR cldbid LIKE :searchvalue OR name LIKE :searchvalue)$filter ORDER BY (count - idle) LIMIT :start, :userproseite");
$dbdata = $mysqlcon->prepare("SELECT uuid,cldbid,rank,count,name,idle,cldgroup,online,nextup,lastseen,ip,grpid,except,grpsince FROM $dbname.user WHERE (uuid LIKE :searchvalue OR cldbid LIKE :searchvalue OR name LIKE :searchvalue)$filter ORDER BY (count - idle) LIMIT :start, :userproseite");
$dbdata->bindValue(':searchvalue', '%'.$searchstring.'%', PDO::PARAM_STR);
$dbdata->bindValue(':start', (int) $start, PDO::PARAM_INT);
$dbdata->bindValue(':userproseite', (int) $user_pro_seite, PDO::PARAM_INT);
$dbdata->execute();
} elseif ($keysort == 'active' && $keyorder == 'desc') {
$dbdata = $mysqlcon->prepare("SELECT uuid,cldbid,rank,count,name,idle,cldgroup,online,nextup,lastseen,ip,grpid,except FROM $dbname.user WHERE (uuid LIKE :searchvalue OR cldbid LIKE :searchvalue OR name LIKE :searchvalue)$filter ORDER BY (idle - count) LIMIT :start, :userproseite");
$dbdata = $mysqlcon->prepare("SELECT uuid,cldbid,rank,count,name,idle,cldgroup,online,nextup,lastseen,ip,grpid,except,grpsince FROM $dbname.user WHERE (uuid LIKE :searchvalue OR cldbid LIKE :searchvalue OR name LIKE :searchvalue)$filter ORDER BY (idle - count) LIMIT :start, :userproseite");
$dbdata->bindValue(':searchvalue', '%'.$searchstring.'%', PDO::PARAM_STR);
$dbdata->bindValue(':start', (int) $start, PDO::PARAM_INT);
$dbdata->bindValue(':userproseite', (int) $user_pro_seite, PDO::PARAM_INT);
$dbdata->execute();
} elseif ($searchstring == '') {
$dbdata = $mysqlcon->prepare("SELECT uuid,cldbid,rank,count,name,idle,cldgroup,online,nextup,lastseen,ip,grpid,except FROM $dbname.user WHERE 1=1$filter ORDER BY $keysort $keyorder LIMIT :start, :userproseite");
$dbdata = $mysqlcon->prepare("SELECT uuid,cldbid,rank,count,name,idle,cldgroup,online,nextup,lastseen,ip,grpid,except,grpsince FROM $dbname.user WHERE 1=1$filter ORDER BY $keysort $keyorder LIMIT :start, :userproseite");
$dbdata->bindValue(':start', (int) $start, PDO::PARAM_INT);
$dbdata->bindValue(':userproseite', (int) $user_pro_seite, PDO::PARAM_INT);
$dbdata->execute();
} else {
$dbdata = $mysqlcon->prepare("SELECT uuid,cldbid,rank,count,name,idle,cldgroup,online,nextup,lastseen,ip,grpid,except FROM $dbname.user WHERE (uuid LIKE :searchvalue OR cldbid LIKE :searchvalue OR name LIKE :searchvalue)$filter ORDER BY $keysort $keyorder LIMIT :start, :userproseite");
$dbdata = $mysqlcon->prepare("SELECT uuid,cldbid,rank,count,name,idle,cldgroup,online,nextup,lastseen,ip,grpid,except,grpsince FROM $dbname.user WHERE (uuid LIKE :searchvalue OR cldbid LIKE :searchvalue OR name LIKE :searchvalue)$filter ORDER BY $keysort $keyorder LIMIT :start, :userproseite");
$dbdata->bindValue(':searchvalue', '%'.$searchstring.'%', PDO::PARAM_STR);
$dbdata->bindValue(':start', (int) $start, PDO::PARAM_INT);
$dbdata->bindValue(':userproseite', (int) $user_pro_seite, PDO::PARAM_INT);
@@ -213,7 +213,8 @@ foreach($uuids as $uuid) {
"lastseen" => $uuid['lastseen'],
"ip" => $uuid['ip'],
"grpid" => $uuid['grpid'],
"except" => $uuid['except']
"except" => $uuid['except'],
"grpsince" => $uuid['grpsince']
);
$uidarr[] = $uuid['uuid'];
$countentries = $countentries + 1;
@@ -257,7 +258,8 @@ if($adminlogin == 1) {
<?PHP if(isset($err_msg)) error_handling($err_msg, 3); ?>
<div class="container-fluid">
<?PHP
if($user_pro_seite != "all") {
if($user_pro_seite == "all" || $shownav == 0) {
} else {
pagination($keysort,$keyorder,$user_pro_seite,$seiten_anzahl_gerundet,$seite,$getstring);
}
?>
@@ -286,6 +288,8 @@ if($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 ($showcolas == 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 ($showgrpsince == 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 ($showcolnx == 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 ($showcolsg == 1 || $adminlogin == 1)
@@ -384,6 +388,13 @@ if($adminlogin == 1) {
echo '<td class="text-center">' , $sqlhisgroup[$usergroupid] , '</td>';
}
}
if ($showgrpsince == 1 || $adminlogin == 1) {
if ($sqlhis[$uid]['grpsince'] == 0) {
echo '<td class="text-center"></td>';
} else {
echo '<td class="text-center">' , date('Y-m-d H:i:s',$sqlhis[$uid]['grpsince']), '</td>';
}
}
if ($showcolnx == 1 || $adminlogin == 1) {
echo '<td class="text-center">';
$dtF = new DateTime("@0");
@@ -407,8 +418,10 @@ if($adminlogin == 1) {
echo '<td class="text-center"><em>',$lang['listexcept'],'</em></td>';
} elseif (isset($sqlhisgroup_file[$groupid]) && $sqlhisgroup_file[$groupid]===true) {
echo '<td class="text-center"><img src="../icons/'.$groupid.'.png" alt="groupicon">&nbsp;&nbsp;' , $sqlhisgroup[$groupid] , '</td>';
} else {
} elseif (isset($sqlhisgroup[$groupid])) {
echo '<td class="text-center">' , $sqlhisgroup[$groupid] , '</td>';
} else {
echo '<td class="text-center"></td>';
}
}
echo '</tr>';

View File

@@ -4,7 +4,7 @@ require_once('../other/config.php');
require_once('../other/session.php');
if(!isset($_SESSION['tsuid'])) {
set_session_ts3($ts['voice'], $mysqlcon, $dbname, $language);
set_session_ts3($ts['voice'], $mysqlcon, $dbname, $language, $adminuuid);
}
$getstring = $_SESSION['tsuid'];

View File

@@ -15,6 +15,7 @@
<link href="../bootstrap/addons/morris/morris.css" rel="stylesheet">
<link href="../bootstrap/addons/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
<link href="../bootstrap/flag_icon/css/flag-icon.min.css" rel="stylesheet">
<link href="../bootstrap/css/custom.css" rel="stylesheet">
<script src="../jquerylib/jquery.js"></script>
@@ -22,7 +23,13 @@
<script src="../bootstrap/addons/morris/raphael.min.js"></script>
<script src="../bootstrap/addons/morris/morris.min.js"></script>
<!--<script src="../bootstrap/addons/morris/morris-data.js"></script>-->
<?PHP
if(isset($shownav) && $shownav == 0) { ?>
<style>
body{margin-top:0px!important}
.fixed{top:0px!important;width:calc(100% - 50px)!important;position:fixed;display:none;color:#000;background-color:#fff!important;}
</style>
<?PHP } ?>
</head>
<body>
<div id="myModal" class="modal fade">
@@ -157,6 +164,9 @@
</div>
</div>
</div>
<?PHP
if($shownav == 1) {
?>
<div id="wrapper">
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-header">
@@ -207,7 +217,23 @@
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user"></i><?PHP echo '&nbsp;&nbsp;' .($_SESSION['connected'] == 0 ? $lang['stnv0028'] : $_SESSION['tsname']); ?>&nbsp;<b class="caret"></b></a>
<ul class="dropdown-menu">
<?PHP echo (!isset($_SESSION['tsname']) ? ' ' : '<li><a href="my_stats.php"><i class="fa fa-fw fa-user"></i>&nbsp;'.$lang['stmy0001'].'</a></li>'); ?>
<?PHP
if(isset($_SESSION['admin'])) {
echo '<li><a href="http',(!empty($_SERVER['HTTPS'])?'s':''),'://',$_SERVER['SERVER_NAME'],substr(dirname($_SERVER['SCRIPT_NAME']),0,-5),'webinterface/ts.php"><i class="fa fa-fw fa-wrench"></i>&nbsp;',$lang['wi'],'</a></li>';
} elseif ($_SESSION['connected'] == 0) {
echo '<li><a href="ts3server://';
if (($ts['host']=='localhost' || $ts['host']=='127.0.0.1') && strpos($_SERVER['HTTP_HOST'], 'www.') == 0) {
echo preg_replace('/www\./','',$_SERVER['HTTP_HOST']);
} elseif ($ts['host']=='localhost' || $ts['host']=='127.0.0.1') {
echo $_SERVER['HTTP_HOST'];
} else {
echo $ts['host'];
}
echo ':'.$ts['voice'];
echo '"><i class="fa fa-fw fa-headphones"></i>&nbsp;'.$lang['stnv0043'].'</a></li>';
}
echo (!isset($_SESSION['tsname']) ? ' ' : '<li><a href="my_stats.php"><i class="fa fa-fw fa-user"></i>&nbsp;'.$lang['stmy0001'].'</a></li>');
?>
<li>
<a href="#myModal" data-toggle="modal"><i class="fa fa-fw fa-envelope"></i>&nbsp;<?PHP echo $lang['stnv0001']; ?></a>
</li>
@@ -282,6 +308,11 @@
</div>
</nav>
<?PHP
} else {
echo '<div id="container">';
}
function error_handling($msg,$type = NULL) {
switch ($type) {
case NULL: echo '<div class="alert alert-success alert-dismissible">'; break;

View File

@@ -6,7 +6,7 @@ require_once('../other/config.php');
require_once('../other/session.php');
if(!isset($_SESSION['tsuid'])) {
set_session_ts3($ts['voice'], $mysqlcon, $dbname, $language);
set_session_ts3($ts['voice'], $mysqlcon, $dbname, $language, $adminuuid);
}
if ($substridle == 1) {

View File

@@ -6,7 +6,7 @@ require_once('../other/config.php');
require_once('../other/session.php');
if(!isset($_SESSION['tsuid'])) {
set_session_ts3($ts['voice'], $mysqlcon, $dbname, $language);
set_session_ts3($ts['voice'], $mysqlcon, $dbname, $language, $adminuuid);
}
if ($substridle == 1) {

View File

@@ -6,7 +6,7 @@ require_once('../other/config.php');
require_once('../other/session.php');
if(!isset($_SESSION['tsuid'])) {
set_session_ts3($ts['voice'], $mysqlcon, $dbname, $language);
set_session_ts3($ts['voice'], $mysqlcon, $dbname, $language, $adminuuid);
}
if ($substridle == 1) {

View File

@@ -43,32 +43,207 @@ if (!isset($_SESSION['username']) || $_SESSION['username'] != $webuser || $_SESS
require_once('nav.php');
if (isset($_POST['update']) && $_SESSION['username'] == $webuser && $_SESSION['password'] == $webpass && $_SESSION['clientip'] == getclientip()) {
if(!isset($_POST['number']) || $_POST['number'] == "yes") {
$_SESSION['showexcepted'] = "yes";
$filter = " AND except='0'";
} else {
$_SESSION['showexcepted'] = "no";
$filter = "";
}
if(($dbuserdata = $mysqlcon->query("SELECT uuid,cldbid,name FROM $dbname.user WHERE 1=1$filter ORDER BY name ASC")) === false) {
$err_msg = "DB Error: ".print_r($mysqlcon->errorInfo(), true); $err_lvl = 3;
}
$user_arr = $dbuserdata->fetchAll(PDO::FETCH_ASSOC);
if (isset($_POST['update']) && $_SESSION['username'] == $webuser && $_SESSION['password'] == $webpass && $_SESSION['clientip'] == getclientip()) {
$setontime = 0;
if($_POST['setontime_day']) { $setontime = $setontime + $_POST['setontime_day'] * 86400; }
if($_POST['setontime_hour']) { $setontime = $setontime + $_POST['setontime_hour'] * 3600; }
if($_POST['setontime_min']) { $setontime = $setontime + $_POST['setontime_min'] * 60; }
if($_POST['setontime_sec']) { $setontime = $setontime + $_POST['setontime_sec']; }
if($setontime == 0) {
$err_msg = $lang['errseltime']; $err_lvl = 3;
} elseif($_POST['user'] == NULL) {
$err_msg = $lang['errselusr']; $err_lvl = 3;
} else {
$allupdateuuid = '';
foreach($_POST['user'] as $user) {
$allupdateuuid .= "'".$user."',";
}
$allupdateuuid = substr($allupdateuuid, 0, -1);
if($mysqlcon->exec("UPDATE $dbname.user set count = count + $setontime WHERE uuid IN ($allupdateuuid)") === false) {
$err_msg = $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); $err_lvl = 3;
} else {
if($mysqlcon->exec("UPDATE $dbname.user_snapshot set count = count + $setontime WHERE uuid IN ($allupdateuuid)") === false) { }
$err_msg = sprintf($lang['sccupcount'],$setontime,$allupdateuuid); $err_lvl = NULL;
}
}
}
?>
<div id="page-wrapper">
<?PHP if(isset($err_msg)) error_handling($err_msg, $err_lvl); ?>
<div class="container-fluid">
<!-- Page Heading -->
<div class="row">
<div class="col-lg-12">
<h1 class="page-header">
Special Functions
<?php echo $lang['wihladm1']; ?>
</h1>
</div>
</div>
<div class="row">&nbsp;</div>
<!-- <form id="update" method="POST"></form> -->
<form name="post" method="POST">
<div class="form-horizontal">
<div class="row">
<div class="text-center">
The functions (delete clients/ clear Ranksystem/ edit clients online time) will come back with one of the next releases...
<div class="col-md-3">
</div>
<div class="col-md-6">
<div class="panel panel-default">
<div class="panel-body">
<div class="form-group">
<label class="col-sm-4 control-label" data-toggle="modal" data-target="#wiadmhidedesc"><?php echo $lang['wiadmhide']; ?><i class="help-hover glyphicon glyphicon-question-sign"></i></label>
<div class="col-sm-8 pull-right">
<select class="selectpicker show-tick form-control" id="number" name="number" onchange="this.form.submit();">
<?PHP
echo '<option value="yes"'; if(!isset($_SESSION['showexcepted']) || $_SESSION['showexcepted'] == "yes") echo " selected=selected"; echo '>hide</option>';
echo '<option value="no"'; if(isset($_SESSION['showexcepted']) && $_SESSION['showexcepted'] == "no") echo " selected=selected"; echo '>show</option>';
?>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label" data-toggle="modal" data-target="#wiselclddesc"><?php echo $lang['wiselcld']; ?><i class="help-hover glyphicon glyphicon-question-sign"></i></label>
<div class="col-sm-8">
<select class="selectpicker show-tick form-control" data-live-search="true" multiple name="user[]">
<?PHP
foreach ($user_arr as $user) {
echo '<option value="',$user['uuid'],'" data-subtext="UUID: ',$user['uuid'],'; DBID: ',$user['cldbid'],'">',$user['name'],'</option>';
}
?>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label" data-toggle="modal" data-target="#setontimedesc"><?php echo $lang['setontime']; ?><i class="help-hover glyphicon glyphicon-question-sign"></i></label>
<div class="col-sm-8">
<input type="text" class="form-control" name="setontime_day">
<script>
$("input[name='setontime_day']").TouchSpin({
min: 0,
max: 106751991167299,
verticalbuttons: true,
prefix: 'Day(s):'
});
</script>
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label" data-toggle="modal" data-target="#setontimedesc"></label>
<div class="col-sm-8">
<input type="text" class="form-control" name="setontime_hour">
<script>
$("input[name='setontime_hour']").TouchSpin({
min: 0,
max: 23,
verticalbuttons: true,
prefix: 'Hour(s):'
});
</script>
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label" data-toggle="modal" data-target="#setontimedesc"></label>
<div class="col-sm-8">
<input type="text" class="form-control" name="setontime_min">
<script>
$("input[name='setontime_min']").TouchSpin({
min: 0,
max: 59,
verticalbuttons: true,
prefix: 'Min.:'
});
</script>
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label" data-toggle="modal" data-target="#setontimedesc"></label>
<div class="col-sm-8">
<input type="text" class="form-control" name="setontime_sec">
<script>
$("input[name='setontime_sec']").TouchSpin({
min: 0,
max: 59,
verticalbuttons: true,
prefix: 'Sec:'
});
</script>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">&nbsp;</div>
<div class="row">
<div class="text-center">
<button type="submit" class="btn btn-primary" name="update"><?php echo $lang['wisvconf']; ?></button>
</div>
</div>
<div class="row">&nbsp;</div>
</div>
</form>
</div>
</div>
</div>
<div class="modal fade" id="wiselclddesc" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title"><?php echo $lang['wiselcld']; ?></h4>
</div>
<div class="modal-body">
<?php echo $lang['wiselclddesc']; ?>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal"><?PHP echo $lang['stnv0002']; ?></button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="setontimedesc" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title"><?php echo $lang['setontime']; ?></h4>
</div>
<div class="modal-body">
<?php echo $lang['setontimedesc']; ?>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal"><?PHP echo $lang['stnv0002']; ?></button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="wiadmhidedesc" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title"><?php echo $lang['wiadmhide']; ?></h4>
</div>
<div class="modal-body">
<?php echo $lang['wiadmhidedesc']; ?>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal"><?PHP echo $lang['stnv0002']; ?></button>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -59,6 +59,9 @@ if (isset($_POST['number'])) {
} else {
$number_lines = 20;
}
$_SESSION['number_lines'] = $number_lines;
} elseif (isset($_SESSION['number_lines'])) {
$number_lines = $_SESSION['number_lines'];
}
$filters = '';
@@ -81,11 +84,15 @@ if (isset($_POST['logfilter']) && in_array('debug', $_POST['logfilter'])) {
$filters .= "DEBUG,";
}
if (!isset($_POST['logfilter'])) {
$filters = "CRITICAL,ERROR,WARNING,NOTICE,INFO,DEBUG";
if($filters != '') {
$_SESSION['logfilter'] = $filters;
}
$filters = explode(',', $filters);
if (!isset($_SESSION['logfilter'])) {
$_SESSION['logfilter'] = "CRITICAL,ERROR,WARNING,NOTICE,INFO,DEBUG";
}
$filters = explode(',', $_SESSION['logfilter']);
if (isset($_POST['logout'])) {
echo "logout";

View File

@@ -0,0 +1,140 @@
<?PHP
session_start();
require_once('../other/config.php');
function enter_logfile($logpath,$timezone,$loglevel,$logtext) {
$file = $logpath.'ranksystem.log';
if ($loglevel == 1) {
$loglevel = " CRITICAL ";
} elseif ($loglevel == 2) {
$loglevel = " ERROR ";
} elseif ($loglevel == 3) {
$loglevel = " WARNING ";
} elseif ($loglevel == 4) {
$loglevel = " NOTICE ";
} elseif ($loglevel == 5) {
$loglevel = " INFO ";
}
$input = DateTime::createFromFormat('U.u', number_format(microtime(true), 6, '.', ''))->setTimeZone(new DateTimeZone($timezone))->format("Y-m-d H:i:s.u ").$loglevel.$logtext."\n";
$loghandle = fopen($file, 'a');
fwrite($loghandle, $input);
if (filesize($file) > 5242880) {
fwrite($loghandle, DateTime::createFromFormat('U.u', number_format(microtime(true), 6, '.', ''))->setTimeZone(new DateTimeZone($timezone))->format("Y-m-d H:i:s.u ")." NOTICE Logfile filesie of 5 MiB reached.. Rotate logfile.\n");
fwrite($loghandle, DateTime::createFromFormat('U.u', number_format(microtime(true), 6, '.', ''))->setTimeZone(new DateTimeZone($timezone))->format("Y-m-d H:i:s.u ")." NOTICE Restart Bot to continue with new log file...\n");
fclose($loghandle);
$file2 = "$file.old";
if (file_exists($file2)) unlink($file2);
rename($file, $file2);
if (substr(php_uname(), 0, 7) == "Windows") {
exec("del /F ".substr(__DIR__,0,-12).'logs/pid');
$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run("cmd /C php ".substr(__DIR__,0,-12)."worker.php start", 0, false);
exit;
} else {
exec("rm -f ".substr(__DIR__,0,-12).'logs/pid');
exec("php ".substr(__DIR__,0,-12)."worker.php start");
exit;
}
}
}
function getclientip() {
if (!empty($_SERVER['HTTP_CLIENT_IP']))
return $_SERVER['HTTP_CLIENT_IP'];
elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
return $_SERVER['HTTP_X_FORWARDED_FOR'];
elseif(!empty($_SERVER['HTTP_X_FORWARDED']))
return $_SERVER['HTTP_X_FORWARDED'];
elseif(!empty($_SERVER['HTTP_FORWARDED_FOR']))
return $_SERVER['HTTP_FORWARDED_FOR'];
elseif(!empty($_SERVER['HTTP_FORWARDED']))
return $_SERVER['HTTP_FORWARDED'];
elseif(!empty($_SERVER['REMOTE_ADDR']))
return $_SERVER['REMOTE_ADDR'];
else
return false;
}
if (isset($_POST['logout'])) {
$_SESSION = array();
session_destroy();
if($_SERVER['HTTPS'] == "on") {
header("Location: https://".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\'));
} else {
header("Location: http://".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\'));
}
exit;
}
if (!isset($_SESSION['username']) || $_SESSION['username'] != $webuser || $_SESSION['password'] != $webpass || $_SESSION['clientip'] != getclientip()) {
if($_SERVER['HTTPS'] == "on") {
header("Location: https://".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\'));
} else {
header("Location: http://".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\'));
}
exit;
}
require_once('nav.php');
if (isset($_POST['changepw']) && $_SESSION['username'] == $webuser && $_SESSION['password'] == $webpass && $_SESSION['clientip'] == getclientip()) {
$newpass = password_hash($_POST['newpwd1'], PASSWORD_DEFAULT);
if (!password_verify($_POST['oldpwd'], $webpass)) {
$err_msg = $lang['wichpw1']; $err_lvl = 3;
} elseif ($_POST['newpwd1'] != $_POST['newpwd2'] || $_POST['newpwd1'] == NULL) {
$err_msg = $lang['wichpw2']; $err_lvl = 3;
} elseif ($mysqlcon->exec("UPDATE $dbname.config set webpass='$newpass'") === false) {
$err_msg = print_r($mysqlcon->errorInfo(), true); $err_lvl = 3;
} else {
enter_logfile($logpath,$timezone,3,sprintf($lang['wichpw3'],getclientip()));
$err_msg = $lang['wisvsuc']; $err_lvl = NULL;
}
}
?>
<div id="page-wrapper">
<?PHP if(isset($err_msg)) error_handling($err_msg, $err_lvl); ?>
<div class="container-fluid">
<div id="login-overlay" class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="myModalLabel"><?PHP echo $lang['wichpw4'].' - '.$lang['wi']; ?></h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-xs-12">
<form id="resetForm" method="POST">
<div class="form-group">
<label for="password" class="control-label"><?PHP echo $lang['pass3']; ?>:</label>
<div class="input-group-justified">
<input type="password" class="form-control" name="oldpwd" data-toggle="password" data-placement="before" placeholder="<?PHP echo $lang['pass3']; ?>">
</div>
</div>
<p>&nbsp;</p>
<div class="form-group">
<label for="password" class="control-label"><?PHP echo $lang['pass4']; ?>:</label>
<div class="input-group-justified">
<input type="password" class="form-control" name="newpwd1" data-toggle="password" data-placement="before" placeholder="<?PHP echo $lang['pass4']; ?>">
</div>
</div>
<div class="form-group">
<label for="password" class="control-label"><?PHP echo $lang['pass4']; ?> (<?PHP echo $lang['repeat']; ?>):</label>
<div class="input-group-justified">
<input type="password" class="form-control" name="newpwd2" data-toggle="password" data-placement="before" placeholder="<?PHP echo $lang['pass4']; ?> (<?PHP echo $lang['repeat']; ?>)">
</div>
</div>
<br>
<p>
<button type="submit" class="btn btn-success btn-block" name="changepw"><?PHP echo $lang['wichpw4']; ?></button>
</p>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -54,7 +54,7 @@ if (isset($_POST['update']) && $_SESSION['username'] == $webuser && $_SESSION['p
$cleanperiod = $_POST['cleanperiod'];
$boost = $_POST['boost'];
if ($mysqlcon->exec("UPDATE $dbname.config set substridle='$substridle',exceptuuid='$exceptuuid',exceptgroup='$exceptgroup',exceptcid='$exceptcid',grouptime='$grouptime',ignoreidle='$ignoreidle',resetbydbchange='$resetbydbchange',cleanclients='$cleanclients',cleanperiod='$cleanperiod',boost='$boost'") === false) {
$err_msg = print_r($mysqlcon->errorInfo());
$err_msg = print_r($mysqlcon->errorInfo(), true);
$err_lvl = 3;
} else {
$err_msg = $lang['wisvsuc']." ".$lang['wisvres'];

View File

@@ -57,7 +57,7 @@ function getclientip() {
}
if(($last_access = $mysqlcon->query("SELECT last_access,count_access FROM $dbname.config")) === false) {
$err_msg .= print_r($mysqlcon->errorInfo());
$err_msg .= print_r($mysqlcon->errorInfo(), true);
}
$last_access = $last_access->fetchAll();
@@ -119,7 +119,12 @@ require_once('nav.php');
</div>
</div>
<br>
<button type="submit" class="btn btn-success btn-block"><?PHP echo $lang['login']; ?></button>
<p>
<button type="submit" class="btn btn-success btn-block"><?PHP echo $lang['login']; ?></button>
</p>
<p class="small text-right">
<a href="resetpassword.php"><?PHP echo $lang['pass5']; ?></a>
</p>
</form>
</div>
</div>

View File

@@ -45,9 +45,13 @@ require_once('nav.php');
if (isset($_POST['update']) && $_SESSION['username'] == $webuser && $_SESSION['password'] == $webpass && $_SESSION['clientip'] == getclientip()) {
$rankupmsg = addslashes($_POST['rankupmsg']);
$servernews = addslashes($_POST['servernews']);
$nextupinfomsg1 = addslashes($_POST['nextupinfomsg1']);
$nextupinfomsg2 = addslashes($_POST['nextupinfomsg2']);
$nextupinfomsg3 = addslashes($_POST['nextupinfomsg3']);
if (isset($_POST['msgtouser'])) $msgtouser = 1; else $msgtouser = 0;
if ($mysqlcon->exec("UPDATE $dbname.config set msgtouser='$msgtouser',rankupmsg='$rankupmsg',servernews='$servernews'") === false) {
$err_msg = print_r($mysqlcon->errorInfo());
if (isset($_POST['nextupinfo'])) $nextupinfo = 1; else $nextupinfo = 0;
if ($mysqlcon->exec("UPDATE $dbname.config set msgtouser='$msgtouser',rankupmsg='$rankupmsg',servernews='$servernews',nextupinfo='$nextupinfo',nextupinfomsg1='$nextupinfomsg1',nextupinfomsg2='$nextupinfomsg2',nextupinfomsg3='$nextupinfomsg3'") === false) {
$err_msg = print_r($mysqlcon->errorInfo(), true);
$err_lvl = 3;
} else {
$err_msg = $lang['wisvsuc']." ".$lang['wisvres'];
@@ -55,6 +59,9 @@ if (isset($_POST['update']) && $_SESSION['username'] == $webuser && $_SESSION['p
}
$rankupmsg = $_POST['rankupmsg'];
$servernews = $_POST['servernews'];
$nextupinfomsg1 = $_POST['nextupinfomsg1'];
$nextupinfomsg2 = $_POST['nextupinfomsg2'];
$nextupinfomsg3 = $_POST['nextupinfomsg3'];
}
?>
<div id="page-wrapper">
@@ -69,18 +76,6 @@ if (isset($_POST['update']) && $_SESSION['username'] == $webuser && $_SESSION['p
</div>
<form class="form-horizontal" name="update" method="POST">
<div class="row">
<div class="col-md-6">
<div class="panel-body">
<div class="form-group">
<label class="col-sm-4 control-label" data-toggle="modal" data-target="#wimsgsndesc"><?php echo $lang['wimsgsn']; ?><i class="help-hover glyphicon glyphicon-question-sign"></i></label>
<div class="col-sm-8">
<textarea class="form-control" rows="15" name="servernews"><?php echo $servernews; ?></textarea>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="panel panel-default">
<div class="panel-body">
@@ -102,6 +97,48 @@ if (isset($_POST['update']) && $_SESSION['username'] == $webuser && $_SESSION['p
</div>
</div>
</div>
<div class="panel-body">
<div class="form-group">
<label class="col-sm-4 control-label" data-toggle="modal" data-target="#wimsgsndesc"><?php echo $lang['wimsgsn']; ?><i class="help-hover glyphicon glyphicon-question-sign"></i></label>
<div class="col-sm-8">
<textarea class="form-control" rows="15" name="servernews"><?php echo $servernews; ?></textarea>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="panel panel-default">
<div class="panel-body">
<div class="form-group">
<label class="col-sm-4 control-label" data-toggle="modal" data-target="#winxinfodesc"><?php echo $lang['winxinfo']; ?><i class="help-hover glyphicon glyphicon-question-sign"></i></label>
<div class="col-sm-8">
<?PHP if ($nextupinfo == 1) {
echo '<input id="switch-animate" type="checkbox" checked data-size="mini" name="nextupinfo" value="',$nextupinfo,'">';
} else {
echo '<input id="switch-animate" type="checkbox" data-size="mini" name="nextupinfo" value="',$nextupinfo,'">';
} ?>
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label" data-toggle="modal" data-target="#winxmsgdesc1"><?php echo $lang['winxmsg1']; ?><i class="help-hover glyphicon glyphicon-question-sign"></i></label>
<div class="col-sm-8">
<textarea class="form-control" rows="5" name="nextupinfomsg1"><?php echo $nextupinfomsg1; ?></textarea>
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label" data-toggle="modal" data-target="#winxmsgdesc2"><?php echo $lang['winxmsg2']; ?><i class="help-hover glyphicon glyphicon-question-sign"></i></label>
<div class="col-sm-8">
<textarea class="form-control" rows="5" name="nextupinfomsg2"><?php echo $nextupinfomsg2; ?></textarea>
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label" data-toggle="modal" data-target="#winxmsgdesc3"><?php echo $lang['winxmsg3']; ?><i class="help-hover glyphicon glyphicon-question-sign"></i></label>
<div class="col-sm-8">
<textarea class="form-control" rows="5" name="nextupinfomsg3"><?php echo $nextupinfomsg3; ?></textarea>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">&nbsp;</div>
@@ -147,7 +184,8 @@ if (isset($_POST['update']) && $_SESSION['username'] == $webuser && $_SESSION['p
</div>
</div>
</div>
</div><div class="modal fade" id="wimsgsndesc" tabindex="-1">
</div>
<div class="modal fade" id="wimsgsndesc" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
@@ -163,5 +201,69 @@ if (isset($_POST['update']) && $_SESSION['username'] == $webuser && $_SESSION['p
</div>
</div>
</div>
<div class="modal fade" id="winxinfodesc" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title"><?php echo $lang['winxinfo']; ?></h4>
</div>
<div class="modal-body">
<?php echo $lang['winxinfodesc']; ?>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal"><?PHP echo $lang['stnv0002']; ?></button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="winxmsgdesc1" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title"><?php echo $lang['winxmsg1']; ?></h4>
</div>
<div class="modal-body">
<?php echo $lang['winxmsgdesc1']; ?>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal"><?PHP echo $lang['stnv0002']; ?></button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="winxmsgdesc2" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title"><?php echo $lang['winxmsg2']; ?></h4>
</div>
<div class="modal-body">
<?php echo $lang['winxmsgdesc2']; ?>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal"><?PHP echo $lang['stnv0002']; ?></button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="winxmsgdesc3" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title"><?php echo $lang['winxmsg3']; ?></h4>
</div>
<div class="modal-body">
<?php echo $lang['winxmsgdesc3']; ?>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal"><?PHP echo $lang['stnv0002']; ?></button>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -64,7 +64,12 @@
</ul>
<?PHP } ?>
<ul class="nav navbar-right top-nav">
<?PHP if(isset($_SESSION['username']) && $_SESSION['username'] == $webuser && $_SESSION['password'] == $webpass) { ?>
<?PHP
echo '<li><a href="http',(!empty($_SERVER['HTTPS'])?'s':''),'://',$_SERVER['SERVER_NAME'],substr(dirname($_SERVER['SCRIPT_NAME']),0,-12),'stats/"><i class="fa fa-fw fa-bar-chart"></i>&nbsp;',$lang['winav6'],'</a></li>';
if(isset($_SESSION['username']) && $_SESSION['username'] == $webuser && $_SESSION['password'] == $webpass) { ?>
<li>
<a href="changepassword.php"><i class="fa fa-lock"></i>&nbsp;<?PHP echo $lang['pass2']; ?></a>
</li>
<li>
<form class="navbar-form navbar-center" method="post">
<div class="form-group">
@@ -119,7 +124,12 @@
</li>
<li class="divider"></li>
<?PHP echo '<li'.(basename($_SERVER['SCRIPT_NAME']) == "admin.php" ? ' class="active">' : '>'); ?>
<a href="admin.php"><i class="fa fa-fw fa-users"></i>&nbsp;<?PHP echo $lang['winav7']; ?></a>
<a href="javascript:;" data-toggle="collapse" data-target="#demo"><i class="fa fa-fw fa-users"></i>&nbsp;<?PHP echo $lang['winav7']; ?>&nbsp;<i class="fa fa-fw fa-caret-down"></i></a>
<ul id="demo" class="collapse">
<li>
<a href="admin.php"><?PHP echo $lang['wihladm1']; ?></a>
</li>
</ul>
</li>
<li class="divider"></li>
<?PHP echo '<li'.(basename($_SERVER['SCRIPT_NAME']) == "bot.php" ? ' class="active">' : '>'); ?>
@@ -129,7 +139,11 @@
</div>
</nav>
<?PHP
if(!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != "on") {
if($adminuuid==NULL && $_SESSION['username'] == $webuser && !isset($err_msg)) {
$err_msg = $lang['winav11']; $err_lvl = 3;
}
if(!isset($_SERVER['HTTPS']) && !isset($err_msg) || $_SERVER['HTTPS'] != "on" && !isset($err_msg)) {
$host = "<a href=\"https://".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF']), '/\\')."\">";
$err_msg = sprintf($lang['winav10'], $host,'</a>!<br>', '<br>'); $err_lvl = 2;
}

View File

@@ -50,8 +50,9 @@ if (isset($_POST['update']) && $_SESSION['username'] == $webuser && $_SESSION['p
if (isset($_POST['upcheck'])) $upcheck = 1; else $upcheck = 0;
$updateinfotime = $_POST['updateinfotime'];
$uniqueid = $_POST['uniqueid'];
if ($mysqlcon->exec("UPDATE $dbname.config set timezone='$timezone',dateformat='$dateformat',logpath='$logpath',language='$language',upcheck='$upcheck',updateinfotime='$updateinfotime',uniqueid='$uniqueid'") === false) {
$err_msg = print_r($mysqlcon->errorInfo());
$adminuuid = $_POST['adminuuid'];
if ($mysqlcon->exec("UPDATE $dbname.config set timezone='$timezone',dateformat='$dateformat',logpath='$logpath',language='$language',upcheck='$upcheck',updateinfotime='$updateinfotime',uniqueid='$uniqueid',adminuuid='$adminuuid'") === false) {
$err_msg = print_r($mysqlcon->errorInfo(), true);
$err_lvl = 3;
} else {
$err_msg = $lang['wisvsuc']." ".$lang['wisvres'];
@@ -120,7 +121,14 @@ if (isset($_POST['update']) && $_SESSION['username'] == $webuser && $_SESSION['p
</div>
</div>
</div>
<div class="col-md-6 ">
<div class="col-md-6">
<div class="form-group">
<label class="col-sm-4 control-label" data-toggle="modal" data-target="#wiadmuuiddesc"><?php echo $lang['wiadmuuid']; ?><i class="help-hover glyphicon glyphicon-question-sign"></i></label>
<div class="col-sm-8">
<input type="text" class="form-control" data-pattern="^([A-Za-z0-9\\\/\+]{27}=)$" data-error="Check the entered unique ID!" name="adminuuid" value="<?php echo $adminuuid; ?>">
<div class="help-block with-errors"></div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-body">
<div class="form-group">
@@ -282,6 +290,22 @@ if (isset($_POST['update']) && $_SESSION['username'] == $webuser && $_SESSION['p
</div>
</div>
</div>
<div class="modal fade" id="wiadmuuiddesc" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title"><?php echo $lang['wiadmuuid']; ?></h4>
</div>
<div class="modal-body">
<?php echo $lang['wiadmuuiddesc']; ?>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal"><?PHP echo $lang['stnv0002']; ?></button>
</div>
</div>
</div>
</div>
<script>
$('form[data-toggle="validator"]').validator({
custom: {

View File

@@ -0,0 +1,157 @@
<?PHP
session_start();
require_once('../other/config.php');
function enter_logfile($logpath,$timezone,$loglevel,$logtext) {
$file = $logpath.'ranksystem.log';
if ($loglevel == 1) {
$loglevel = " CRITICAL ";
} elseif ($loglevel == 2) {
$loglevel = " ERROR ";
} elseif ($loglevel == 3) {
$loglevel = " WARNING ";
} elseif ($loglevel == 4) {
$loglevel = " NOTICE ";
} elseif ($loglevel == 5) {
$loglevel = " INFO ";
}
$input = DateTime::createFromFormat('U.u', number_format(microtime(true), 6, '.', ''))->setTimeZone(new DateTimeZone($timezone))->format("Y-m-d H:i:s.u ").$loglevel.$logtext."\n";
$loghandle = fopen($file, 'a');
fwrite($loghandle, $input);
if (filesize($file) > 5242880) {
fwrite($loghandle, DateTime::createFromFormat('U.u', number_format(microtime(true), 6, '.', ''))->setTimeZone(new DateTimeZone($timezone))->format("Y-m-d H:i:s.u ")." NOTICE Logfile filesie of 5 MiB reached.. Rotate logfile.\n");
fwrite($loghandle, DateTime::createFromFormat('U.u', number_format(microtime(true), 6, '.', ''))->setTimeZone(new DateTimeZone($timezone))->format("Y-m-d H:i:s.u ")." NOTICE Restart Bot to continue with new log file...\n");
fclose($loghandle);
$file2 = "$file.old";
if (file_exists($file2)) unlink($file2);
rename($file, $file2);
if (substr(php_uname(), 0, 7) == "Windows") {
exec("del /F ".substr(__DIR__,0,-12).'logs/pid');
$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run("cmd /C php ".substr(__DIR__,0,-12)."worker.php start", 0, false);
exit;
} else {
exec("rm -f ".substr(__DIR__,0,-12).'logs/pid');
exec("php ".substr(__DIR__,0,-12)."worker.php start");
exit;
}
}
}
function getclientip() {
if (!empty($_SERVER['HTTP_CLIENT_IP']))
return $_SERVER['HTTP_CLIENT_IP'];
elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
return $_SERVER['HTTP_X_FORWARDED_FOR'];
elseif(!empty($_SERVER['HTTP_X_FORWARDED']))
return $_SERVER['HTTP_X_FORWARDED'];
elseif(!empty($_SERVER['HTTP_FORWARDED_FOR']))
return $_SERVER['HTTP_FORWARDED_FOR'];
elseif(!empty($_SERVER['HTTP_FORWARDED']))
return $_SERVER['HTTP_FORWARDED'];
elseif(!empty($_SERVER['REMOTE_ADDR']))
return $_SERVER['REMOTE_ADDR'];
else
return false;
}
if(($last_access = $mysqlcon->query("SELECT last_access,count_access FROM $dbname.config")) === false) {
$err_msg .= print_r($mysqlcon->errorInfo(), true);
}
$last_access = $last_access->fetchAll();
if (($last_access[0]['last_access'] + 1) >= time()) {
$again = $last_access[0]['last_access'] + 2 - time();
$err_msg = sprintf($lang['errlogin2'],$again);
$err_lvl = 3;
} elseif (isset($_POST['resetpw']) && $adminuuid==NULL) {
$err_msg = $lang['wirtpw1']; $err_lvl=3;
} elseif (isset($_POST['resetpw'])) {
$nowtime = time();
if($mysqlcon->exec("UPDATE $dbname.config SET last_access='$nowtime', count_access = count_access + 1") === false) { }
require_once(substr(__DIR__,0,-12).'ts3_lib/TeamSpeak3.php');
try {
$ts3 = TeamSpeak3::factory("serverquery://".$ts['user'].":".$ts['pass']."@".$ts['host'].":".$ts['query']."/?server_port=".$ts['voice']."&blocking=0");
try {
usleep($slowmode);
$ts3->selfUpdate(array('client_nickname' => "Ranksystem - Reset Password"));
} catch (Exception $e) { }
usleep($slowmode);
$allclients = $ts3->clientList();
foreach ($allclients as $client) {
if($client['client_unique_identifier'] == $adminuuid) {
$uuid = $client['client_unique_identifier'];
$checkuuid = 1;
if($client['connection_client_ip'] == getclientip()) {
$checkip = 1;
}
}
}
if (!isset($checkuuid)) {
$err_msg = $lang['wirtpw2']; $err_lvl = 3;
} elseif (!isset($checkip)) {
$err_msg = $lang['wirtpw3']; $err_lvl = 3;
} else {
usleep($slowmode);
$pwd = substr(str_shuffle("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789#*+;:-_~?=%&$<24>!()"),0,12);
$webpass = password_hash($pwd, PASSWORD_DEFAULT);
if($mysqlcon->exec("UPDATE $dbname.config set webpass='$webpass', last_access='0'") === false) {
$err_msg = $lang['isntwidbmsg'].print_r($mysqlcon->errorInfo(), true); $err_lvl = 3;
} else {
try {
$ts3->clientGetByUid($uuid)->message(sprintf($lang['wirtpw4'], $webuser, $pwd, '[URL=http'.(!empty($_SERVER['HTTPS'])?"s":"").'://'.$_SERVER['SERVER_NAME'].dirname($_SERVER['SCRIPT_NAME']).']','[/URL]'));
$err_msg = sprintf($lang['wirtpw5'],'<a href="http'.(!empty($_SERVER['HTTPS'])?"s":"").'://'.$_SERVER['SERVER_NAME'].dirname($_SERVER['SCRIPT_NAME']).'/">','</a>'); $err_lvl = 1;
enter_logfile($logpath,$timezone,3,sprintf($lang['wirtpw6'],getclientip()));
} catch (Exception $e) {
$err_msg = 'TeamSpeak '.$lang['error'].$e->getCode().': '.$e->getMessage(); $err_lvl = 3;
}
}
}
} catch (Exception $e) {
$err_msg = 'TeamSpeak '.$lang['error'].$e->getCode().': '.$e->getMessage(); $err_lvl = 3;
}
}
require_once('nav.php');
?>
<div id="page-wrapper">
<?PHP if(isset($err_msg)) error_handling($err_msg, $err_lvl); ?>
<div class="container-fluid">
<div id="login-overlay" class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="myModalLabel"><?PHP echo $lang['wirtpw7'].' - '.$lang['wi']; ?></h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-xs-12">
<form id="resetForm" method="POST">
<p><?PHP echo $lang['wirtpw8']; ?></p>
<p><?PHP echo $lang['wirtpw9']; ?>
<ul>
<li><?PHP echo $lang['wirtpw10']; ?></li>
<li><?PHP echo $lang['wirtpw11']; ?></li>
<li><?PHP echo $lang['wirtpw12']; ?></li>
</ul>
</p>
<br>
<p>
<button type="submit" class="btn btn-success btn-block" name="resetpw"><?PHP echo $lang['wirtpw7']; ?></button>
</p>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -57,8 +57,10 @@ if (isset($_POST['update']) && $_SESSION['username'] == $webuser && $_SESSION['p
if (isset($_POST['showcolnx'])) $showcolnx = 1; else $showcolnx = 0;
if (isset($_POST['showcolsg'])) $showcolsg = 1; else $showcolsg = 0;
if (isset($_POST['showhighest'])) $showhighest = 1; else $showhighest = 0;
if ($mysqlcon->exec("UPDATE $dbname.config set showexcld='$showexcld',showcolrg='$showcolrg',showcolcld='$showcolcld',showcoluuid='$showcoluuid',showcoldbid='$showcoldbid',showcolls='$showcolls',showcolot='$showcolot',showcolit='$showcolit',showcolat='$showcolat',showcolas='$showcolas',showcolnx='$showcolnx',showcolsg='$showcolsg',showhighest='$showhighest'") === false) {
$err_msg = print_r($mysqlcon->errorInfo());
if (isset($_POST['showgrpsince'])) $showgrpsince = 1; else $showgrpsince = 0;
if (isset($_POST['shownav'])) $shownav = 1; else $shownav = 0;
if ($mysqlcon->exec("UPDATE $dbname.config set showexcld='$showexcld',showcolrg='$showcolrg',showcolcld='$showcolcld',showcoluuid='$showcoluuid',showcoldbid='$showcoldbid',showcolls='$showcolls',showcolot='$showcolot',showcolit='$showcolit',showcolat='$showcolat',showcolas='$showcolas',showcolnx='$showcolnx',showcolsg='$showcolsg',showhighest='$showhighest',showgrpsince='$showgrpsince',shownav='$shownav'") === false) {
$err_msg = print_r($mysqlcon->errorInfo(), true);
$err_lvl = 3;
} else {
$err_msg = $lang['wisvsuc'];
@@ -78,19 +80,7 @@ if (isset($_POST['update']) && $_SESSION['username'] == $webuser && $_SESSION['p
</div>
<form class="form-horizontal" name="update" method="POST">
<div class="row">
<div class="col-md-3">
</div>
<div class="col-md-6">
<div class="form-group">
<label class="col-sm-4 control-label" data-toggle="modal" data-target="#wishexclddesc"><?php echo $lang['wishexcld']; ?><i class="help-hover glyphicon glyphicon-question-sign"></i></label>
<div class="col-sm-8">
<?PHP if ($showexcld == 1) {
echo '<input class="switch-animate" type="checkbox" checked data-size="mini" name="showexcld" value="',$showexcld,'">';
} else {
echo '<input class="switch-animate" type="checkbox" data-size="mini" name="showexcld" value="',$showexcld,'">';
} ?>
</div>
</div>
<div class="panel panel-default">
<div class="panel-body">
<div class="form-group">
@@ -183,6 +173,16 @@ if (isset($_POST['update']) && $_SESSION['username'] == $webuser && $_SESSION['p
} ?>
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label" data-toggle="modal" data-target="#wishcolgsdesc"><?php echo $lang['wishcolgs']; ?><i class="help-hover glyphicon glyphicon-question-sign"></i></label>
<div class="col-sm-8">
<?PHP if ($showgrpsince == 1) {
echo '<input class="switch-animate" type="checkbox" checked data-size="mini" name="showgrpsince" value="',$showgrpsince,'">';
} else {
echo '<input class="switch-animate" type="checkbox" data-size="mini" name="showgrpsince" value="',$showgrpsince,'">';
} ?>
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label" data-toggle="modal" data-target="#wishcolnxdesc"><?php echo $lang['wishcolnx']; ?><i class="help-hover glyphicon glyphicon-question-sign"></i></label>
<div class="col-sm-8">
@@ -205,7 +205,18 @@ if (isset($_POST['update']) && $_SESSION['username'] == $webuser && $_SESSION['p
</div>
</div>
</div>
<div class="row">&nbsp;</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="col-sm-4 control-label" data-toggle="modal" data-target="#wishexclddesc"><?php echo $lang['wishexcld']; ?><i class="help-hover glyphicon glyphicon-question-sign"></i></label>
<div class="col-sm-8">
<?PHP if ($showexcld == 1) {
echo '<input class="switch-animate" type="checkbox" checked data-size="mini" name="showexcld" value="',$showexcld,'">';
} else {
echo '<input class="switch-animate" type="checkbox" data-size="mini" name="showexcld" value="',$showexcld,'">';
} ?>
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label" data-toggle="modal" data-target="#wishhiclddesc"><?php echo $lang['wishhicld']; ?><i class="help-hover glyphicon glyphicon-question-sign"></i></label>
<div class="col-sm-8">
@@ -216,6 +227,17 @@ if (isset($_POST['update']) && $_SESSION['username'] == $webuser && $_SESSION['p
} ?>
</div>
</div>
<div class="row">&nbsp;</div>
<div class="form-group">
<label class="col-sm-4 control-label" data-toggle="modal" data-target="#wishnavdesc"><?php echo $lang['wishnav']; ?><i class="help-hover glyphicon glyphicon-question-sign"></i></label>
<div class="col-sm-8">
<?PHP if ($shownav == 1) {
echo '<input class="switch-animate" type="checkbox" checked data-size="mini" name="shownav" value="',$shownav,'">';
} else {
echo '<input class="switch-animate" type="checkbox" data-size="mini" name="shownav" value="',$shownav,'">';
} ?>
</div>
</div>
</div>
</div>
<div class="row">&nbsp;</div>
@@ -390,6 +412,22 @@ if (isset($_POST['update']) && $_SESSION['username'] == $webuser && $_SESSION['p
</div>
</div>
</div>
<div class="modal fade" id="wishcolgsdesc" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title"><?php echo $lang['wishcolgs']; ?></h4>
</div>
<div class="modal-body">
<?php echo $lang['wishcolgsdesc']; ?>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal"><?PHP echo $lang['stnv0002']; ?></button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="wishcolnxdesc" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
@@ -438,5 +476,21 @@ if (isset($_POST['update']) && $_SESSION['username'] == $webuser && $_SESSION['p
</div>
</div>
</div>
<div class="modal fade" id="wishnavdesc" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title"><?php echo $lang['wishnav']; ?></h4>
</div>
<div class="modal-body">
<?php echo $lang['wishnavdesc']; ?>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal"><?PHP echo $lang['stnv0002']; ?></button>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -53,7 +53,7 @@ if (isset($_POST['update']) && $_SESSION['username'] == $webuser && $_SESSION['p
$defchid = $_POST['defchid'];
$slowmode = $_POST['slowmode'];
if ($mysqlcon->exec("UPDATE $dbname.config set tshost='$tshost',tsquery='$tsquery',tsvoice='$tsvoice',tsuser='$tsuser',tspass='$tspass',queryname='$queryname',queryname2='$queryname2',slowmode='$slowmode',defchid='$defchid'") === false) {
$err_msg = print_r($mysqlcon->errorInfo());
$err_msg = print_r($mysqlcon->errorInfo(), true);
$err_lvl = 3;
} else {
$err_msg = $lang['wisvsuc']." ".$lang['wisvres'];

View File

@@ -1,5 +1,12 @@
<?php
error_reporting(0);
if(isset($_SERVER['USER']) && $_SERVER['USER'] == "root" || isset($_SERVER['USERNAME']) && $_SERVER['USERNAME'] == "administrator") {
echo "\n !!!! Do not start the Ranksystem with root privileges !!!!\n\n";
echo " Start Ranksystem Bot in 10 seconds...\n\n";
sleep(10);
}
require_once(__DIR__.'/other/config.php');
$GLOBALS['exec'] = FALSE;
if($logpath == NULL) { $logpath = "./logs/"; }
@@ -62,9 +69,24 @@ function start() {
if (substr(php_uname(), 0, 7) == "Windows") {
if (checkProcess() == FALSE) {
echo "Starting the Ranksystem Bot.";
$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run("cmd /C php ".__DIR__."\jobs\bot.php", 0, false);
exec("wmic process WHERE \"Name=\"php.exe\" AND CommandLine LIKE \"%bot.php%\"\" get ProcessId", $pid);
try {
$WshShell = new COM("WScript.Shell");
echo "1";
} catch (Exception $e) {
echo "\n Error due loading the PHP COM module (wrong server configuration!): ",$e->getMessage(),"\n";
}
try {
$oExec = $WshShell->Run("cmd /C php ".__DIR__."\jobs\bot.php", 0, false);
echo "2";
} catch (Exception $e) {
echo "\n Error due starting Bot (exec command enabled?): ",$e->getMessage(),"\n";
}
try {
exec("wmic process WHERE \"Name=\"php.exe\" AND CommandLine LIKE \"%bot.php%\"\" get ProcessId", $pid);
echo "3";
} catch (Exception $e) {
echo "\n Error due getting process list (wmic command enabled?): ",$e->getMessage(),"\n";
}
if(isset($pid[1]) && is_numeric($pid[1])) {
exec("echo ".$pid[1]." > ".$GLOBALS['pidfile']);
echo " [OK]\n";