Zarządzanie menu
Utwórz nowe menu
Dodaj element do menu
Elementy menu
To menu nie ma jeszcze żadnych elementów
prepare("INSERT INTO menus (name, location) VALUES (?, ?)"); if ($stmt->execute([$_POST['name'], $_POST['location']])) { $message = 'Menu zostało utworzone'; logActivity('menu_created', 'menu', $db->lastInsertId()); } break; case 'delete_menu': $stmt = $db->prepare("DELETE FROM menus WHERE id = ?"); if ($stmt->execute([$_POST['menu_id']])) { $message = 'Menu zostało usunięte'; logActivity('menu_deleted', 'menu', $_POST['menu_id']); } break; case 'add_menu_item': $stmt = $db->prepare(" INSERT INTO menu_items (menu_id, title, url, page_id, parent_id, sort_order, target, css_class) VALUES (?, ?, ?, ?, ?, ?, ?, ?) "); $pageId = !empty($_POST['page_id']) ? $_POST['page_id'] : null; $parentId = !empty($_POST['parent_id']) ? $_POST['parent_id'] : null; if ($stmt->execute([ $_POST['menu_id'], $_POST['title'], $_POST['url'], $pageId, $parentId, $_POST['sort_order'] ?? 0, $_POST['target'] ?? '_self', $_POST['css_class'] ?? '' ])) { $message = 'Element menu został dodany'; logActivity('menu_item_created', 'menu_item', $db->lastInsertId()); } break; case 'delete_menu_item': $stmt = $db->prepare("DELETE FROM menu_items WHERE id = ?"); if ($stmt->execute([$_POST['item_id']])) { $message = 'Element menu został usunięty'; logActivity('menu_item_deleted', 'menu_item', $_POST['item_id']); } break; } } } // Pobierz wszystkie menu $menus = $db->query("SELECT * FROM menus ORDER BY name")->fetchAll(); // Pobierz wszystkie strony do wyboru $pages = $db->query("SELECT id, title FROM pages WHERE status = 'published' ORDER BY title")->fetchAll(); // Wybrane menu do edycji $selectedMenuId = $_GET['menu_id'] ?? ($menus[0]['id'] ?? null); $menuItems = []; if ($selectedMenuId) { $stmt = $db->prepare(" SELECT mi.*, p.title as page_title FROM menu_items mi LEFT JOIN pages p ON mi.page_id = p.id WHERE mi.menu_id = ? ORDER BY mi.sort_order, mi.id "); $stmt->execute([$selectedMenuId]); $menuItems = $stmt->fetchAll(); } ?>
To menu nie ma jeszcze żadnych elementów