From 2c3897166cf7094aac184853a7e3689ccc907484 Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Mon, 9 Mar 2026 10:50:52 +0000 Subject: [PATCH] Autosave: 20260309-105052 --- admin.php | 146 ++++- assets/pasted-20260309-091019-3cc80021.png | Bin 0 -> 138473 bytes guilde.php | 708 ++++++++------------- profile.php | 172 ++++- 4 files changed, 550 insertions(+), 476 deletions(-) create mode 100644 assets/pasted-20260309-091019-3cc80021.png diff --git a/admin.php b/admin.php index b206ca4..5894eaf 100644 --- a/admin.php +++ b/admin.php @@ -55,6 +55,61 @@ $tab = isset($_GET['tab']) ? $_GET['tab'] : 'project_logs'; // --- HANDLERS --- +// Handle Player Resource Management +if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['action'] === 'admin_manage_player_resources') { + $target_type = $_POST['target_type']; // 'single', 'multiple', 'all' + $player_ids = []; + + if ($target_type === 'all') { + $stmt = $db->query("SELECT id FROM users"); + $player_ids = $stmt->fetchAll(PDO::FETCH_COLUMN); + } else { + $player_ids = isset($_POST['player_ids']) ? (array)$_POST['player_ids'] : []; + } + + $resource_id = (int)$_POST['resource_id']; + $amount = (int)$_POST['amount']; + $operation = $_POST['operation']; // 'add', 'remove' + + if ($operation === 'remove') { + $amount = -abs($amount); + } else { + $amount = abs($amount); + } + + if (!empty($player_ids) && $resource_id > 0 && $amount !== 0) { + $db->beginTransaction(); + try { + $stmt_check = $db->prepare("SELECT amount FROM user_resources WHERE user_id = ? AND resource_id = ?"); + $stmt_insert = $db->prepare("INSERT INTO user_resources (user_id, resource_id, amount) VALUES (?, ?, ?)"); + $stmt_update = $db->prepare("UPDATE user_resources SET amount = GREATEST(0, amount + ?) WHERE user_id = ? AND resource_id = ?"); + + foreach ($player_ids as $pid) { + $pid = (int)$pid; + $stmt_check->execute([$pid, $resource_id]); + $exists = $stmt_check->fetch(); + + if ($exists) { + $stmt_update->execute([$amount, $pid, $resource_id]); + } else { + $initial_qty = max(0, $amount); + $stmt_insert->execute([$pid, $resource_id, $initial_qty]); + } + } + $db->commit(); + header("Location: admin.php?tab=player&success=1"); + exit; + } catch (Exception $e) { + $db->rollBack(); + header("Location: admin.php?tab=player&error=db"); + exit; + } + } else { + header("Location: admin.php?tab=player&error=missing_fields"); + exit; + } +} + // Handle User Role Update if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['action'] === 'update_user_role') { $target_user_id = (int)$_POST['target_user_id']; @@ -217,7 +272,7 @@ if ($_SERVER["REQUEST_METHOD"] === "POST" && isset($_POST["action"]) && $_POST[" $stmt = $db->prepare("UPDATE celestial_object_statuses SET name = ?, slug = ?, color = ?, description = ? WHERE id = ?"); $stmt->execute([$name, $slug, $color, $description, $id]); } else { - $stmt = $db->prepare("INSERT INTO celestial_object_statuses (name, slug, color, description) VALUES (?, ?, ?, ?)"); + $stmt = $db->prepare("INSERT INTO celestial_object_statuses (name, slug, color, description) VALUES (?, ?, ? , ?)"); $stmt->execute([$name, $slug, $color, $description]); } header("Location: admin.php?tab=statuses&success=1"); @@ -727,6 +782,9 @@ $guild_member_limit = 50; if ($tab === 'users') { $users_list = $db->query("SELECT id, username, email, role FROM users ORDER BY username ASC")->fetchAll(); +} elseif ($tab === 'player') { + $users_list = $db->query("SELECT id, username FROM users ORDER BY username ASC")->fetchAll(); + $resources_list = $db->query("SELECT id, name FROM game_resources ORDER BY name ASC")->fetchAll(); } elseif ($tab === 'objects') { $objects_list = $db->query("SELECT * FROM celestial_object_types ORDER BY name ASC")->fetchAll(); foreach ($objects_list as &$obj) { @@ -943,8 +1001,12 @@ elseif ($tab === "units") {
- +
Erreur : La quantité doit être un nombre strictement positif.
+ +
Erreur Base de Données : L'opération a échoué.
+ +
Erreur : Veuillez remplir tous les champs et sélectionner au moins un joueur.
Opération effectuée avec succès.
@@ -954,6 +1016,7 @@ elseif ($tab === "units") {
"> Journal de Bord Utilisateurs + Joueur Niveaux Grades Titres & Badges @@ -972,7 +1035,80 @@ elseif ($tab === "units") { Unité
- + +

Gestion des Joueurs (Gameplay)

+
+

Attribuer ou Retirer des Ressources

+
+ + +
+ + +
+ +
+ +
+
Choisir...
+
+ + + +
+
+
+ +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + + +

Gestion des Rôles

@@ -1948,7 +2084,7 @@ elseif ($tab === "units") { -
+
@@ -2873,4 +3009,4 @@ elseif ($tab === "units") { }); - + \ No newline at end of file diff --git a/assets/pasted-20260309-091019-3cc80021.png b/assets/pasted-20260309-091019-3cc80021.png new file mode 100644 index 0000000000000000000000000000000000000000..0a05da665c535031b010944faaafaf58adda7059 GIT binary patch literal 138473 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"SELECT u.role, u.display_name, u.username, u.guild_id, l.name as level_raw, - u.selected_title_id, u.selected_badge_id, - t.name as title_name, - b.name as badge_name, b.image_url as badge_image +// Récupérer les informations de l'utilisateur +$stmt = $db->prepare("SELECT u.*, g.name as guild_name, g.owner_id as guild_owner_id FROM users u - LEFT JOIN levels l ON u.level_id = l.id - LEFT JOIN titles t ON u.selected_title_id = t.id - LEFT JOIN badges b ON u.selected_badge_id = b.id + LEFT JOIN guilds g ON u.guild_id = g.id WHERE u.id = ?"); $stmt->execute([$user_id]); -$u_data = $stmt->fetch(); +$user = $stmt->fetch(); -if ($u_data) { - $user_role = $u_data['role'] ?? 'user'; - $_SESSION['display_name'] = $u_data['display_name'] ?: $u_data['username']; - $level_num = (int)filter_var($u_data['level_raw'], FILTER_SANITIZE_NUMBER_INT); - $_SESSION['level'] = $level_num; - $_SESSION['guild_id'] = $u_data['guild_id']; +$guild_id = $user['guild_id']; +$is_owner = ($guild_id && $user['id'] == $user['guild_owner_id']); + +// Gérer la création de guilde +$error = ''; +$success = ''; +if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['create_guild']) && !$guild_id) { + $name = trim($_POST['guild_name']); + $tag = trim($_POST['guild_tag']); - $_SESSION['selected_title_name'] = $u_data['title_name']; - $_SESSION['selected_badge_name'] = $u_data['badge_name']; - $_SESSION['selected_badge_image'] = $u_data['badge_image']; - - $grade_type = ($user_role === 'admin') ? 'admin' : 'utilisateur'; - $g_stmt = $db->prepare("SELECT name, image_url FROM grades - WHERE user_type = ? - AND (min_level <= ? OR min_level IS NULL) - AND (max_level >= ? OR max_level IS NULL) - LIMIT 1"); - $g_stmt->execute([$grade_type, $level_num, $level_num]); - $grade_data = $g_stmt->fetch(); - - if ($grade_data) { - $_SESSION['grade_name'] = $grade_data['name']; - $_SESSION['grade_image'] = $grade_data['image_url']; + if (empty($name) || empty($tag)) { + $error = "Le nom et le tag sont obligatoires."; } else { - $_SESSION['grade_name'] = "Recrue"; - $_SESSION['grade_image'] = "assets/images/placeholder_grade.png"; + try { + $db->beginTransaction(); + + $stmt = $db->prepare("INSERT INTO guilds (name, tag, owner_id) VALUES (?, ?, ?)"); + $stmt->execute([$name, $tag, $user_id]); + $new_guild_id = $db->lastInsertId(); + + $stmt = $db->prepare("UPDATE users SET guild_id = ? WHERE id = ?"); + $stmt->execute([$new_guild_id, $user_id]); + + $stmt = $db->prepare("INSERT INTO guild_members (guild_id, user_id, role) VALUES (?, ?, 'owner')"); + $stmt->execute([$new_guild_id, $user_id]); + + $db->commit(); + header('Location: guilde.php'); + exit; + } catch (Exception $e) { + $db->rollBack(); + $error = "Erreur lors de la création : " . $e->getMessage(); + } } } -// Dynamic Resources for Header & Check +// Récupérer les membres si en guilde +$members = []; +if ($guild_id) { + $stmt = $db->prepare("SELECT u.id, u.username, u.display_name, m.role, m.joined_at, l.name as level_name + FROM guild_members m + JOIN users u ON m.user_id = u.id + LEFT JOIN levels l ON u.level_id = l.id + WHERE m.guild_id = ? + ORDER BY CASE WHEN m.role = 'owner' THEN 1 WHEN m.role = 'officer' THEN 2 ELSE 3 END ASC, joined_at ASC"); + $stmt->execute([$guild_id]); + $members = $stmt->fetchAll(); +} + +// Ressources pour le header (copié de index.php) $resources = []; -$user_resource_amounts = []; // For easier access $stmt = $db->prepare(" SELECT gr.*, COALESCE(ur.amount, 0) as amount FROM game_resources gr LEFT JOIN user_resources ur ON gr.id = ur.resource_id AND ur.user_id = ? + WHERE gr.show_in_header = 1 ORDER BY CASE WHEN gr.name LIKE 'Crédit%' THEN 1 WHEN gr.name LIKE 'Matériau%' THEN 2 @@ -72,432 +84,238 @@ $stmt = $db->prepare(" END ASC, gr.name ASC "); $stmt->execute([$user_id]); -$all_resources_raw = $stmt->fetchAll(PDO::FETCH_ASSOC); -foreach($all_resources_raw as $hr) { - $user_resource_amounts[$hr['id']] = (float)$hr['amount']; - if ($hr['show_in_header'] == 1) { - $resources[$hr["name"]] = [ - "val" => (string)$hr["amount"], - "prod" => "", - "icon" => $hr["icon"] ?: "fa-gem", - "image" => $hr["image_url"] - ]; - } +$header_resources = $stmt->fetchAll(PDO::FETCH_ASSOC); +foreach($header_resources as $hr) { + $resources[$hr["name"]] = [ + "val" => (string)$hr["amount"], + "prod" => "", + "icon" => $hr["icon"] ?: "fa-gem", + "image" => $hr["image_url"] + ]; } - -// --- GUILD SPECIFIC LOGIC --- - -// Check if user is in a guild -$stmt = $db->prepare("SELECT u.guild_id, m.role, g.name as guild_name, g.tag as guild_tag, g.description as guild_desc - FROM users u - LEFT JOIN guild_members m ON u.id = m.user_id - LEFT JOIN guilds g ON u.guild_id = g.id - WHERE u.id = ?"); -$stmt->execute([$user_id]); -$user_guild_info = $stmt->fetch(PDO::FETCH_ASSOC); - -$in_guild = !empty($user_guild_info['guild_id']); - -// Fetch member limit -$stmt = $db->query("SELECT value FROM guild_restrictions WHERE restriction_key = 'member_limit'"); -$member_limit = (int)($stmt->fetchColumn() ?: 50); - -// --- ACTIONS --- - -// JOIN GUILD -if (isset($_GET['join']) && !$in_guild) { - $guild_id = (int)$_GET['join']; - $stmt = $db->prepare("SELECT COUNT(*) FROM guild_members WHERE guild_id = ?"); - $stmt->execute([$guild_id]); - $current_members = (int)$stmt->fetchColumn(); - if ($current_members >= $member_limit) { $error = "Cette guilde est pleine."; } else { - $db->beginTransaction(); - try { - $db->prepare("UPDATE users SET guild_id = ? WHERE id = ?")->execute([$guild_id, $user_id]); - $db->prepare("INSERT INTO guild_members (guild_id, user_id, role) VALUES (?, ?, 'membre')")->execute([$guild_id, $user_id]); - $_SESSION['guild_id'] = $guild_id; - $db->commit(); - header("Location: guilde.php"); - exit; - } catch (Exception $e) { $db->rollBack(); $error = "Erreur : " . $e->getMessage(); } - } -} - -// DISBAND GUILD -if (isset($_GET['action']) && $_GET['action'] === 'disband' && $in_guild && $user_guild_info['role'] === 'superviseur') { - $guild_id = $user_guild_info['guild_id']; - $db->beginTransaction(); - try { - $db->prepare("UPDATE users SET guild_id = NULL WHERE guild_id = ?")->execute([$guild_id]); - $db->prepare("DELETE FROM guild_members WHERE guild_id = ?")->execute([$guild_id]); - $db->prepare("DELETE FROM guilds WHERE id = ?")->execute([$guild_id]); - $_SESSION['guild_id'] = null; - $db->commit(); - header("Location: guilde.php"); - exit; - } catch (Exception $e) { $db->rollBack(); $error = "Erreur : " . $e->getMessage(); } -} - -// LEAVE GUILD -if (isset($_GET['action']) && $_GET['action'] === 'leave' && $in_guild && $user_guild_info['role'] !== 'superviseur') { - $db->beginTransaction(); - try { - $db->prepare("UPDATE users SET guild_id = NULL WHERE id = ?")->execute([$user_id]); - $db->prepare("DELETE FROM guild_members WHERE user_id = ?")->execute([$user_id]); - $_SESSION['guild_id'] = null; - $db->commit(); - header("Location: guilde.php"); - exit; - } catch (Exception $e) { $db->rollBack(); $error = "Erreur : " . $e->getMessage(); } -} - -// KICK MEMBER -if (isset($_GET['kick']) && $in_guild && ($user_guild_info['role'] === 'superviseur' || $user_guild_info['role'] === 'officier')) { - $target_id = (int)$_GET['kick']; - if ($target_id != $user_id) { - $stmt = $db->prepare("SELECT role FROM guild_members WHERE user_id = ? AND guild_id = ?"); - $stmt->execute([$target_id, $user_guild_info['guild_id']]); - $target_role = $stmt->fetchColumn(); - if ($target_role) { - $can_kick = ($user_guild_info['role'] === 'superviseur') || ($user_guild_info['role'] === 'officier' && $target_role === 'membre'); - if ($can_kick) { - $db->prepare("UPDATE users SET guild_id = NULL WHERE id = ?")->execute([$target_id]); - $db->prepare("DELETE FROM guild_members WHERE user_id = ?")->execute([$target_id]); - $message = "Membre exclu."; - } else $error = "Droits insuffisants."; - } - } -} - -// UPDATE ROLE -if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['action'] === 'update_role' && $in_guild && $user_guild_info['role'] === 'superviseur') { - $target_id = (int)$_POST['target_user_id']; - $new_role = $_POST['new_role']; - if (in_array($new_role, ['membre', 'officier']) && $target_id != $user_id) { - $db->prepare("UPDATE guild_members SET role = ? WHERE user_id = ? AND guild_id = ?")->execute([$new_role, $target_id, $user_guild_info['guild_id']]); - $message = "Grade mis à jour."; - } -} - -// CREATE GUILD -if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['action'] === 'create_guild' && !$in_guild) { - $name = trim($_POST['name']); - $tag = strtoupper(trim($_POST['tag'])); - $description = trim($_POST['description']); - if (strlen($name) < 3) $error = "Nom trop court."; - elseif (strlen($tag) < 2) $error = "Tag trop court."; - else { - $reqs = $db->query("SELECT resource_id, amount FROM guild_creation_requirements WHERE amount > 0")->fetchAll(PDO::FETCH_ASSOC); - $db->beginTransaction(); - try { - $can_afford = true; - foreach ($reqs as $req) { - $stmt = $db->prepare("SELECT amount FROM user_resources WHERE user_id = ? AND resource_id = ?"); - $stmt->execute([$user_id, $req['resource_id']]); - if (($stmt->fetchColumn() ?: 0) < $req['amount']) { $can_afford = false; break; } - } - if (!$can_afford) { $error = "Ressources insuffisantes."; $db->rollBack(); } - else { - foreach ($reqs as $req) $db->prepare("UPDATE user_resources SET amount = amount - ? WHERE user_id = ? AND resource_id = ?")->execute([$req['amount'], $user_id, $req['resource_id']]); - $db->prepare("INSERT INTO guilds (name, tag, description) VALUES (?, ?, ?)")->execute([$name, $tag, $description]); - $guild_id = $db->lastInsertId(); - $db->prepare("INSERT INTO guild_members (guild_id, user_id, role) VALUES (?, ?, 'superviseur')")->execute([$guild_id, $user_id]); - $db->prepare("UPDATE users SET guild_id = ? WHERE id = ?")->execute([$guild_id, $user_id]); - $_SESSION['guild_id'] = $guild_id; - $db->commit(); - header("Location: guilde.php"); - exit; - } - } catch (Exception $e) { $db->rollBack(); $error = "Erreur : " . $e->getMessage(); } - } -} - -// --- DATA FETCHING --- - -if ($in_guild) { - $stmt = $db->prepare("SELECT m.*, u.username, u.display_name FROM guild_members m JOIN users u ON m.user_id = u.id WHERE m.guild_id = ? ORDER BY FIELD(role, 'superviseur', 'officier', 'membre'), joined_at ASC"); - $stmt->execute([$user_guild_info['guild_id']]); - $guild_members = $stmt->fetchAll(PDO::FETCH_ASSOC); -} else { - $display_reqs = $db->query("SELECT r.id, r.name, r.icon, r.image_url, gr.amount FROM guild_creation_requirements gr JOIN game_resources r ON gr.resource_id = r.id WHERE gr.amount > 0")->fetchAll(PDO::FETCH_ASSOC); - $all_guilds = $db->query("SELECT g.*, (SELECT COUNT(*) FROM guild_members WHERE guild_id = g.id) as member_count FROM guilds g ORDER BY member_count DESC")->fetchAll(PDO::FETCH_ASSOC); - - // Check global affordability for create button - $can_afford_creation = true; - foreach ($display_reqs as $req) { - if (($user_resource_amounts[$req['id']] ?? 0) < $req['amount']) { - $can_afford_creation = false; - break; - } - } -} - ?> - <?php echo $in_guild ? htmlspecialchars($user_guild_info['guild_name']) : 'Guildes'; ?> - Nexus + Nexus - Guilde -
-
- -
- - Bienvenue, @ - Journal Mon compte - Déconnexion - -
-
- $res): ?> -
-
- - ?v="> - - "> - -
-
-
-
- - -
-
-
- -
-
- -
-
-
-
- -
- -
- -
-

Guildes Actives

-
- - - - - - - - - - - - - -
GuildeMembresActions
Aucune guilde pour le moment.
- [] -
- -
/ - - Rejoindre - - PLEINE - -
-
- - -
-

Fonder une Guilde

-
-

Coût requis :

-

Gratuit

- - -
- - - -
- - -
-
- -
-
-
- -
-
- +
+
+ Bienvenue, @ + Retour au Nexus + Déconnexion +
+
+ $res): ?> +
+
+ + ?v="> -
-
- [] -

