From a47a07b093b4fc42affe5dc3adf97413ba29869e Mon Sep 17 00:00:00 2001 From: derrobin154 Date: Wed, 4 Apr 2018 22:08:05 +0200 Subject: [PATCH] - Languages (lang.de.php) (Needs a Translate in other Languages)- Add: $lang["navbar"]["groupassigner"], $lang["grouppage"]["title"], $lang["grouppage"]["tsuid"], $lang["grouppage"]["tsgroup"], $lang["grouppage"]["send"], $lang["grouppage"]["error"]["offline"], $lang["grouppage"]["error"]["notallowed"], $lang["grouppage"]["error"]["duplicate"], $lang["grouppage"]["success"]["success"] - Config (config.template.php) (Needs a Change in your Config) - Add: $config["groupassigner"], $config["groups"]["allowgroups"] - Header (header.php) - When the Groupassigner is active, then "Server Viewer" is a Dropdown Menu with the Link for the Groupassigner, when is inactive then is only a Link to the "Server Viewer" - Groupassigner (groupassigner.php) When the Groupassigner is active, then shows a Form with the UID and the ServerGroups was in the Config ($config["groups"]["allowgroups"]). If the form is manipulated, and the server group is not in $config["groups"]["allowgroups"] then it will also output an error if the server is offline, or the login data for Server Query is incorrect. --- config/config.template.php | 9 +++ config/languages/lang.de.php | 15 +++++ groupassigner.php | 106 +++++++++++++++++++++++++++++++++++ include/header.php | 13 ++++- 4 files changed, 142 insertions(+), 1 deletion(-) create mode 100644 groupassigner.php diff --git a/config/config.template.php b/config/config.template.php index a0f359c..8493c80 100644 --- a/config/config.template.php +++ b/config/config.template.php @@ -75,3 +75,12 @@ $config['contact']['items'][] = ["TeamSpeak", "Support channel", "ts3server://te $config['contact']['items'][] = ["Email", "contact@email.com", "mailto:contact@email.com"]; $config['contact']['items'][] = ["Telegram", "@Telegram", "https://t.me/Telegram"]; $config['contact']['items'][] = ["Twitter", "@Twitter", "https://twitter.com/Twitter"]; + +/************* Groupassigner configuration *************/ + +// Enable / Disable the GroupAssigner +$config["groupassigner"] = 1; + +// Server groups to be assigned +$config["groups"]["allowgroups"] = array("41","42"); + diff --git a/config/languages/lang.de.php b/config/languages/lang.de.php index edbfb8d..6e1966d 100644 --- a/config/languages/lang.de.php +++ b/config/languages/lang.de.php @@ -22,6 +22,8 @@ $lang["navbar"]["rules"] = "Server Regeln"; $lang["navbar"]["connect"] = "Mit Server verbinden"; $lang["navbar"]["connecttooltip"] = "Klicken um mit {0} zu verbinden"; +$lang["navbar"]["groupassigner"] = "Gruppenzuweiser"; + /************* Footer *************/ @@ -102,3 +104,16 @@ $lang["banlist"]["table"]["expires"] = "Läuft ab am"; $lang["rules"]["title"] = "Server Regeln"; $lang["rules"]["filenotfound"] = "Fehler: Die Datei config/rules.md wurde nicht gefunden!"; $lang["rules"]["readerror"] = "Fehler: Nicht genügend Rechte um auf config/rules.md zuzugreifen!"; + +/************* Groupassigner - groupassigner.php *************/ +$lang["grouppage"]["title"] = "Gruppenzuweiser"; +$lang["grouppage"]["tsuid"] = "Teamspeak-UID"; +$lang["grouppage"]["tsgroup"] = "Teamspeak Gruppe"; +$lang["grouppage"]["send"] = "Absenden"; + +$lang["grouppage"]["error"]["offline"] = "Du musst online sein zur Vergabe einer Gruppe"; +$lang["grouppage"]["error"]["notallowed"] = "Diese Servergruppe darf nicht vergeben werden."; +$lang["grouppage"]["error"]["duplicate"] = "Du besitzt die Servergruppe bereits."; + +$lang["grouppage"]["success"]["success"] = "Dir wurde die Servergruppe zugewiesen"; + diff --git a/groupassigner.php b/groupassigner.php new file mode 100644 index 0000000..da5a63c --- /dev/null +++ b/groupassigner.php @@ -0,0 +1,106 @@ +isExpired()) { + $cacheutils->setValue([getServerGroups(), date('d.m.Y H:i:s')], 300); +} + +$grouplist = $cacheutils->getValue(); +try { + $tsAdmin = getTeamspeakConnection("#no_query_clients"); +} catch (Exception $e){ + if ($e->getCode() == 1281) { + echo ''; + } else { + echo '

' . translate($lang["general"]["scripterror"], [$e->getCode(), $e->getMessage()]) . '

'; + exit; + } +} + + +if(isset($_POST["absenden"])){ + $uid = htmlspecialchars($_POST['uid']); + if(in_array(htmlspecialchars($_POST['group']), $config["groups"]["allowgroups"])){ + try { + $tsAdmin->clientGetByUid($uid)->addServerGroup(htmlspecialchars($_POST['group'])); + setCookie("tsuid", $uid); + $success = "success"; + } catch(Exception $e) { + if(strpos($e, "invalid clientID") == true){ + $error = "offline"; + }elseif(strpos($e, "duplicate entry") == true){ + $error = "duplicate"; + } + + } + }else{ + $error = "notallowed"; + } +} +?> + +
+
+

+
+
+ +
+

+
+ +
+

+
+ +
+

+ " value="" class="form-control" style="width: 70%; margin-left:15%; margin-bottom: 5%;"> +

+ +

+ +
+ + +
+
+ + + +getCode() == 1281) { + return ''; + } else { + return '

' . translate($lang["general"]["scripterror"], [$e->getCode(), $e->getMessage()]) . '

'; + } + } + +} + +require_once __DIR__ . "/include/footer.php"; +?> diff --git a/include/header.php b/include/header.php index 67ef01e..34d0c3f 100644 --- a/include/header.php +++ b/include/header.php @@ -72,7 +72,18 @@ $htalink = $config["general"]["enablehta"] ? "" : ".php";