fix and update
This commit is contained in:
1 parent
86cbd003f0
commit
b16f696e0a
2 files changed
+99
-34
No files matched your search
+77
-34
@@ -1,4 +1,20 @@
|
||||
<?php
|
||||
// Vor allen includes, vor jeglicher Ausgabe
|
||||
session_set_cookie_params([
|
||||
'lifetime' => 0, // bis Browser geschlossen
|
||||
'path' => '/', // Gültig für ganze Domain
|
||||
'domain' => '', // aktuelle Domain
|
||||
'secure' => false, // true nur für HTTPS
|
||||
'httponly' => true,
|
||||
'samesite' => 'Lax'
|
||||
]);
|
||||
session_start();
|
||||
|
||||
if (empty($_SESSION['user_logged_in'])) {
|
||||
header('Location: login.php');
|
||||
exit;
|
||||
}
|
||||
|
||||
include 'config.php';
|
||||
include 'controller/CookieController.php';
|
||||
include 'controller/DatabaseConnect.php';
|
||||
@@ -8,18 +24,37 @@ include 'controller/LogController.php';
|
||||
include 'controller/UserController.php';
|
||||
// include 'controller/RoutesController.php';
|
||||
|
||||
session_start();
|
||||
|
||||
$selectedService = null;
|
||||
foreach ($services as $key => $service) {
|
||||
if ($service['active']) {
|
||||
$selectedService = $key;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (isset($_GET['service']) && isset($services[$_GET['service']]) && $services[$_GET['service']]['active']) {
|
||||
|
||||
// 1. Service aus URL, wenn erlaubt & aktiv
|
||||
if (
|
||||
isset($_GET['service']) &&
|
||||
isset($services[$_GET['service']]) &&
|
||||
$services[$_GET['service']]['active']
|
||||
) {
|
||||
$selectedService = $_GET['service'];
|
||||
}
|
||||
|
||||
// 2. Default-Service
|
||||
if (!$selectedService &&
|
||||
isset($defaultService) &&
|
||||
isset($services[$defaultService]) &&
|
||||
$services[$defaultService]['active']
|
||||
) {
|
||||
$selectedService = $defaultService;
|
||||
}
|
||||
|
||||
// 3. Fallback: erster aktiver Service
|
||||
if (!$selectedService) {
|
||||
foreach ($services as $key => $service) {
|
||||
if ($service['active']) {
|
||||
$selectedService = $key;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
@@ -35,17 +70,43 @@ if (isset($_GET['service']) && isset($services[$_GET['service']]) && $services[$
|
||||
<header>
|
||||
Backend
|
||||
<button id="darkModeToggle">🌙 Dark Mode</button>
|
||||
<script src="main.js"></script>
|
||||
</header>
|
||||
<div class="main">
|
||||
<div class="sidebar">
|
||||
<?php foreach ($services as $key => $service): ?>
|
||||
<?php if ($service['active']): ?>
|
||||
<a href="?service=<?php echo $key; ?>">
|
||||
<button class="<?php echo $selectedService === $key ? 'active' : ''; ?>">
|
||||
<?php echo $service['name']; ?>
|
||||
</button>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
<?php foreach ($serviceGroups as $groupKey => $group): ?>
|
||||
<?php
|
||||
$isOpen = false;
|
||||
|
||||
if (!empty($group['defaultOpen'])) {
|
||||
$isOpen = true;
|
||||
}
|
||||
|
||||
if (in_array($selectedService, $group['services'], true)) {
|
||||
$isOpen = true;
|
||||
}
|
||||
?>
|
||||
|
||||
<div class="service-group <?= $isOpen ? 'open' : '' ?>" data-group="<?= $groupKey ?>">
|
||||
<div class="group-title">
|
||||
<?= htmlspecialchars($group['label']) ?>
|
||||
<span class="arrow">▸</span>
|
||||
</div>
|
||||
|
||||
<div class="group-services">
|
||||
<?php foreach ($group['services'] as $serviceKey): ?>
|
||||
<?php
|
||||
if (!isset($services[$serviceKey])) continue;
|
||||
if (!$services[$serviceKey]['active']) continue;
|
||||
?>
|
||||
<a href="?service=<?= $serviceKey ?>">
|
||||
<button class="<?= $selectedService === $serviceKey ? 'active' : '' ?>">
|
||||
<?= htmlspecialchars($services[$serviceKey]['name']) ?>
|
||||
</button>
|
||||
</a>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<div class="content">
|
||||
@@ -58,24 +119,6 @@ if (isset($_GET['service']) && isset($services[$_GET['service']]) && $services[$
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const toggle = document.getElementById('darkModeToggle');
|
||||
const body = document.body;
|
||||
|
||||
if (localStorage.getItem('darkMode') === 'enabled') {
|
||||
body.classList.add('dark-mode');
|
||||
}
|
||||
|
||||
toggle.addEventListener('click', () => {
|
||||
body.classList.toggle('dark-mode');
|
||||
if (body.classList.contains('dark-mode')) {
|
||||
localStorage.setItem('darkMode', 'enabled');
|
||||
} else {
|
||||
localStorage.setItem('darkMode', 'disabled');
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,22 @@
|
||||
const toggle = document.getElementById('darkModeToggle');
|
||||
const body = document.body;
|
||||
|
||||
if (localStorage.getItem('darkMode') === 'enabled') {
|
||||
body.classList.add('dark-mode');
|
||||
}
|
||||
|
||||
toggle.addEventListener('click', () => {
|
||||
body.classList.toggle('dark-mode');
|
||||
if (body.classList.contains('dark-mode')) {
|
||||
localStorage.setItem('darkMode', 'enabled');
|
||||
} else {
|
||||
localStorage.setItem('darkMode', 'disabled');
|
||||
}
|
||||
});
|
||||
|
||||
document.querySelectorAll('.group-title').forEach(title => {
|
||||
title.addEventListener('click', () => {
|
||||
const group = title.parentElement;
|
||||
group.classList.toggle('open');
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user