on any intern page. * Set $currentPage before including, e.g.: * $currentPage = 'trainer'; * require $baseDir . '/intern/scripts/sidebar/sidebar.php'; */ $isWKL = $_SESSION['access_granted_wk_leitung'] ?? false; $isTrainer = $_SESSION['access_granted_trainer'] ?? false; $isKampfrichter = $_SESSION['access_granted_kampfrichter'] ?? false; if (!isset($currentPage)) $currentPage = ''; if (isset($_POST['abmelden'])) { if (session_status() === PHP_SESSION_ACTIVE) { $_SESSION = array(); session_destroy(); } header("Location: " . $_SERVER['PHP_SELF']); exit; } // SVG Icons (stroke-based, 24x24 viewBox) $icons = [ 'trainer' => '', 'kampfrichter' => '', 'rechnungen' => '', 'logindata' => '', 'displaycontrol' => '', 'kalender' => '', 'riegeneinteilung' => '', 'einstellungen' => '', ]; if (isset($mysqli) && isset($tableInternUsers)) { if ($currentPage === 'kampfrichter' && checkIfUserHasSessionId('kampfrichter')): $userDispId = intval($_SESSION['passcodekampfrichter_id']); elseif ($currentPage === 'kampfrichter' && checkIfUserHasSessionId('trainer')): $userDispId = intval($_SESSION['passcodetrainer_id']); elseif ($isWKL && checkIfUserHasSessionId('wk_leitung')): $userDispId = intval($_SESSION['passcodewk_leitung_id']); endif; $sql = "SELECT `username`, `freigabe` FROM $tableInternUsers WHERE id = ?"; $stmt = $mysqli->prepare($sql); $stmt->bind_param('i', $userDispId); $stmt->execute(); $stmt->bind_result($usernameDB, $freigabenDB); $stmt->fetch(); $username = $usernameDB ?? ''; $decoded = json_decode($freigabenDB, true); $freigabenSidebar = is_array($decoded) ? $decoded : []; $stmt->close(); } $links = []; $renderMenu = true; // Trainer & Kampfrichter are visible to their own role + WKL if ($isTrainer || $isWKL) { $links[] = ['key' => 'trainer', 'label' => 'Trainer', 'url' => '/intern/trainer', 'freigaben' => true]; } if ($isKampfrichter || $isWKL) { $links[] = ['key' => 'kampfrichter', 'label' => 'Kampfrichter', 'url' => '/intern/kampfrichter', 'freigaben' => true]; } // WKL-only pages if ($isWKL) { $links[] = ['key' => 'rechnungen', 'label' => 'Rechnungen', 'url' => '/intern/wk-leitung/rechnungen', 'freigaben' => false]; $links[] = ['key' => 'logindata', 'label' => 'Benutzerverwaltung', 'url' => '/intern/wk-leitung/logindata', 'freigaben' => false]; $links[] = ['key' => 'displaycontrol', 'label' => 'Displaycontrol', 'url' => '/intern/wk-leitung/displaycontrol', 'freigaben' => false]; //$links[] = ['key' => 'kalender', 'label' => 'Kalender', 'url' => '/intern/wk-leitung/kalender']; $links[] = ['key' => 'riegeneinteilung', 'label' => 'Riegeneinteilung', 'url' => '/intern/wk-leitung/riegeneinteilung', 'freigaben' => false]; $links[] = ['key' => 'einstellungen', 'label' => 'Einstellungen', 'url' => '/intern/wk-leitung/einstellungen', 'freigaben' => false]; } function checkIfUserHasSessionId($type) : bool { if (isset($_SESSION['passcode'.$type.'_id']) && intval(['passcode'.$type.'_id']) > 0) { return true; } else { return false; } } function sidebarRender(string $mode) { global $isWKL, $isTrainer, $isKampfrichter, $links, $currentPage, $icons, $renderMenu, $username, $freigabenSidebar; if (!$renderMenu) { return; } if ($mode === 'button') { ?>