view = new View(); } /** Seiten hinter der Anmeldung rufen das zuerst auf. */ protected function verlangeAnmeldung(): void { Auth::verlange(); } protected function render(string $template, array $daten = []): void { $daten['csrfToken'] = Auth::csrfToken(); $daten['benutzer'] = Auth::benutzer(); $this->view->render($template, $daten); } protected function post(string $feld, string $standard = ''): string { $wert = $_POST[$feld] ?? $standard; return is_string($wert) ? trim($wert) : $standard; } /** * Mehrfachauswahl aus dem Formular (Ankreuzfelder mit Namen wie „konten[]“). * * @return list */ protected function postIds(string $feld): array { $werte = $_POST[$feld] ?? []; if (!is_array($werte)) { return []; } return array_values(array_map('intval', array_filter($werte, 'is_scalar'))); } /** * Mehrfachauswahl mit Textwerten (Ankreuzfelder wie „konten[]“). * * @return list */ protected function postTexte(string $feld): array { $werte = $_POST[$feld] ?? []; if (!is_array($werte)) { return []; } $texte = []; foreach ($werte as $wert) { if (is_string($wert) && trim($wert) !== '') { $texte[] = trim($wert); } } return $texte; } protected function query(string $feld, string $standard = ''): string { $wert = $_GET[$feld] ?? $standard; return is_string($wert) ? trim($wert) : $standard; } }