prepare('SELECT COUNT(*) FROM site_pages WHERE slug = ? AND id <> ?'); $dup->execute([$slug, $id]); if ((int) $dup->fetchColumn()) $errors[] = 'Dieser Slug wird bereits verwendet.'; } if (!$errors) { if ($action === 'create') { $pdo->prepare('INSERT INTO site_pages (slug,title,content,show_in_nav,is_active,sort_order,created_at,updated_at) VALUES (?,?,?,?,?,?,?,?)') ->execute([$slug, $title, $content, $showNav, $isActive, $sortOrder, db_now(), db_now()]); audit_log($staff['id'], "Seite erstellt: {$title}"); flash('success', 'Seite erstellt.'); } else { $pdo->prepare('UPDATE site_pages SET slug=?,title=?,content=?,show_in_nav=?,is_active=?,sort_order=?,updated_at=? WHERE id=?') ->execute([$slug, $title, $content, $showNav, $isActive, $sortOrder, db_now(), $id]); audit_log($staff['id'], "Seite aktualisiert: {$title}"); flash('success', 'Änderungen gespeichert.'); } redirect('/staff/site_pages.php'); } } if ($action === 'delete') { $pdo->prepare('DELETE FROM site_pages WHERE id = ?')->execute([(int) $_POST['id']]); audit_log($staff['id'], 'Seite gelöscht: #' . (int) $_POST['id']); flash('success', 'Seite gelöscht.'); redirect('/staff/site_pages.php'); } } $isNew = isset($_GET['new']); $editId = (int) ($_GET['edit'] ?? 0); $showForm = $isNew || $editId || ($errors && in_array($_POST['action'] ?? '', ['create', 'update'], true)); $pages = $pdo->query('SELECT * FROM site_pages ORDER BY sort_order, title')->fetchAll(); $editPage = null; if ($editId) { $es = $pdo->prepare('SELECT * FROM site_pages WHERE id = ?'); $es->execute([$editId]); $editPage = $es->fetch() ?: null; } $pageTitle = 'Seiten-Verwaltung'; $activePage = 'site_pages'; require __DIR__ . '/_header.php'; ?>
$_POST[$k] ?? $default; $v = fn(string $k, string $col, $default = '') => $f($k, $editPage[$col] ?? $default); $curActive = $_POST ? (($_POST['status'] ?? 'active') === 'active') : (bool) ($editPage['is_active'] ?? 1); $showNavChecked = $_POST ? !empty($_POST['show_in_nav']) : (bool) ($editPage['show_in_nav'] ?? 1); // Inhalt wird beim Absenden als bereinigtes HTML gespeichert; bei Fehlern den eingegebenen Text behalten $contentHtml = $_POST ? sanitize_staff_html((string) ($_POST['content'] ?? '')) : (string) ($editPage['content'] ?? ''); ?>

—

'Seite', 'content' => 'Inhalt']); ?>

Seiteninformationen

Erreichbar unter /page/

Abbrechen

Seiten-Verwaltung

Neue Seite hinzufügen

Eigene Inhaltsseiten für das Kundenportal (z. B. Impressum, Datenschutz, Willkommen). Erreichbar unter /page/{slug}.

TitelURLNavigationStatusErstelltZuletzt aktualisiert
/page/ Bearbeiten ·
Noch keine Seiten angelegt.