diff --git a/App/pages/heli-game.php b/App/pages/heli-game.php index f5fc216..9958523 100644 --- a/App/pages/heli-game.php +++ b/App/pages/heli-game.php @@ -1,22 +1,92 @@ prepare('SELECT class_id, display_name FROM student_sessions WHERE id = ?'); + $stmt->execute([$sessionId]); + $sess = $stmt->fetch(PDO::FETCH_ASSOC); + if ($sess && !empty($sess['class_id'])) { + $classId = (int)$sess['class_id']; + // Klassen-Default + $cm = $db->prepare('SELECT mode, current_level FROM class_modules WHERE class_id = ? AND module_id = ?'); + $cm->execute([$classId, 'heli']); + $cmRow = $cm->fetch(PDO::FETCH_ASSOC); + if ($cmRow) { + $mode = $cmRow['mode']; + if ($mode === 'teacher_started') $forcedLevel = (int)($cmRow['current_level'] ?? 1); + } else { + $mode = 'locked'; // kein Klassen-Eintrag = explizit gesperrt + } + // Override auf Schueler-Ebene + $so = $db->prepare( + 'SELECT sm.mode FROM student_modules sm + JOIN students s ON s.id = sm.student_id + WHERE s.class_id = ? AND s.display_name = ? AND sm.module_id = ?' + ); + $so->execute([$classId, $sess['display_name'], 'heli']); + $soRow = $so->fetch(PDO::FETCH_ASSOC); + if ($soRow) $mode = $soRow['mode']; + // Easy-Flag + $eq = $db->prepare( + 'SELECT easy_language FROM students WHERE class_id = ? AND display_name = ?' + ); + $eq->execute([$classId, $sess['display_name']]); + $eqRow = $eq->fetch(PDO::FETCH_ASSOC); + if ($eqRow) $easy = !empty($eqRow['easy_language']); + } + // Session ohne class_id = Autodidakt -> bleibt 'free' +} + +// Locked-Seite +if ($mode === 'locked') { + http_response_code(403); + header('Content-Type: text/html; charset=utf-8'); + $cssHref = BASE_PATH . '/assets/css/design-system.css'; + $cockpit = BASE_PATH . '/sim'; + echo <<
+Deine Lehrkraft hat dieses Modul für eure Klasse noch nicht freigegeben.
+Im Cockpit findest du die derzeit freigegebenen Module.
+Deine Lehrkraft hat dieses Modul für eure Klasse noch nicht freigegeben.
+Falls du keinen Klassen-Beitritt brauchst, kannst du im Cockpit +zurück und ein anderes frei verfügbares Modul starten.
+