diff --git a/admin.php b/admin.php index 8b9c3bb..d561bc8 100644 --- a/admin.php +++ b/admin.php @@ -130,15 +130,16 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST[' $id = (int)$_POST['id']; $name = $_POST["name"]; $slug = $_POST['slug']; + $color = $_POST["color"] ?? "#ffffff"; $allowed_user_type = $_POST['allowed_user_type']; $required_level = (int)$_POST['required_level']; if ($id > 0) { - $stmt = $db->prepare("UPDATE titles SET name = ?, slug = ?, allowed_user_type = ?, required_level = ? WHERE id = ?"); - $stmt->execute([$name, $slug, $allowed_user_type, $required_level, $id]); + $stmt = $db->prepare("UPDATE titles SET name = ?, slug = ?, allowed_user_type = ?, required_level = ?, color = ? WHERE id = ?"); + $stmt->execute([$name, $slug, $allowed_user_type, $required_level, $color, $id]); } else { - $stmt = $db->prepare("INSERT INTO titles (name, slug, allowed_user_type, required_level) VALUES (?, ?, ?, ?)"); - $stmt->execute([$name, $slug, $allowed_user_type, $required_level]); + $stmt = $db->prepare("INSERT INTO titles (name, slug, allowed_user_type, required_level, color) VALUES (?, ?, ?, ?, ?)"); + $stmt->execute([$name, $slug, $allowed_user_type, $required_level, $color]); } header("Location: admin.php?tab=badges&success=1"); exit; @@ -1097,6 +1098,10 @@ if ($tab === 'users') { +
+ + +
@@ -1110,17 +1115,19 @@ if ($tab === 'users') { Titre Slug Niveau + Couleur Actions - + +
- + X @@ -1183,9 +1190,10 @@ if ($tab === 'users') { Visuel Badge Slug + Niveau Actions - + @@ -1194,8 +1202,9 @@ if ($tab === 'users') { + - + X @@ -2235,12 +2244,14 @@ function editStatus(data) { document.getElementById('title_name').value = data.name; document.getElementById('title_slug').value = data.slug; document.getElementById('title_allowed_type').value = data.allowed_user_type; - document.getElementById('title_req_level').value = data.required_level; + document.getElementById("title_req_level").value = data.required_level; + document.getElementById("title_color").value = data.color || "#ffffff"; window.scrollTo({ top: 0, behavior: 'smooth' }); } function resetTitleForm() { document.getElementById('titleForm').reset(); - document.getElementById('title_id').value = 0; + document.getElementById("title_id").value = 0; + document.getElementById("title_color").value = "#ffffff"; } function editBadge(data) { document.getElementById('badge_id').value = data.id; diff --git a/assets/images/badges/badge_badge_green_1772794507.png b/assets/images/badges/badge_badge_green_1772794507.png new file mode 100644 index 0000000..31e582a Binary files /dev/null and b/assets/images/badges/badge_badge_green_1772794507.png differ diff --git a/assets/images/badges/badge_badge_red_1772794493.png b/assets/images/badges/badge_badge_red_1772794493.png new file mode 100644 index 0000000..f503569 Binary files /dev/null and b/assets/images/badges/badge_badge_red_1772794493.png differ diff --git a/index.php b/index.php index 9fc57fe..fda843f 100644 --- a/index.php +++ b/index.php @@ -6,9 +6,14 @@ $db = db(); $user_role = 'user'; if (isset($_SESSION['user_id'])) { - $stmt = $db->prepare("SELECT u.role, u.display_name, u.username, l.name as level_raw + $stmt = $db->prepare("SELECT u.role, u.display_name, u.username, 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 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 WHERE u.id = ?"); $stmt->execute([$_SESSION['user_id']]); $u_data = $stmt->fetch(); @@ -19,6 +24,11 @@ if (isset($_SESSION['user_id'])) { $level_num = (int)filter_var($u_data['level_raw'], FILTER_SANITIZE_NUMBER_INT); $_SESSION['level'] = $level_num; + // Save title and badge to session for modal + $_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 = ? @@ -1003,9 +1013,23 @@ function getStatusColor($status, $statuses_map) {
-
+ + +
+ « » +
+ + +
Niveau
+ + +
+ +
Badge Équipé
+
+