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
+
+
+
+
![<?php echo htmlspecialchars($_SESSION['selected_badge_name'] ?? ''); ?>](<?php echo htmlspecialchars($_SESSION['selected_badge_image']); ?>?v=<?php echo time(); ?>)
+
Badge Équipé
+
+