prepare('SELECT * FROM pages WHERE id = ?'); $stmt->execute([$id]); $page = $stmt->fetch(); if (!$page) { flash('error', 'Seite nicht gefunden.'); redirect('/admin/pages.php'); } } if ($_SERVER['REQUEST_METHOD'] === 'POST') { csrf_verify(); $title = trim($_POST['title'] ?? ''); $slug = trim($_POST['slug'] ?? ''); $body = $_POST['body'] ?? ''; $status = in_array($_POST['status'] ?? '', ['draft', 'published']) ? $_POST['status'] : 'draft'; $errors = []; if ($title === '') { $errors[] = 'Titel ist erforderlich.'; } if ($slug === '') { $slug = slugify($title); } else { $slug = slugify($slug); } $slugCheck = $pdo->prepare('SELECT id FROM pages WHERE slug = ? AND id != ?'); $slugCheck->execute([$slug, $id ?? 0]); if ($slugCheck->fetch()) { $errors[] = 'Dieser Slug wird bereits verwendet.'; } $body = sanitize_html($body); if (empty($errors)) { if ($id) { $stmt = $pdo->prepare("UPDATE pages SET title=?, slug=?, body=?, status=?, updated_at=datetime('now') WHERE id=?"); $stmt->execute([$title, $slug, $body, $status, $id]); flash('success', 'Seite aktualisiert.'); } else { $stmt = $pdo->prepare('INSERT INTO pages (title, slug, body, status) VALUES (?, ?, ?, ?)'); $stmt->execute([$title, $slug, $body, $status]); $id = $pdo->lastInsertId(); flash('success', 'Seite erstellt.'); } redirect('/admin/page-edit.php?id=' . $id); } else { foreach ($errors as $err) { flash('error', $err); } } } $pageTitle = $page ? 'Seite bearbeiten' : 'Neue Seite'; $currentPage = 'pages'; $extraHead = ''; ob_start(); ?>
'; include __DIR__ . '/templates/layout.php';