prepare('SELECT easy_language FROM students WHERE id = ? AND deleted_at IS NULL'); $stmt->execute([$studentId]); $flag = $stmt->fetchColumn(); self::$active = ($flag === 1 || $flag === '1' || $flag === true); } catch (Throwable $e) { self::$active = false; // DB-Fehler → Normalform } return self::$active; } /** * Liefert `$easy`, wenn Easy-Modus aktiv und `$easy` nicht leer — sonst `$normal`. * Für Strings, JSON-Arrays und beliebige Textfelder. */ public static function pick(?string $normal, ?string $easy): ?string { if (self::isActive() && $easy !== null && $easy !== '') { return $easy; } return $normal; } /** * Für Tests / UI-Zwecke: erlaubt das manuelle Setzen (z.B. Vorschau-Modus * für Lehrpersonen). Kein Persistieren — nur für den aktuellen Request. */ public static function override(?bool $active): void { self::$active = $active; } }