prepare('UPDATE navigation SET sort_order = ? WHERE id = ?'); foreach ($order as $pos => $navId) { $stmt->execute([$pos, (int) $navId]); } } if (!empty($_SERVER['HTTP_X_REQUESTED_WITH'])) { header('Content-Type: application/json'); echo json_encode(['success' => true]); exit; } flash('success', 'Reihenfolge aktualisiert.'); redirect('/admin/navigation.php'); } if (isset($_POST['delete_id'])) { $stmt = $pdo->prepare('DELETE FROM navigation WHERE id = ?'); $stmt->execute([(int) $_POST['delete_id']]); flash('success', 'Navigationspunkt gelöscht.'); redirect('/admin/navigation.php'); } if (isset($_POST['save'])) { $navId = !empty($_POST['nav_id']) ? (int) $_POST['nav_id'] : null; $label = trim($_POST['label'] ?? ''); $type = $_POST['type'] ?? 'url'; $target = trim($_POST['target'] ?? ''); $sortOrder = (int) ($_POST['sort_order'] ?? 0); if (!in_array($type, ['url', 'page', 'category', 'home'])) { $type = 'url'; } if ($label === '') { flash('error', 'Bezeichnung ist erforderlich.'); } else { if ($navId) { $stmt = $pdo->prepare('UPDATE navigation SET label=?, type=?, target=?, sort_order=? WHERE id=?'); $stmt->execute([$label, $type, $target, $sortOrder, $navId]); flash('success', 'Navigationspunkt aktualisiert.'); } else { $maxOrder = (int) $pdo->query('SELECT COALESCE(MAX(sort_order),0) FROM navigation')->fetchColumn(); $stmt = $pdo->prepare('INSERT INTO navigation (label, type, target, sort_order) VALUES (?, ?, ?, ?)'); $stmt->execute([$label, $type, $target, $maxOrder + 1]); flash('success', 'Navigationspunkt erstellt.'); } } redirect('/admin/navigation.php'); } } $navItems = $pdo->query('SELECT * FROM navigation ORDER BY sort_order')->fetchAll(); $allPages = $pdo->query("SELECT id, title FROM pages WHERE status='published' ORDER BY title")->fetchAll(); $allCategories = $pdo->query('SELECT id, name FROM categories ORDER BY sort_order, name')->fetchAll(); $editNav = null; if (isset($_GET['edit'])) { $stmt = $pdo->prepare('SELECT * FROM navigation WHERE id = ?'); $stmt->execute([(int) $_GET['edit']]); $editNav = $stmt->fetch(); } $pageTitle = 'Navigation'; $currentPage = 'navigation'; ob_start(); ?>
Keine Navigationspunkte vorhanden.
| Reihenfolge | Bezeichnung | Typ | Ziel | Aktionen |
|---|---|---|---|---|
| ☰ = $nav['sort_order'] ?> | = e($nav['label']) ?> | = e($nav['type']) ?> | = e($nav['target']) ?> | Bearbeiten |