-
-
Votre grade :
-
- -
- -
- -

Membres de la Guilde ( / )

- - - - - - - - - - - - - - -
MembreGradeAnciennetéGestion
- - @ - - - - - -
- - - -
- - - - - -
- - + " style="color: #88c0d0;">
+
+
+ +
- + +
+
+ +
+ +
+
+ + [] +
+ + + + + + + + + + + + + + + + + + + + +
NiveauMembreRangDate d'arrivée
+ + + + + + + + + + + +
+
+ +
+
+ + Fonder une nouvelle guilde +
+ +
+ +
+
+ + +
+
+ + +
+ +
+
+ +
+ + + + + diff --git a/profile.php b/profile.php index 5afa940..c44d464 100644 --- a/profile.php +++ b/profile.php @@ -1,49 +1,169 @@ prepare("SELECT username, display_name, level, grade FROM users WHERE username = ?"); - $stmt->execute([$username]); + +if ($id || !empty($username)) { + // Fetch full user data matching the header logic in index.php + $sql = "SELECT u.id, u.role, u.display_name, u.username, u.guild_id, l.name as level_raw, + u.selected_title_id, u.selected_badge_id, + t.name as title_name, + b.name as badge_name, b.image_url as badge_image, + g.name as guild_name, g.tag as guild_tag + FROM users u + LEFT JOIN levels l ON u.level_id = l.id + LEFT JOIN titles t ON u.selected_title_id = t.id + LEFT JOIN badges b ON u.selected_badge_id = b.id + LEFT JOIN guilds g ON u.guild_id = g.id + WHERE " . ($id ? "u.id = ?" : "(u.username = ? OR u.display_name = ?)"); + + $stmt = $db->prepare($sql); + $params = $id ? [$id] : [$username, $username]; + $stmt->execute($params); $user = $stmt->fetch(); + + if ($user) { + $level_num = (int)filter_var($user['level_raw'] ?? '1', FILTER_SANITIZE_NUMBER_INT); + $grade_type = ($user['role'] === 'admin') ? 'admin' : 'utilisateur'; + + $g_stmt = $db->prepare("SELECT name, image_url FROM grades + WHERE user_type = ? + AND (min_level <= ? OR min_level IS NULL) + AND (max_level >= ? OR max_level IS NULL) + LIMIT 1"); + $g_stmt->execute([$grade_type, $level_num, $level_num]); + $grade_data = $g_stmt->fetch(); + + $user['grade_name'] = $grade_data['name'] ?? "Recrue"; + $user['grade_image'] = $grade_data['image_url'] ?? "assets/images/placeholder_grade.png"; + $user['level_num'] = $level_num ?: 1; + } } -?> + +if ($is_ajax): ?> +
+ +
+ + + + + +
+ + +
+ « » +
+ + +
+ Niveau +
+ + +
+ + [] + +
+ + + +
+ +
Badge Équipé
+
+ + + +
+ +

Joueur introuvable

+
+ +
+ - - Profil Joueur - Nexus + Profil de <?php echo $user ? htmlspecialchars($user['display_name'] ?: $user['username']) : 'Joueur'; ?> - Nexus + -
+
-

Profil de

-
Identifiant @
-
Niveau
-
Grade
+ Grade + +

+ @ + + +
« »
+ + +
NIVEAU
+ + +
+
+ + [] + +
+ + + +
+
+ +
Badge de prestige
+
+
+ + -

Joueur introuvable

-

Le profil demandé n'existe pas ou a été supprimé.

+
+ +

Joueur introuvable

+

Le profil de @ n'a pas été localisé dans la base de données du Nexus.

+
- + Retour au Nexus