This commit is contained in:
ManfredAabye
2025-03-13 17:43:10 +01:00
committed by GitHub
parent a5ec0c4ffb
commit e12ce474e1
7 changed files with 501 additions and 154 deletions
+267
View File
@@ -0,0 +1,267 @@
<?php
$title = "Analytics Service";
include_once 'include/header.php';
$servername = DB_SERVER;
$username = DB_USERNAME;
$password = DB_PASSWORD;
$dbname = DB_NAME;
// Verbindung herstellen
$conn = new mysqli($servername, $username, $password, $dbname);
// Verbindung überprüfen
if ($conn->connect_error) {
die("Verbindung zur Datenbank fehlgeschlagen: " . $conn->connect_error);
}
// Abfrage für die Anzahl der Benutzer
$sql = "SELECT COUNT(*) as total_users FROM UserAccounts";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
$totalUsers = $row['total_users'];
// Abfrage für die Anzahl der Regionen
$sql = "SELECT COUNT(*) as total_regions FROM regions";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
$totalRegions = $row['total_regions'];
// Abfrage für die Anzahl der Online-Benutzer
$sql = "SELECT COUNT(*) as online_users FROM Presence WHERE LastSeen > NOW() - INTERVAL 5 MINUTE";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
$onlineUsers = $row['online_users'];
// Abfrage für die letzten Transaktionen
$sql = "SELECT sender, receiver, amount, time FROM transactions ORDER BY time DESC LIMIT 5";
$result = $conn->query($sql);
$recentTransactions = [];
while ($row = $result->fetch_assoc()) {
$recentTransactions[] = $row;
}
// Abfrage für die letzten Benutzer
$sql = "SELECT PrincipalID, FirstName, LastName, Created FROM UserAccounts ORDER BY Created DESC LIMIT 5";
$result = $conn->query($sql);
$recentUsers = [];
while ($row = $result->fetch_assoc()) {
$recentUsers[] = $row;
}
// Abfrage für die Gesamtsumme der Transaktionen
$sql = "SELECT SUM(amount) as total_amount FROM transactions";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
$totalTransactions = $row['total_amount'];
// Abfrage für die Regionen mit den meisten Besuchern
$sql = "SELECT RegionID, COUNT(*) as visit_count FROM Presence GROUP BY RegionID ORDER BY visit_count DESC LIMIT 5";
$result = $conn->query($sql);
$topRegions = [];
while ($row = $result->fetch_assoc()) {
$topRegions[] = $row;
}
// Abfrage für die letzten Benutzeraktivitäten
$sql = "SELECT UserID, LastSeen FROM Presence ORDER BY LastSeen DESC LIMIT 5";
$result = $conn->query($sql);
$recentActivities = [];
while ($row = $result->fetch_assoc()) {
$recentActivities[] = $row;
}
// Verbindung schließen
$conn->close();
?>
<!DOCTYPE html>
<html>
<head>
<title><?php echo SITE_NAME; ?> Analytics</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Raleway">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<style>
html,body,h1,h2,h3,h4,h5 {font-family: "Raleway", sans-serif}
</style>
</head>
<body class="w3-light-grey">
<!-- Top container -->
<div class="w3-bar w3-top w3-black w3-large" style="z-index:4">
<button class="w3-bar-item w3-button w3-hide-large w3-hover-none w3-hover-text-light-grey" onclick="w3_open();"><i class="fa fa-bars"></i> Menu</button>
<span class="w3-bar-item w3-right"><?php echo SITE_NAME; ?> Analytics</span>
</div>
<!-- Sidebar/menu -->
<nav class="w3-sidebar w3-collapse w3-white w3-animate-left" style="z-index:3;width:300px;" id="mySidebar"><br>
<div class="w3-container w3-row">
<div class="w3-col s4">
<class="fa fa-user w3-xxxlarge w3-circle w3-margin-right" style="width:46px">
</div>
<div class="w3-col s8 w3-bar">
<span>Welcome, <strong>Admin</strong></span><br>
<a href="#" class="w3-bar-item w3-button"><i class="fa fa-envelope"></i></a>
<a href="#" class="w3-bar-item w3-button"><i class="fa fa-user"></i></a>
<a href="#" class="w3-bar-item w3-button"><i class="fa fa-cog"></i></a>
</div>
</div>
<hr>
<div class="w3-container">
<h5>Dashboard</h5>
</div>
<div class="w3-bar-block">
<a href="#" class="w3-bar-item w3-button w3-padding-16 w3-hide-large w3-dark-grey w3-hover-black" onclick="w3_close()" title="close menu"><i class="fa fa-remove fa-fw"></i> Close Menu</a>
<a href="#" class="w3-bar-item w3-button w3-padding w3-blue"><i class="fa fa-users fa-fw"></i> Overview</a>
<a href="#" class="w3-bar-item w3-button w3-padding"><i class="fa fa-eye fa-fw"></i> Views</a>
<a href="#" class="w3-bar-item w3-button w3-padding"><i class="fa fa-users fa-fw"></i> Traffic</a>
<a href="#" class="w3-bar-item w3-button w3-padding"><i class="fa fa-bullseye fa-fw"></i> Geo</a>
<a href="#" class="w3-bar-item w3-button w3-padding"><i class="fa fa-diamond fa-fw"></i> Orders</a>
<a href="#" class="w3-bar-item w3-button w3-padding"><i class="fa fa-bell fa-fw"></i> News</a>
<a href="#" class="w3-bar-item w3-button w3-padding"><i class="fa fa-bank fa-fw"></i> General</a>
<a href="#" class="w3-bar-item w3-button w3-padding"><i class="fa fa-history fa-fw"></i> History</a>
<a href="#" class="w3-bar-item w3-button w3-padding"><i class="fa fa-cog fa-fw"></i> Settings</a><br><br>
</div>
</nav>
<!-- Overlay effect when opening sidebar on small screens -->
<div class="w3-overlay w3-hide-large w3-animate-opacity" onclick="w3_close()" style="cursor:pointer" title="close side menu" id="myOverlay"></div>
<!-- !PAGE CONTENT! -->
<div class="w3-main" style="margin-left:300px;margin-top:43px;">
<!-- Header -->
<header class="w3-container" style="padding-top:22px">
<h5><b><i class="fa fa-dashboard"></i> My Dashboard</b></h5>
</header>
<div class="w3-row-padding w3-margin-bottom">
<div class="w3-quarter">
<div class="w3-container w3-red w3-padding-16">
<div class="w3-left"><i class="fa fa-users w3-xxxlarge"></i></div>
<div class="w3-right">
<h3><?php echo $totalUsers; ?></h3>
</div>
<div class="w3-clear"></div>
<h4>Total Users</h4>
</div>
</div>
<div class="w3-quarter">
<div class="w3-container w3-blue w3-padding-16">
<div class="w3-left"><i class="fa fa-globe w3-xxxlarge"></i></div>
<div class="w3-right">
<h3><?php echo $totalRegions; ?></h3>
</div>
<div class="w3-clear"></div>
<h4>Total Regions</h4>
</div>
</div>
<div class="w3-quarter">
<div class="w3-container w3-teal w3-padding-16">
<div class="w3-left"><i class="fa fa-user w3-xxxlarge"></i></div>
<div class="w3-right">
<h3><?php echo $onlineUsers; ?></h3>
</div>
<div class="w3-clear"></div>
<h4>Online Users</h4>
</div>
</div>
<div class="w3-quarter">
<div class="w3-container w3-orange w3-text-white w3-padding-16">
<div class="w3-left"><i class="fa fa-money w3-xxxlarge"></i></div>
<div class="w3-right">
<h3><?php echo $totalTransactions; ?></h3>
</div>
<div class="w3-clear"></div>
<h4>Total Transactions</h4>
</div>
</div>
</div>
<!-- Recent Transactions -->
<div class="w3-container">
<h5>Recent Transactions</h5>
<table class="w3-table w3-striped w3-white">
<?php foreach ($recentTransactions as $transaction): ?>
<tr>
<td><i class="fa fa-exchange w3-text-blue w3-large"></i></td>
<td><?php echo $transaction['sender']; ?> → <?php echo $transaction['receiver']; ?></td>
<td><?php echo $transaction['amount']; ?></td>
<td><i><?php echo date('Y-m-d H:i:s', $transaction['time']); ?></i></td>
</tr>
<?php endforeach; ?>
</table>
</div>
<!-- Recent Users -->
<div class="w3-container">
<h5>Recent Users</h5>
<ul class="w3-ul w3-card-4 w3-white">
<?php foreach ($recentUsers as $user): ?>
<li class="w3-padding-16">
<img src="/w3images/avatar2.png" class="w3-left w3-circle w3-margin-right" style="width:35px">
<span class="w3-xlarge"><?php echo $user['FirstName'] . ' ' . $user['LastName']; ?></span><br>
<span class="w3-opacity"><?php echo date('Y-m-d H:i:s', $user['Created']); ?></span>
</li>
<?php endforeach; ?>
</ul>
</div>
<!-- Top Regions -->
<div class="w3-container">
<h5>Top Regions by Visitors</h5>
<table class="w3-table w3-striped w3-white">
<?php foreach ($topRegions as $region): ?>
<tr>
<td><i class="fa fa-globe w3-text-green w3-large"></i></td>
<td><?php echo $region['RegionID']; ?></td>
<td><?php echo $region['visit_count']; ?> visits</td>
</tr>
<?php endforeach; ?>
</table>
</div>
<!-- Recent Activities -->
<div class="w3-container">
<h5>Recent User Activities</h5>
<table class="w3-table w3-striped w3-white">
<?php foreach ($recentActivities as $activity): ?>
<tr>
<td><i class="fa fa-user w3-text-blue w3-large"></i></td>
<td><?php echo $activity['UserID']; ?></td>
<td><?php echo date('Y-m-d H:i:s', strtotime($activity['LastSeen'])); ?></td>
</tr>
<?php endforeach; ?>
</table>
</div>
<!-- End page content -->
</div>
<script>
// JavaScript für die Sidebar
var mySidebar = document.getElementById("mySidebar");
var overlayBg = document.getElementById("myOverlay");
function w3_open() {
if (mySidebar.style.display === 'block') {
mySidebar.style.display = 'none';
overlayBg.style.display = "none";
} else {
mySidebar.style.display = 'block';
overlayBg.style.display = "block";
}
}
function w3_close() {
mySidebar.style.display = "none";
overlayBg.style.display = "none";
}
</script>
</body>
</html>
+17
View File
@@ -0,0 +1,17 @@
Konfigurieren sie ihre Robust.ini wie folgt:
MapTileURL = "${Const|BaseURL}:${Const|PublicPort}/oswebinterface/maptile.php";
SearchURL = "${Const|BaseURL}:${Const|PublicPort}/oswebinterface/searchservice.php";
DestinationGuide = "${Const|BaseURL}/oswebinterface/guide.php"
AvatarPicker = "${Const|BaseURL}/oswebinterface/avatarpicker.php"
GridSearch = "${Const|BaseURL}/oswebinterface/gridsearch.php";
MessageURI = "${Const|BaseURL}/oswebinterface/messages.php";
welcome = ${Const|BaseURL}/oswebinterface/welcomesplashpage.php
economy = ${Const|BaseURL}:8008/
about = ${Const|BaseURL}/oswebinterface/aboutinformation.php
register = ${Const|BaseURL}/oswebinterface/createavatar.php
help = ${Const|BaseURL}/oswebinterface/help.php
password = ${Const|BaseURL}/oswebinterface/passwordreset.php
partner = ${Const|BaseURL}/oswebinterface/partner.php
GridStatus = ${Const|BaseURL}:${Const|PublicPort}/oswebinterface/gridstatus.php
GridStatusRSS = ${Const|BaseURL}:${Const|PublicPort}/oswebinterface/gridstatusrss.php
+117 -150
View File
@@ -1,108 +1,75 @@
<?php
//! Private Konfiguration
// MySQL Verbindungsdaten
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'your_username');
define('DB_PASSWORD', 'your_password');
define('DB_NAME', 'your_database');
define('DB_ASSET_NAME', 'your_database');
require_once 'env.php';
// RemoteAdmin
define('REMOTEADMIN_URL', 'localhost');
define('REMOTEADMIN_PORT', 8002);
define('REMOTEADMIN_HTTPAUTHUSERNAME', 'opensim');
define('REMOTEADMIN_HTTPAUTHPASSWORD', 'opensim123');
// RemoteAdmin-Konfiguration
// RemoteAdmin configuration
define('REMOTEADMIN_URL', 'localhost'); // URL des RemoteAdmin-Servers / URL of the RemoteAdmin server
define('REMOTEADMIN_PORT', 8002); // Port des RemoteAdmin-Servers / Port of the RemoteAdmin server
// Seitenadressen
define('BASE_URL', 'http://yourdomain.com');
define('SITE_NAME', 'Dein Grid Name');
// Website addresses
define('BASE_URL', 'http://yourdomain.com'); // Basis-URL der Webseite / Base URL of the website
define('SITE_NAME', 'Dein Grid Name'); // Name des Grids / Name of the grid
// Konfigurieren sie ihre Robust.ini wie folgt:
//
// MapTileURL = "${Const|BaseURL}:${Const|PublicPort}/oswebinterface/maptile.php";
// SearchURL = "${Const|BaseURL}:${Const|PublicPort}/oswebinterface/searchservice.php";
// DestinationGuide = "${Const|BaseURL}/oswebinterface/guide.php"
// AvatarPicker = "${Const|BaseURL}/oswebinterface/avatarpicker.php"
// GridSearch = "${Const|BaseURL}/oswebinterface/gridsearch.php";
// MessageURI = "${Const|BaseURL}/oswebinterface/messages.php";
// welcome = ${Const|BaseURL}/oswebinterface/welcomesplashpage.php
// economy = ${Const|BaseURL}:8008/
// about = ${Const|BaseURL}/oswebinterface/aboutinformation.php
// register = ${Const|BaseURL}/oswebinterface/createavatar.php
// help = ${Const|BaseURL}/oswebinterface/help.php
// password = ${Const|BaseURL}/oswebinterface/passwordreset.php
// partner = ${Const|BaseURL}/oswebinterface/partner.php
// GridStatus = ${Const|BaseURL}:${Const|PublicPort}/oswebinterface/gridstatus.php
// GridStatusRSS = ${Const|BaseURL}:${Const|PublicPort}/oswebinterface/gridstatusrss.php
//! Allgemeine Konfiguration
// Konfigurationsoptionen Standart Template:
// Konfigurationsoptionen Standard Template:
// Template configuration options:
// "headerBlanc.php", "headerST.php", "headerW3.php", "headerBT5.php", "headerFoundation.php", "headerMaterialize.php", "headerTailwind.php", "headerPrimer.php", "headerTachyons.php", "headerSpectre.php", "headerTent.php"
define('HEADER_FILE', 'headerBlanc.php'); // Ändere diesen Wert, um die verschienen Template Header Datei zu laden.
define('HEADER_FILE', 'headerBlanc.php'); // Ändere diesen Wert, um die verschiedenen Template-Header-Dateien zu laden. / Change this value to load different template header files.
// Konfigurationsoption für den Banker
define('BANKER_UUID', '00000000-0000-0000-0000-000000000000');
// Banker configuration option
define('BANKER_UUID', '00000000-0000-0000-0000-000000000000'); // UUID des Bankers / UUID of the banker
// Verifizierungsfunktionen
define('VERIFICATION_METHOD', 'email'); // 'email' oder 'uuid'
// Verification methods
define('VERIFICATION_METHOD', 'email'); // 'email' oder 'uuid' / 'email' or 'uuid'
// Asset Bilder
define('ASSETPFAD', 'cache/');
define('ASSET_FEHLT', ASSETPFAD . '00000000-0000-0000-0000-000000000002');
define('GRID_PORT', ':8002');
define('GRID_ASSETS', ':8003/assets/');
define('GRID_ASSETS_SERVER', BASE_URL . 'GRID_ASSETS');
// Asset images
define('ASSETPFAD', 'cache/'); // Pfad zum Asset-Cache / Path to the asset cache
define('ASSET_FEHLT', ASSETPFAD . '00000000-0000-0000-0000-000000000002'); // Standardbild für fehlende Assets / Default image for missing assets
define('GRID_PORT', ':8002'); // Port für Grid-Dienste / Port for grid services
define('GRID_ASSETS', ':8003/assets/'); // Pfad für Grid-Assets / Path for grid assets
define('GRID_ASSETS_SERVER', BASE_URL . 'GRID_ASSETS'); // URL des Asset-Servers / URL of the asset server
// Guide
define('GRIDLIST_FILE', 'include/gridlist.csv');
define('GRIDLIST_VIEW', 'json'); // 'json', 'database' oder 'grid'
define('GRIDLIST_FILE', 'include/gridlist.csv'); // Datei für die Grid-Liste / File for the grid list
define('GRIDLIST_VIEW', 'json'); // 'json', 'database' oder 'grid' / 'json', 'database', or 'grid'
// Tagesmeldungen
define('SHOW_DAILY_UPDATE', true); // Ein- oder ausschalten
define('DAILY_UPDATE_TYPE', 'rss'); // 'text' oder 'rss'
define('DAILYTEXT', 'Dies ist eine aus der config.php konfigurierte tagesaktuelle Einblendung.'); // Tagesaktueller Text
//define('RSS_FEED_URL', 'https://www.hypergridbusiness.com/feed'); // URL des RSS-Feeds Beispiel:Hypergrid Business.
//define('RSS_FEED_URL', 'http://opensimulator.org/viewgit/?a=rss-log&p=opensim'); // URL des RSS-Feeds Beispiel:OpenSimulator.org.
define('RSS_FEED_URL', BASE_URL . '/oswebinterface/include/rss-feed.php');
define('FEED_CACHE_PATH', __DIR__.'/feed_cache.html'); // Cache-Dateipfad
define('FEED_CACHE_MAX_AGE', 3600); // Cache max. 60 Minuten alt
define('CALENDAR_TITLE', 'Event Calendar');
// Daily updates
define('SHOW_DAILY_UPDATE', true); // Ein- oder ausschalten / Enable or disable
define('DAILY_UPDATE_TYPE', 'rss'); // 'text' oder 'rss' / 'text' or 'rss'
define('DAILYTEXT', 'Dies ist eine aus der config.php konfigurierte tagesaktuelle Einblendung.'); // Tagesaktueller Text / Daily text
define('RSS_FEED_URL', BASE_URL . '/oswebinterface/include/rss-feed.php'); // URL des RSS-Feeds / URL of the RSS feed
define('FEED_CACHE_PATH', __DIR__.'/feed_cache.html'); // Cache-Dateipfad / Cache file path
define('FEED_CACHE_MAX_AGE', 3600); // Cache max. 60 Minuten alt / Cache max. 60 minutes old
define('CALENDAR_TITLE', 'Event Calendar'); // Titel des Event-Kalenders / Title of the event calendar
// Media
//define('MEDIA_SERVER', 'http://localhost:8500/stream');
define('MEDIA_SERVER', 'http://schwarze-welle.de:7500/stream');
//define('MEDIA_SERVER_STATUS', 'http://localhost:8500/status-json.xsl');
define('MEDIA_SERVER_STATUS', 'http://schwarze-welle.de:7500/');
// Media
define('MEDIA_SERVER', 'http://localhost:8500/stream'); // URL des Media-Servers / URL of the media server
define('MEDIA_SERVER_STATUS', 'http://localhost:8500/status-json.xsl'); // Status-URL des Media-Servers / Status URL of the media server
// Passwörter (unbedingt austauschen!)
// Für das austauschen der Passwöter könnt ihr den paswd_generator.php benutzen den ihr im Verszeichnis /include findet.
$registration_passwords_register = ["wTPcHHeJtWdq7TgO", "gSIYKo2GwJdbG8OF", "2BhmSCM4hoFrOvxF", "3cy4JmMzvlSU1A9U", "xee1dobnAQw68l2h"];
$registration_passwords_reset = ["2p1hyc7SB66jfKQ1", "LxCqG48wwnay5MfO", "1CbEcKTifZ6h9OlK", "SoS5POHZOWHxtm4u", "v8hHP9NH3aOfv3gl"];
$registration_passwords_partner = ["5RnzSCEsPMDxaQR2", "9HvbzusabKTIxaz8", "Y4VlOWRr58Hi8Ws2", "u3nnDDmTJllseMFa", "NclxMDWwvWU6vw9T"];
$registration_passwords_inventory = ["KCyLnXcYbzlHHGxJ", "s0FpOl2WK0z2XFom", "HCauWX3iWnWer618", "bhfYKNN9KCyKVR02", "6ClHiehJajeGVq0f"];
$registration_passwords_datatable = ["YQ48zwTDqnnAb6Xu", "BkM5xOL3BFLwTkUm", "CPP86GIPdelqbH4u", "96cbwc7AgRNYYAbn", "tZ9fsOhFVo93uN5s"];
$registration_passwords_listinventar = ["irAd4LBMwYRgb5TU", "YYqz1eM6R9TsepKI", "TkuB4bpjaeE8tD5G", "WYYuKeYeyqfimLYR", "yqmTqvHbcYZDOVrP"];
$registration_passwords_picreader = ["uAXaqeNx2gZPmVkb", "xrc7PfHMf0llM8le", "dSPpMbeHxbkJ4aSA", "ST0vyvHS0pstdcQe", "zD81V0R21gMUUHps"];
$registration_passwords_mutelist = ["MB8Kc1cRrOvq8mzc", "Qn7zmYL9horDjupk", "wwhM3EURkNSKE1aE", "GStRnBjRUgxl5EbE", "LLk9JFcuwfQRF3qR"];
$registration_passwords_avatarpicker = ["QAotMKYpuYRPQpf0", "c3PT4r5Y2CgMNDmz", "0Eo97SU7swmBpNsR", "cDwE3Lw356K8KoeW", "hzZSxckUQI6Bbdma"];
$registration_passwords_economy = ["kkkQwdLjalFE6Zd5", "RFoDmJbAneTYAKpP", "SXiAUpusQsEG95q1", "rIHjlus3RNkDNNPU", "ujfObXDU74HZ4Gh4"];
$registration_passwords_events = ["H8JYYA7B5xU1LFNp", "agGln8DgmGknH3Zm", "45eBxkwpfqhFWl8F", "Q6IAMHuiUFEfiRrz", "mbXQiPqlwNq2N4le"];
// Passwords (must be changed!)
// Für das Austauschen der Passwörter könnt ihr den paswd_generator.php benutzen, den ihr im Verzeichnis /include findet.
// To change the passwords, you can use paswd_generator.php located in the /include directory.
$registration_passwords_register = ["VpOM2bHFc6gdqUim", "zMemu5UJuro60nYJ", "cD3pc5JidIYMkTFT", "FBJpMfLHnVXNAncy", "1vyekSHvL3bYDNhT"];
$registration_passwords_reset = ["eYUzmLO3lWDoEUZA", "ufFG8zJZvOuj6KzM", "tjwggl9ts3o6fCUs", "FYKn70uhJRFy6pum", "jEXqiYewLl6iPTCT"];
$registration_passwords_partner = ["hBEMpDKEhEiBtMXx", "wtnpTrCSswBVbR9o", "Q9HUnk7BjIvKZ1qN", "YLta8TC4YivhYuMc", "RNhGZaJtCnwq26fs"];
$registration_passwords_inventory = ["e46D3pp1bTV7qpBg", "VtsCH82rmtPix5AU", "VKY2kFV6qmrd0iHi", "VihXaKyikESI5rTK", "fGN9dUIszXdZJr3v"];
$registration_passwords_datatable = ["yOu2IxJ8146dS0kY", "y3fycXPplGS6CjY5", "ycwRc0fr2QbZNPqc", "3pTz8Zk6qeYUf2VY", "G10LGqpqs0BjDdEO"];
$registration_passwords_listinventar = ["IWhMSXFWxwM8Gw4b", "AbzWoKqSDLyKaQXV", "kBFFJTUs2CvVuHIM", "A9VuDk9rTdcSXwLg", "uhArUTWoVY9j5eXi"];
$registration_passwords_picreader = ["sho8zTi2AXiane0s", "lC0ppkQN44Qxle8z", "yOCTqbHjJGuGSKdh", "efOOM4T8o3h5Vu4o", "snSOrbrvn9le3pG1"];
$registration_passwords_mutelist = ["YOLrPXUQGPs4VtKC", "svBfxgcGePLmbKxf", "dGZQNZcDmYJXt593", "XTtuHEUtJH5rQzPQ", "crsSbntrL0gFBRwH"];
$registration_passwords_avatarpicker = ["EugW3d9jU5EPlPqq", "H2sHVvuDf8AMYF6t", "XTTQ4689dMiu8afT", "SWogtvKIpR9Mxozy", "vateDhRqGjIlhyBw"];
$registration_passwords_economy = ["5MvFSN7kbQ3ydFUl", "EvNywokrdO8NfaAc", "G47u0ppMSyOHEptB", "1cUgVgExxukp8zua", "YRNlhyr5OMObr2na"];
$registration_passwords_events = ["LvRBVZOGY65deOpS", "FWVBcqNPKUecDK7b", "2JJzb1kv7aQQM9kp", "636pCKpPZSqvDYBP", "aqYicdJdnrnV4Vvw"];
// Farben der Webseite
$colorSchemes = array(
'oceanBreeze' => array('header' => '#2E8BC0', 'footer' => '#2E8BC0', 'secondary' => '#B1D4E0', 'primary' => '#3B3B98'),
'sunsetGlow' => array('header' => '#FF6F61', 'footer' => '#FF6F61', 'secondary' => '#FFD54F', 'primary' => '#2C3E50'),
'forestHaven' => array('header' => '#2F5233', 'footer' => '#2F5233', 'secondary' => '#A4DE02', 'primary' => '#FFAE03'),
'lavenderBliss' => array('header' => '#6A0572', 'footer' => '#6A0572', 'secondary' => '#D2B4DE', 'primary' => '#F5B7B1'),
'fierySunset' => array('header' => '#D32F2F', 'footer' => '#D32F2F', 'secondary' => '#FFCDD2', 'primary' => '#B71C1C'),
'coolMint' => array('header' => '#009688', 'footer' => '#009688', 'secondary' => '#B2DFDB', 'primary' => '#004D40'),
'royalBlue' => array('header' => '#3F51B5', 'footer' => '#3F51B5', 'secondary' => '#C5CAE9', 'primary' => '#1A237E'),
'autumnHarvest' => array('header' => '#8D6E63', 'footer' => '#8D6E63', 'secondary' => '#FFCCBC', 'primary' => '#3E2723'),
'goldenHour' => array('header' => '#FFEB3B', 'footer' => '#FFEB3B', 'secondary' => '#FFF9C4', 'primary' => '#FBC02D'),
'mintChocolate' => array('header' => '#4CAF50', 'footer' => '#4CAF50', 'secondary' => '#CDDC39', 'primary' => '#795548'),
'berryBurst' => array('header' => '#E91E63', 'footer' => '#E91E63', 'secondary' => '#F8BBD0', 'primary' => '#880E4F'),
'midnightBlue' => array('header' => '#0D47A1', 'footer' => '#0D47A1', 'secondary' => '#BBDEFB', 'primary' => '#1E88E5'),
// Website colors
$colorSchemes = array(
'grayscale1' => array('header' => '#333333', 'footer' => '#333333', 'secondary' => '#666666', 'primary' => '#E0E0E0'),
'grayscale2' => array('header' => '#4F4F4F', 'footer' => '#4F4F4F', 'secondary' => '#A0A0A0', 'primary' => '#FFFFFF'),
'grayscale3' => array('header' => '#2B2B2B', 'footer' => '#2B2B2B', 'secondary' => '#858585', 'primary' => '#D9D9D9'),
@@ -110,16 +77,7 @@ $colorSchemes = array(
'coralReef' => array('header' => '#FF7F50', 'footer' => '#FF7F50', 'secondary' => '#FFD700', 'primary' => '#8B0000'),
'purpleHaze' => array('header' => '#8A2BE2', 'footer' => '#8A2BE2', 'secondary' => '#DA70D6', 'primary' => '#4B0082'),
'sunshineMeadow' => array('header' => '#FFD700', 'footer' => '#FFD700', 'secondary' => '#F0E68C', 'primary' => '#556B2F'),
'autumnLeaves' => array('header' => '#FF4500', 'footer' => '#FF4500', 'secondary' => '#FFD700', 'primary' => '#8B4513'),
'crimsonTide' => array('header' => '#DC143C', 'footer' => '#DC143C', 'secondary' => '#FFDAB9', 'primary' => '#8B0000'),
'skylineView' => array('header' => '#87CEEB', 'footer' => '#87CEEB', 'secondary' => '#4682B4', 'primary' => '#1E90FF'),
'blazingSunset' => array('header' => '#FF4500', 'footer' => '#FF4500', 'secondary' => '#FFD700', 'primary' => '#FF8C00'),
'morningMist' => array('header' => '#87CEEB', 'footer' => '#87CEEB', 'secondary' => '#B0E0E6', 'primary' => '#4682B4'),
'twilightSparkle' => array('header' => '#4B0082', 'footer' => '#4B0082', 'secondary' => '#9370DB', 'primary' => '#8A2BE2'),
'sereneGreen' => array('header' => '#2E8B57', 'footer' => '#2E8B57', 'secondary' => '#98FB98', 'primary' => '#006400'),
'coralBlush' => array('header' => '#FF6F61', 'footer' => '#FF6F61', 'secondary' => '#FFA07A', 'primary' => '#FA8072'),
'earthyBrown' => array('header' => '#8B4513', 'footer' => '#8B4513', 'secondary' => '#D2B48C', 'primary' => '#A0522D'),
'crimsonWave' => array('header' => '#B22222', 'footer' => '#B22222', 'secondary' => '#FF6347', 'primary' => '#DC143C'),
'autumnLeaves' => array('header' => '#FF4500', 'footer' => '#FF4500', 'secondary' => '#FFD700', 'primary' => '#8B4513'),
'coolCyan' => array('header' => '#00CED1', 'footer' => '#00CED1', 'secondary' => '#E0FFFF', 'primary' => '#20B2AA'),
'deepPurple' => array('header' => '#9400D3', 'footer' => '#9400D3', 'secondary' => '#9932CC', 'primary' => '#8B008B'),
'warmAmber' => array('header' => '#FFBF00', 'footer' => '#FFBF00', 'secondary' => '#FFD700', 'primary' => '#FF8C00'),
@@ -143,93 +101,102 @@ $colorSchemes = array(
'burntOrange' => array('header' => '#FF7F50', 'footer' => '#FF7F50', 'secondary' => '#FFA07A', 'primary' => '#FF4500'),
'standardcolor' => array('header' => '#cdb38b', 'footer' => '#eecfa1', 'secondary' => '#f5f5dc', 'primary' => '#4F4F4F')
);
// Die Farbschaltflächen habe ich eingefügt damit man sich ein gesamtbild der Farbschemas machen kann.
// Bitte last eure kereativität durch nichts stoppen ändert die colorSchemes wie es euch gefällt.
define('SHOW_COLOR_BUTTONS', false); // Farbschaltflächen anzeigen (true/false)
define('INITIAL_COLOR_SCHEME', 'standardcolor'); // Farbschema auswählen
// Die Farbschaltflächen habe ich eingefügt, damit man sich ein Gesamtbild der Farbschemata machen kann.
// Bitte lasst eurer Kreativität freien Lauf und ändert die Farbschemata nach Belieben.
// I added the color buttons to give an overview of the color schemes.
// Feel free to unleash your creativity and modify the color schemes as you like.
define('SHOW_COLOR_BUTTONS', false); // Farbschaltflächen anzeigen (true/false) / Show color buttons (true/false)
define('INITIAL_COLOR_SCHEME', 'standardcolor'); // Farbschema auswählen / Select color scheme
// Farben und Schriftart
// Setze aktuelle Farbschema basierend auf der Konstanten INITIAL_COLOR_SCHEME
// Colors and fonts
$currentColorScheme = $colorSchemes[INITIAL_COLOR_SCHEME];
define('HEADER_COLOR', $currentColorScheme['header']); // Header-Farbe / Header color
define('FOOTER_COLOR', $currentColorScheme['footer']); // Footer-Farbe / Footer color
define('SECONDARY_COLOR', $currentColorScheme['secondary']); // Sekundärfarbe / Secondary color
define('PRIMARY_COLOR', $currentColorScheme['primary']); // Primäre Schriftfarbe / Primary text color
// definiere die Farben für Header, Footer und andere
define('HEADER_COLOR', $currentColorScheme['header']); // Header-Farbe
define('FOOTER_COLOR', $currentColorScheme['footer']); // Footer-Farbe
define('SECONDARY_COLOR', $currentColorScheme['secondary']); // Sekundärfarbe
define('PRIMARY_COLOR', $currentColorScheme['primary']); // Primäre Schriftfarbe
define('FONT_FAMILY_STATS', 'Arial, Verdana, sans-serif');
define('FONT_FAMILY', 'Pacifico, normal, serif');
define('FONT_FAMILY_STATS', 'Arial, Verdana, sans-serif'); // Schriftart für Statistiken / Font for statistics
define('FONT_FAMILY', 'Pacifico, normal, serif'); // Schriftart für die Webseite / Font for the website
// Schriftgrößen
define('BASE_FONT_SIZE', '26px'); // Standardgröße für Text
define('TITLE_FONT_SIZE', '48px'); // Größe für Überschriften
define('STATS_FONT_SIZE', '14px'); // Größe für Statistik-Text
// Font sizes
define('BASE_FONT_SIZE', '26px'); // Standardgröße für Text / Default text size
define('TITLE_FONT_SIZE', '48px'); // Größe für Überschriften / Size for headings
define('STATS_FONT_SIZE', '14px'); // Größe für Statistik-Text / Size for statistics text
// Links
define('LINK_COLOR', '#3A3A3A'); // Standard Link-Farbe
define('LINK_HOVER_COLOR', 'red'); // Link-Farbe beim Hover
define('LINK_COLOR', '#3A3A3A'); // Standard Link-Farbe / Default link color
define('LINK_HOVER_COLOR', 'red'); // Link-Farbe beim Hover / Link color on hover
// Hintergrund- und Vordergrundbilder
define('BACKGROUND_IMAGE', 'pics/transparent.png'); // Hintergrundbild
define('FOREGROUND_IMAGE', 'pics/transparent.png'); // Logo oder Vordergrundbild
define('BACKGROUND_OPACITY', 1.0); // Transparenz des Hintergrunds
define('FOREGROUND_OPACITY', 1.0); // Transparenz des Logos
// Background and foreground images
define('BACKGROUND_IMAGE', 'pics/transparent.png'); // Hintergrundbild / Background image
define('FOREGROUND_IMAGE', 'pics/transparent.png'); // Logo oder Vordergrundbild / Logo or foreground image
define('BACKGROUND_OPACITY', 1.0); // Transparenz des Hintergrunds / Background opacity
define('FOREGROUND_OPACITY', 1.0); // Transparenz des Logos / Logo opacity
// Anzeigeoptionen
define('LOGO_ON', 'OFF'); // Logo anzeigen: ON / OFF
define('TEXT_ON', 'ON'); // Begrüßungstext anzeigen: ON / OFF
define('LOGO_PATH', 'include/Metavers150.png'); // Pfad zum Logo
define('LOGO_WIDTH', '50%'); // Logo-Breite
define('LOGO_HEIGHT', '25%'); // Logo-Höhe
define('GUIDE_DATA', 'DATA'); // DATA/JSON guide anzeigen.
// Display options
define('LOGO_ON', 'OFF'); // Logo anzeigen: ON / OFF / Show logo: ON / OFF
define('TEXT_ON', 'ON'); // Begrüßungstext anzeigen: ON / OFF / Show welcome text: ON / OFF
define('LOGO_PATH', 'include/Metavers150.png'); // Pfad zum Logo / Path to the logo
define('LOGO_WIDTH', '50%'); // Logo-Breite / Logo width
define('LOGO_HEIGHT', '25%'); // Logo-Höhe / Logo height
define('GUIDE_DATA', 'DATA'); // DATA/JSON guide anzeigen / Show DATA/JSON guide
// Begrüßungstext
// Schriftarten gibt es hier: https://fonts.google.com/
// LOGO_FONT Beispiele: 'Pacifico', 'Barriecito','Playfair Display','Comic Neue','Roboto','Lobster','Montserrat','Oswald','Raleway','Merriweather','Lora','Open Sans','Dancing Script','Nunito'
define('LOGO_FONT', 'Lobster'); // Schriftart des Logos
define('PRIMARY_COLOR_LOGO', '#00FFFF'); // Allgemeine Schriftfarbe Schwarz 000000, Weiss FFFFFF
define('WELCOME_TEXT', '<p> &nbsp; Willkommen im ' . SITE_NAME . '</p>');
define('WELCOME_TEXT_WIDTH', '50%'); // Standardbreite (z. B. 50%)
define('WELCOME_TEXT_HEIGHT', 'auto'); // Standardhöhe (auto für flexible Höhe)
define('WELCOME_TEXT_COLOR', PRIMARY_COLOR_LOGO); // Farbe des Textes
define('WELCOME_TEXT_ALIGN', 'left'); // Zentriert, links oder rechts
define('WELCOME_TEXT_FONT_SIZE', '24px'); // Schriftgröße des Textes
// Welcome text
define('LOGO_FONT', 'Lobster'); // Schriftart des Logos / Font for the logo
define('PRIMARY_COLOR_LOGO', '#00FFFF'); // Allgemeine Schriftfarbe / General text color
define('WELCOME_TEXT', '<p> &nbsp; Willkommen im ' . SITE_NAME . '</p>'); // Begrüßungstext / Welcome text
define('WELCOME_TEXT_WIDTH', '50%'); // Standardbreite / Default width
define('WELCOME_TEXT_HEIGHT', 'auto'); // Standardhöhe / Default height
define('WELCOME_TEXT_COLOR', PRIMARY_COLOR_LOGO); // Farbe des Textes / Text color
define('WELCOME_TEXT_ALIGN', 'left'); // Zentriert, links oder rechts / Centered, left, or right
define('WELCOME_TEXT_FONT_SIZE', '24px'); // Schriftgröße des Textes / Text font size
// Bildanzeige-Einstellungen
define('SLIDESHOW_FOLDER', './images'); // Verzeichnis für die Bilder
define('IMAGE_SIZE', 'width:100%;height:100%'); // Größe der Bilder (100% für Vollbild)
define('SLIDESHOW_DELAY', 9000); // Zeit zwischen Bildern (in ms, 9000 = 9 Sekunden)
// Image display settings
define('SLIDESHOW_FOLDER', './images'); // Verzeichnis für die Bilder / Directory for images
define('IMAGE_SIZE', 'width:100%;height:100%'); // Größe der Bilder / Size of images
define('SLIDESHOW_DELAY', 9000); // Zeit zwischen Bildern (in ms) / Time between images (in ms)
// Einstellungen für Maptiles
define('FREI_COLOR', '#0088FF'); // Farbe für freie Koordinaten
define('BESCHLAGT_COLOR', '#55C155'); // Farbe für SingleRegion
define('VARREGION_COLOR', '#006400'); // Farbe für VarRegion
define('CENTER_COLOR', '#FF0000'); // Farbe für Zentrum
define('TILE_SIZE', '25px'); // Größe der Farbfelder
// Settings for maptiles
define('FREI_COLOR', '#0088FF'); // Farbe für freie Koordinaten / Color for free coordinates
define('BESCHLAGT_COLOR', '#55C155'); // Farbe für SingleRegion / Color for SingleRegion
define('VARREGION_COLOR', '#006400'); // Farbe für VarRegion / Color for VarRegion
define('CENTER_COLOR', '#FF0000'); // Farbe für Zentrum / Color for center
define('TILE_SIZE', '25px'); // Größe der Farbfelder / Size of color fields
// Zentrum des Grids
define('CONF_CENTER_COORD_X', 5500); // X-KOORDINATE DES ZENTRUMS
define('CONF_CENTER_COORD_Y', 5500); // Y-KOORDINATE DES ZENTRUMS
// Center of the grid
define('CONF_CENTER_COORD_X', 5500); // X-KOORDINATE DES ZENTRUMS / X coordinate of the center
define('CONF_CENTER_COORD_Y', 5500); // Y-KOORDINATE DES ZENTRUMS / Y coordinate of the center
define('MAPS_X', 32);
define('MAPS_Y', 32);
define('MAPS_X', 32); // Anzahl der Kacheln in X-Richtung / Number of tiles in X direction
define('MAPS_Y', 32); // Anzahl der Kacheln in Y-Richtung / Number of tiles in Y direction
// MOTD-Einstellung: 'Dyn' für dynamisch, 'Static' für statisch
define('MOTD', 'Dyn'); // Oder 'Static'
// MOTD setting: 'Dyn' for dynamic, 'Static' for static
define('MOTD', 'Dyn'); // Oder 'Static' / Or 'Static'
// Statische MOTD (nur relevant, wenn MOTD auf 'Static' gesetzt ist)
define('MOTD_STATIC_MESSAGE', 'Willkommen auf im Grid! Bitte beachte unsere Regeln.');
define('MOTD_STATIC_TYPE', 'system');
define('MOTD_STATIC_URL_TOS', BASE_URL . '/include/tos.php');
define('MOTD_STATIC_URL_DMCA', BASE_URL . '/include/dmca.php');
// Static MOTD (only relevant if MOTD is set to 'Static')
define('MOTD_STATIC_MESSAGE', 'Willkommen auf im Grid! Bitte beachte unsere Regeln.'); // Statische Nachricht / Static message
define('MOTD_STATIC_TYPE', 'system'); // Typ der Nachricht / Type of message
define('MOTD_STATIC_URL_TOS', BASE_URL . '/include/tos.php'); // URL zur TOS-Seite / URL to the TOS page
define('MOTD_STATIC_URL_DMCA', BASE_URL . '/include/dmca.php'); // URL zur DMCA-Seite / URL to the DMCA page
// Definiere verschiedene RSS-Feed-URLs getrennt durch Komma.
// Define different RSS feed URLs separated by commas.
$feed_urls = [
'http://opensimulator.org/viewgit/?a=rss-log&p=opensim', // Standard-Feed
'http://opensimulator.org/viewgit/?a=rss-log&p=opensim', // Standard-Feed / Default feed
'https://www.hypergridbusiness.com/feed'
];
// Maximale Anzahl der Einträge pro Feed
// Maximum number of entries per feed
$max_entries = 50;
?>
?>
-2
View File
@@ -329,5 +329,3 @@ $finalHTML = simpleMarkdownToHTML($dmcaText);
// 3️⃣ HTML ausgeben
echo "<div class='markdown-content'>$finalHTML</div>";
?>
<?php include_once 'include/footer.php'; ?>
+10
View File
@@ -0,0 +1,10 @@
<?php
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'your_username');
define('DB_PASSWORD', 'your_password');
define('DB_NAME', 'your_database');
define('DB_ASSET_NAME', 'your_database');
define('REMOTEADMIN_HTTPAUTHUSERNAME', 'opensim');
define('REMOTEADMIN_HTTPAUTHPASSWORD', 'opensim123');
?>
-2
View File
@@ -320,5 +320,3 @@ $finalHTML = simpleMarkdownToHTML($tosText);
// 3️⃣ HTML ausgeben
echo "<div class='markdown-content'>$finalHTML</div>";
?>
<?php include_once 'include/footer.php'; ?>
+90
View File
@@ -0,0 +1,90 @@
<?php
$title = "SearchService";
include_once 'include/header.php';
// todo: places, land for sale, classifieds, events fehlen.
// Grid info: [grid-info]
// Grid status: [grid-status]
// Grid status: [popular-places]
// Profile page: [avatar-profile]
?>
<style>
htmlBody {font-family: Arial, sans-serif; background-color: #f4f4f4; color: black; margin: 0; padding: 0;}
main {width: 75%; margin: 2em auto; padding: 2em; background-color: #ffffff; color: black; border: 1px solid #ccc; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);}
h2 {color: #333;}
form label {display: block; margin-bottom: 0.5em; color: #333;}
form input[type="text"], form select {width: 100%; padding: 5px; margin-bottom: 10px; border: 1px solid #ccc; border-radius: 4px;}
form input[type="submit"] {padding: 5px 20px; background-color: #007BFF; color: #ffffff; border: none; border-radius: 4px; cursor: pointer;}
form input[type="submit"]:hover {background-color: #0056b3;}
table {width: 100%; border-collapse: collapse; font-size: 0.72em;} /* Schriftgröße um 10% reduziert */
table, th, td {border: 1px solid #ccc;}
th, td {padding: 8px; text-align: left;}
</style>
<main>
<h2><?php echo SITE_NAME; ?> SearchService Overview</h2>
<p>All information related to the SearchService can be found here.</p>
<form method="post" action="">
<label for="search_type">Search Type:</label>
<select id="search_type" name="search_type">
<option value="userinfo">People (User Info)</option>
<option value="os_groups_groups">Groups</option>
<option value="regions">Regions</option>
</select>
<label for="search_query">Search Query:</label>
<input type="text" id="search_query" name="search_query" required>
<input type="submit" value="Search">
</form>
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$search_type = filter_input(INPUT_POST, 'search_type', FILTER_SANITIZE_STRING);
$search_query = filter_input(INPUT_POST, 'search_query', FILTER_SANITIZE_STRING);
$con = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);
if ($search_type === 'userinfo') {
// Suchen nach Userinfo
$query = "SELECT * FROM `userinfo` WHERE `user` LIKE '%$search_query%' OR `avatar` LIKE '%$search_query%' OR `serverurl` LIKE '%$search_query%' ORDER BY `avatar` ASC, `serverurl` ASC";
} elseif ($search_type === 'os_groups_groups') {
// Suchen nach Gruppen
$query = "SELECT * FROM `os_groups_groups` WHERE `Name` LIKE '%$search_query%' OR `Location` LIKE '%$search_query%' ORDER BY `Name` ASC";
} elseif ($search_type === 'regions') {
// Suchen nach Regionen
$query = "SELECT * FROM `regions` WHERE `regionName` LIKE '%$search_query%' OR `serverIP` LIKE '%$search_query%' ORDER BY `regionName` DESC";
} else {
$query = "";
}
if ($query) {
$result = mysqli_query($con, $query);
if (mysqli_num_rows($result) > 0) {
echo "<h3>Search Results:</h3>";
echo "<table>";
echo "<tr>";
// Tabellenkopf anzeigen
foreach (mysqli_fetch_fields($result) as $field) {
echo "<th>" . htmlspecialchars($field->name) . "</th>";
}
echo "</tr>";
// Ergebnisse ausgeben
while ($row = mysqli_fetch_assoc($result)) {
echo "<tr>";
foreach ($row as $value) {
echo "<td>" . htmlspecialchars($value) . "</td>";
}
echo "</tr>";
}
echo "</table>";
} else {
echo "<p>No results found.</p>";
}
}
mysqli_close($con);
}
?>
</main>