diff --git a/admin.php b/admin.php index 4e6132c..da97c28 100644 --- a/admin.php +++ b/admin.php @@ -297,6 +297,38 @@ if (isset($_GET['delete_faction'])) { exit; } +// Handle Levels CRUD +if ($_SERVER["REQUEST_METHOD"] === "POST" && isset($_POST["action"]) && $_POST["action"] === "upsert_level") { + $id = (int)$_POST["id"]; + $name = $_POST["name"]; + $slug = $_POST["slug"]; + $resource_id = (int)$_POST["resource_id"]; + $required_quantity = (int)$_POST["required_quantity"]; + + if ($required_quantity <= 0) { + header("Location: admin.php?tab=levels&error=invalid_quantity"); + exit; + } + + if ($id > 0) { + $stmt = $db->prepare("UPDATE levels SET name = ?, slug = ?, resource_id = ?, required_quantity = ? WHERE id = ?"); + $stmt->execute([$name, $slug, $resource_id, $required_quantity, $id]); + } else { + $stmt = $db->prepare("INSERT INTO levels (name, slug, resource_id, required_quantity) VALUES (?, ?, ?, ?)"); + $stmt->execute([$name, $slug, $resource_id, $required_quantity]); + } + + header("Location: admin.php?tab=levels&success=1"); + exit; +} + +if (isset($_GET["delete_level"])) { + $id = (int)$_GET["delete_level"]; + $db->prepare("DELETE FROM levels WHERE id = ?")->execute([$id]); + header("Location: admin.php?tab=levels&success=1"); + exit; +} + // Handle Resource CRUD if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['action'] === 'upsert_resource') { $id = (int)$_POST['id']; @@ -437,6 +469,7 @@ $factions_list = []; $resources_list = []; $lootboxes_list = []; $project_logs_list = []; +$levels_list = []; if ($tab === 'users') { $users_list = $db->query("SELECT id, username, email, role FROM users ORDER BY username ASC")->fetchAll(); @@ -467,6 +500,9 @@ if ($tab === 'users') { $f['alliance_ids'] = $stmt->fetchAll(PDO::FETCH_COLUMN); } unset($f); +} elseif ($tab === 'levels') { + $levels_list = $db->query("SELECT l.*, r.name as resource_name FROM levels l JOIN game_resources r ON l.resource_id = r.id ORDER BY l.required_quantity ASC")->fetchAll(); + $resources_list = $db->query("SELECT id, name FROM game_resources ORDER BY name ASC")->fetchAll(); } elseif ($tab === 'resources') { $resources_list = $db->query("SELECT * FROM game_resources ORDER BY name ASC")->fetchAll(); } elseif ($tab === 'project_logs') { @@ -583,6 +619,9 @@ if ($tab === 'users') {
À configurer
+| Nom | +Slug | +Ressource requise | +Quantité requise | +Actions | +
|---|---|---|---|---|
| Aucun niveau configuré. | ||||
| + | |
+ + | + | + + Suppr + | +