Alpha V2.5.13
This commit is contained in:
parent
b27feb7780
commit
d8c3f10a6a
@ -10,3 +10,172 @@
|
|||||||
50% { opacity: 0.5; }
|
50% { opacity: 0.5; }
|
||||||
100% { opacity: 1; }
|
100% { opacity: 1; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Modal Public Profile - Nexus Design */
|
||||||
|
.modal-nexus {
|
||||||
|
background: radial-gradient(circle at top, #141e33 0%, #080c14 100%) !important;
|
||||||
|
border: 1px solid rgba(136, 192, 208, 0.2) !important;
|
||||||
|
border-radius: 8px !important;
|
||||||
|
color: #fff !important;
|
||||||
|
box-shadow: 0 0 40px rgba(0,0,0,0.8), inset 0 0 20px rgba(136, 192, 208, 0.05) !important;
|
||||||
|
max-height: none !important; /* Remove fixed height constraint */
|
||||||
|
overflow: visible !important; /* Prevent internal scrollbars */
|
||||||
|
height: auto !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-nexus .modal-header {
|
||||||
|
background: rgba(15, 23, 42, 0.8) !important;
|
||||||
|
border-bottom: 1px solid rgba(136, 192, 208, 0.15) !important;
|
||||||
|
padding: 12px 20px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-nexus .modal-header h2 {
|
||||||
|
font-size: 14px !important;
|
||||||
|
text-transform: uppercase !important;
|
||||||
|
letter-spacing: 2px !important;
|
||||||
|
color: #88c0d0 !important;
|
||||||
|
margin: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-nexus .modal-body {
|
||||||
|
padding: 0 !important;
|
||||||
|
overflow: visible !important; /* Ensure content isn't clipped */
|
||||||
|
}
|
||||||
|
|
||||||
|
.profile-top-section {
|
||||||
|
padding: 25px 20px;
|
||||||
|
text-align: center;
|
||||||
|
background: url('https://www.transparenttextures.com/patterns/stardust.png');
|
||||||
|
border-bottom: 1px solid rgba(136, 192, 208, 0.15);
|
||||||
|
}
|
||||||
|
|
||||||
|
.profile-grade-img {
|
||||||
|
width: 45px;
|
||||||
|
height: 45px;
|
||||||
|
object-fit: contain;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-right: 15px;
|
||||||
|
filter: drop-shadow(0 0 10px rgba(255, 255, 255, 0.2));
|
||||||
|
}
|
||||||
|
|
||||||
|
.profile-username {
|
||||||
|
font-size: 22px;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #fff;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.profile-title-text {
|
||||||
|
font-size: 10px;
|
||||||
|
color: #ebcb8b;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 3px;
|
||||||
|
margin-top: 12px;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.profile-level-text {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #88c0d0;
|
||||||
|
opacity: 0.8;
|
||||||
|
margin-top: 8px;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.profile-section-header {
|
||||||
|
font-size: 10px;
|
||||||
|
color: #ebcb8b;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 2px;
|
||||||
|
padding: 15px 20px 8px 20px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.profile-section-header::before {
|
||||||
|
content: '';
|
||||||
|
display: inline-block;
|
||||||
|
width: 10px;
|
||||||
|
height: 3px;
|
||||||
|
background: #ebcb8b;
|
||||||
|
}
|
||||||
|
|
||||||
|
.guild-info-box {
|
||||||
|
padding: 10px 20px 15px 20px;
|
||||||
|
border-bottom: 1px solid rgba(136, 192, 208, 0.15);
|
||||||
|
}
|
||||||
|
|
||||||
|
.guild-display {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 12px;
|
||||||
|
background: rgba(30, 41, 59, 0.4);
|
||||||
|
padding: 10px 15px;
|
||||||
|
border-radius: 4px;
|
||||||
|
border: 1px solid rgba(136, 192, 208, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.guild-icon-placeholder {
|
||||||
|
width: 24px;
|
||||||
|
height: 24px;
|
||||||
|
background: #1e293b;
|
||||||
|
border-radius: 4px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
color: #88c0d0;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.guild-tag-display {
|
||||||
|
color: #ebcb8b;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.guild-name-display {
|
||||||
|
color: #fff;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.profile-bottom-grid {
|
||||||
|
display: flex;
|
||||||
|
min-height: 150px; /* Reduced slightly to keep it compact */
|
||||||
|
}
|
||||||
|
|
||||||
|
.profile-left-col {
|
||||||
|
flex: 1;
|
||||||
|
border-right: 1px solid rgba(136, 192, 208, 0.15);
|
||||||
|
padding: 20px;
|
||||||
|
background: rgba(0,0,0,0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.profile-right-col {
|
||||||
|
width: 200px;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge-info-section {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
height: calc(100% - 40px);
|
||||||
|
padding-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge-img-display {
|
||||||
|
width: 70px;
|
||||||
|
height: 70px;
|
||||||
|
object-fit: contain;
|
||||||
|
filter: drop-shadow(0 0 15px rgba(136, 192, 208, 0.3));
|
||||||
|
margin-bottom: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge-name-display {
|
||||||
|
font-size: 11px;
|
||||||
|
color: #fff;
|
||||||
|
text-align: center;
|
||||||
|
padding: 0 10px;
|
||||||
|
}
|
||||||
BIN
assets/pasted-20260309-120003-22a2ad72.png
Normal file
BIN
assets/pasted-20260309-120003-22a2ad72.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.2 MiB |
BIN
assets/pasted-20260309-121425-2ae064af.png
Normal file
BIN
assets/pasted-20260309-121425-2ae064af.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 345 KiB |
BIN
assets/pasted-20260309-121655-3a761203.png
Normal file
BIN
assets/pasted-20260309-121655-3a761203.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 176 KiB |
29
guilde.php
29
guilde.php
@ -18,11 +18,13 @@ $user_role = 'user';
|
|||||||
$stmt = $db->prepare("SELECT u.role, u.display_name, u.username, u.guild_id, l.name as level_raw,
|
$stmt = $db->prepare("SELECT u.role, u.display_name, u.username, u.guild_id, l.name as level_raw,
|
||||||
u.selected_title_id, u.selected_badge_id,
|
u.selected_title_id, u.selected_badge_id,
|
||||||
t.name as title_name,
|
t.name as title_name,
|
||||||
b.name as badge_name, b.image_url as badge_image
|
b.name as badge_name, b.image_url as badge_image,
|
||||||
|
g.name as guild_name, g.tag as guild_tag
|
||||||
FROM users u
|
FROM users u
|
||||||
LEFT JOIN levels l ON u.level_id = l.id
|
LEFT JOIN levels l ON u.level_id = l.id
|
||||||
LEFT JOIN titles t ON u.selected_title_id = t.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 badges b ON u.selected_badge_id = b.id
|
||||||
|
LEFT JOIN guilds g ON u.guild_id = g.id
|
||||||
WHERE u.id = ?");
|
WHERE u.id = ?");
|
||||||
$stmt->execute([$user_id]);
|
$stmt->execute([$user_id]);
|
||||||
$u_data = $stmt->fetch();
|
$u_data = $stmt->fetch();
|
||||||
@ -37,6 +39,8 @@ if ($u_data) {
|
|||||||
$_SESSION['selected_title_name'] = $u_data['title_name'];
|
$_SESSION['selected_title_name'] = $u_data['title_name'];
|
||||||
$_SESSION['selected_badge_name'] = $u_data['badge_name'];
|
$_SESSION['selected_badge_name'] = $u_data['badge_name'];
|
||||||
$_SESSION['selected_badge_image'] = $u_data['badge_image'];
|
$_SESSION['selected_badge_image'] = $u_data['badge_image'];
|
||||||
|
$_SESSION['guild_name'] = $u_data['guild_name'];
|
||||||
|
$_SESSION['guild_tag'] = $u_data['guild_tag'];
|
||||||
|
|
||||||
$grade_type = ($user_role === 'admin') ? 'admin' : 'utilisateur';
|
$grade_type = ($user_role === 'admin') ? 'admin' : 'utilisateur';
|
||||||
$g_stmt = $db->prepare("SELECT name, image_url FROM grades
|
$g_stmt = $db->prepare("SELECT name, image_url FROM grades
|
||||||
@ -44,7 +48,7 @@ if ($u_data) {
|
|||||||
AND (min_level <= ? OR min_level IS NULL)
|
AND (min_level <= ? OR min_level IS NULL)
|
||||||
AND (max_level >= ? OR max_level IS NULL)
|
AND (max_level >= ? OR max_level IS NULL)
|
||||||
LIMIT 1");
|
LIMIT 1");
|
||||||
$g_stmt->execute([$grade_type, $level_num, $level_num]);
|
$g_stmt->execute([$grade_type, $level_num, $level_num]);
|
||||||
$grade_data = $g_stmt->fetch();
|
$grade_data = $g_stmt->fetch();
|
||||||
|
|
||||||
if ($grade_data) {
|
if ($grade_data) {
|
||||||
@ -329,7 +333,7 @@ if ($in_guild) {
|
|||||||
.req-item img { width: 18px; height: 18px; }
|
.req-item img { width: 18px; height: 18px; }
|
||||||
.req-item.insufficient { border-color: #bf616a; color: #bf616a; }
|
.req-item.insufficient { border-color: #bf616a; color: #bf616a; }
|
||||||
|
|
||||||
/* MODAL STYLES (Copiés de index.php) */
|
/* MODAL STYLES (MATCHING index.php) */
|
||||||
.modal-overlay {
|
.modal-overlay {
|
||||||
display: none;
|
display: none;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
@ -338,7 +342,9 @@ if ($in_guild) {
|
|||||||
background: rgba(0, 0, 0, 0.85);
|
background: rgba(0, 0, 0, 0.85);
|
||||||
backdrop-filter: blur(5px);
|
backdrop-filter: blur(5px);
|
||||||
z-index: 2000;
|
z-index: 2000;
|
||||||
align-items: center;
|
align-items: flex-start;
|
||||||
|
padding: 40px 0;
|
||||||
|
overflow-y: auto;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
}
|
}
|
||||||
.modal-container {
|
.modal-container {
|
||||||
@ -346,10 +352,11 @@ if ($in_guild) {
|
|||||||
border: 1px solid #1e293b;
|
border: 1px solid #1e293b;
|
||||||
border-radius: 12px;
|
border-radius: 12px;
|
||||||
width: 600px;
|
width: 600px;
|
||||||
max-height: 90vh;
|
max-height: none;
|
||||||
overflow-y: auto;
|
overflow: visible;
|
||||||
position: relative;
|
position: relative;
|
||||||
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
|
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
|
||||||
|
margin: 0 auto;
|
||||||
}
|
}
|
||||||
.modal-header {
|
.modal-header {
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
@ -540,14 +547,14 @@ if ($in_guild) {
|
|||||||
</main>
|
</main>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- PROFILE MODAL (Structure identique à index.php) -->
|
<!-- PROFILE MODAL (Nexus Design) -->
|
||||||
<div id="profileModal" class="modal-overlay" onclick="if(event.target === this) this.style.display='none'">
|
<div id="profileModal" class="modal-overlay" onclick="if(event.target === this) this.style.display='none'">
|
||||||
<div class="modal-container">
|
<div class="modal-container modal-nexus">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h2>Profil Public</h2>
|
<h2>Profil Public</h2>
|
||||||
<button class="modal-close" onclick="document.getElementById('profileModal').style.display='none'">×</button>
|
<button class="modal-close" onclick="document.getElementById('profileModal').style.display='none'">×</button>
|
||||||
</div>
|
</div>
|
||||||
<div id="profileModalContent" class="modal-body" style="text-align: center; padding-top: 40px; padding-bottom: 40px;">
|
<div id="profileModalContent" class="modal-body">
|
||||||
<!-- Chargé via AJAX -->
|
<!-- Chargé via AJAX -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -558,7 +565,7 @@ if ($in_guild) {
|
|||||||
const modal = document.getElementById('profileModal');
|
const modal = document.getElementById('profileModal');
|
||||||
const content = document.getElementById('profileModalContent');
|
const content = document.getElementById('profileModalContent');
|
||||||
|
|
||||||
content.innerHTML = '<div style="padding: 40px; color: #8c92a3;"><i class="fa-solid fa-spinner fa-spin fa-2x"></i><br><br>Chargement des données...</div>';
|
content.innerHTML = '<div style="padding: 40px; color: #8c92a3; text-align: center;"><i class="fa-solid fa-spinner fa-spin fa-2x"></i><br><br>Chargement des données...</div>';
|
||||||
modal.style.display = 'flex';
|
modal.style.display = 'flex';
|
||||||
|
|
||||||
fetch(`profile.php?id=${userId}`, {
|
fetch(`profile.php?id=${userId}`, {
|
||||||
@ -569,7 +576,7 @@ if ($in_guild) {
|
|||||||
content.innerHTML = html;
|
content.innerHTML = html;
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
content.innerHTML = '<div style="color: #bf616a; padding: 40px;">Erreur de connexion au Nexus.</div>';
|
content.innerHTML = '<div style="color: #bf616a; padding: 40px; text-align: center;">Erreur de connexion au Nexus.</div>';
|
||||||
console.error('Error:', error);
|
console.error('Error:', error);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
84
index.php
84
index.php
@ -9,11 +9,13 @@ if (isset($_SESSION['user_id'])) {
|
|||||||
$stmt = $db->prepare("SELECT u.role, u.display_name, u.username, u.guild_id, l.name as level_raw,
|
$stmt = $db->prepare("SELECT u.role, u.display_name, u.username, u.guild_id, l.name as level_raw,
|
||||||
u.selected_title_id, u.selected_badge_id,
|
u.selected_title_id, u.selected_badge_id,
|
||||||
t.name as title_name,
|
t.name as title_name,
|
||||||
b.name as badge_name, b.image_url as badge_image
|
b.name as badge_name, b.image_url as badge_image,
|
||||||
|
g.name as guild_name, g.tag as guild_tag
|
||||||
FROM users u
|
FROM users u
|
||||||
LEFT JOIN levels l ON u.level_id = l.id
|
LEFT JOIN levels l ON u.level_id = l.id
|
||||||
LEFT JOIN titles t ON u.selected_title_id = t.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 badges b ON u.selected_badge_id = b.id
|
||||||
|
LEFT JOIN guilds g ON u.guild_id = g.id
|
||||||
WHERE u.id = ?");
|
WHERE u.id = ?");
|
||||||
$stmt->execute([$_SESSION['user_id']]);
|
$stmt->execute([$_SESSION['user_id']]);
|
||||||
$u_data = $stmt->fetch();
|
$u_data = $stmt->fetch();
|
||||||
@ -29,6 +31,8 @@ if (isset($_SESSION['user_id'])) {
|
|||||||
$_SESSION['selected_title_name'] = $u_data['title_name'];
|
$_SESSION['selected_title_name'] = $u_data['title_name'];
|
||||||
$_SESSION['selected_badge_name'] = $u_data['badge_name'];
|
$_SESSION['selected_badge_name'] = $u_data['badge_name'];
|
||||||
$_SESSION['selected_badge_image'] = $u_data['badge_image'];
|
$_SESSION['selected_badge_image'] = $u_data['badge_image'];
|
||||||
|
$_SESSION['guild_name'] = $u_data['guild_name'];
|
||||||
|
$_SESSION['guild_tag'] = $u_data['guild_tag'];
|
||||||
|
|
||||||
$grade_type = ($user_role === 'admin') ? 'admin' : 'utilisateur';
|
$grade_type = ($user_role === 'admin') ? 'admin' : 'utilisateur';
|
||||||
$g_stmt = $db->prepare("SELECT name, image_url FROM grades
|
$g_stmt = $db->prepare("SELECT name, image_url FROM grades
|
||||||
@ -467,7 +471,9 @@ function getStatusColor($status, $statuses_map) {
|
|||||||
background: rgba(0, 0, 0, 0.85);
|
background: rgba(0, 0, 0, 0.85);
|
||||||
backdrop-filter: blur(5px);
|
backdrop-filter: blur(5px);
|
||||||
z-index: 2000;
|
z-index: 2000;
|
||||||
align-items: center;
|
align-items: flex-start;
|
||||||
|
padding: 40px 0;
|
||||||
|
overflow-y: auto;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
}
|
}
|
||||||
.modal-container {
|
.modal-container {
|
||||||
@ -475,10 +481,11 @@ function getStatusColor($status, $statuses_map) {
|
|||||||
border: 1px solid #1e293b;
|
border: 1px solid #1e293b;
|
||||||
border-radius: 12px;
|
border-radius: 12px;
|
||||||
width: 600px;
|
width: 600px;
|
||||||
max-height: 90vh;
|
max-height: none;
|
||||||
overflow-y: auto;
|
overflow: visible;
|
||||||
position: relative;
|
position: relative;
|
||||||
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
|
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
|
||||||
|
margin: 0 auto;
|
||||||
}
|
}
|
||||||
.modal-header {
|
.modal-header {
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
@ -1004,36 +1011,63 @@ function getStatusColor($status, $statuses_map) {
|
|||||||
</script>
|
</script>
|
||||||
<!-- PROFILE MODAL -->
|
<!-- PROFILE MODAL -->
|
||||||
<div id="profileModal" class="modal-overlay" onclick="if(event.target === this) this.style.display='none'">
|
<div id="profileModal" class="modal-overlay" onclick="if(event.target === this) this.style.display='none'">
|
||||||
<div class="modal-container">
|
<div class="modal-container modal-nexus">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h2>Profil Public</h2>
|
<h2>Profil Public</h2>
|
||||||
<button class="modal-close" onclick="document.getElementById('profileModal').style.display='none'">×</button>
|
<button class="modal-close" onclick="document.getElementById('profileModal').style.display='none'">×</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body" style="text-align: center; padding-top: 40px; padding-bottom: 40px;">
|
<div class="modal-body">
|
||||||
<div style="display: flex; align-items: center; justify-content: center; gap: 15px; margin-bottom: 10px;">
|
<div class="profile-top-section">
|
||||||
<img src="<?php echo htmlspecialchars($_SESSION["grade_image"] ?? "assets/images/placeholder_grade.png"); ?>" style="width: 60px; height: 60px; object-fit: contain;">
|
<div style="display: flex; align-items: center; justify-content: center; margin-bottom: 5px;">
|
||||||
<span style="font-size: 28px; font-weight: bold; color: #fff;">
|
<img src="<?php echo htmlspecialchars($_SESSION["grade_image"] ?? "assets/images/placeholder_grade.png"); ?>" class="profile-grade-img">
|
||||||
<?php echo htmlspecialchars($_SESSION["grade_name"] ?? "Recrue"); ?>
|
<span class="profile-username">
|
||||||
<?php echo htmlspecialchars($_SESSION["display_name"] ?? $_SESSION["username"]); ?>
|
<?php echo htmlspecialchars($_SESSION["grade_name"] ?? "Recrue"); ?>
|
||||||
</span>
|
<?php echo htmlspecialchars($_SESSION["display_name"] ?? $_SESSION["username"]); ?>
|
||||||
</div>
|
</span>
|
||||||
|
|
||||||
<?php if (!empty($_SESSION['selected_title_name'])): ?>
|
|
||||||
<div style="font-size: 14px; font-weight: bold; color: #ebcb8b; text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 5px;">
|
|
||||||
« <?php echo htmlspecialchars($_SESSION['selected_title_name']); ?> »
|
|
||||||
</div>
|
</div>
|
||||||
<?php endif; ?>
|
|
||||||
|
<?php if (!empty($_SESSION['selected_title_name'])): ?>
|
||||||
|
<span class="profile-title-text">— <?php echo htmlspecialchars($_SESSION['selected_title_name']); ?> —</span>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
<div style="font-size: 16px; color: #88c0d0; opacity: 0.8; margin-bottom: 20px;">
|
<span class="profile-level-text">Niveau <?php echo htmlspecialchars($_SESSION["level"] ?? "1"); ?></span>
|
||||||
Niveau <?php echo htmlspecialchars($_SESSION["level"] ?? "1"); ?>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<?php if (!empty($_SESSION['selected_badge_image'])): ?>
|
<div class="profile-section-header">Guilde</div>
|
||||||
<div style="margin-top: 20px; padding: 15px; background: rgba(30, 41, 59, 0.3); border-radius: 12px; display: inline-block;">
|
<div class="guild-info-box">
|
||||||
<img src="<?php echo htmlspecialchars($_SESSION['selected_badge_image']); ?>?v=<?php echo time(); ?>" style="width: 80px; height: 80px; object-fit: contain; filter: drop-shadow(0 0 10px rgba(136, 192, 208, 0.2));" title="<?php echo htmlspecialchars($_SESSION['selected_badge_name'] ?? ''); ?>">
|
<?php if (!empty($_SESSION['guild_id'])): ?>
|
||||||
<div style="font-size: 10px; color: #8c92a3; margin-top: 8px; text-transform: uppercase;">Badge Équipé</div>
|
<div class="guild-display">
|
||||||
|
<div class="guild-icon-placeholder"><i class="fa-solid fa-building-shield"></i></div>
|
||||||
|
<span class="guild-tag-display">[<?php echo htmlspecialchars($_SESSION['guild_tag']); ?>]</span>
|
||||||
|
<span class="guild-name-display"><?php echo htmlspecialchars($_SESSION['guild_name']); ?></span>
|
||||||
|
</div>
|
||||||
|
<?php else: ?>
|
||||||
|
<div class="guild-display" style="opacity: 0.5;">
|
||||||
|
<div class="guild-icon-placeholder"><i class="fa-solid fa-user"></i></div>
|
||||||
|
<span class="guild-name-display" style="font-style: italic;">Aucune guilde</span>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="profile-bottom-grid">
|
||||||
|
<div class="profile-left-col">
|
||||||
|
<div style="width: 100%; height: 100%; opacity: 0.1; background: url('https://www.transparenttextures.com/patterns/stardust.png');"></div>
|
||||||
</div>
|
</div>
|
||||||
<?php endif; ?>
|
<div class="profile-right-col">
|
||||||
|
<div class="profile-section-header">Insigne Équipé</div>
|
||||||
|
<div class="badge-info-section">
|
||||||
|
<?php if (!empty($_SESSION['selected_badge_image'])): ?>
|
||||||
|
<img src="<?php echo htmlspecialchars($_SESSION['selected_badge_image']); ?>?v=<?php echo time(); ?>" class="badge-img-display" title="<?php echo htmlspecialchars($_SESSION['selected_badge_name'] ?? ''); ?>">
|
||||||
|
<span class="badge-name-display"><?php echo htmlspecialchars($_SESSION['selected_badge_name'] ?? ''); ?></span>
|
||||||
|
<?php else: ?>
|
||||||
|
<div style="width: 80px; height: 80px; display: flex; align-items: center; justify-content: center; opacity: 0.2; margin-bottom: 15px;">
|
||||||
|
<i class="fa-solid fa-medal fa-3x"></i>
|
||||||
|
</div>
|
||||||
|
<span class="badge-name-display" style="opacity: 0.5; font-style: italic;">Aucun insigne</span>
|
||||||
|
<?php endif; ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
76
profile.php
76
profile.php
@ -47,43 +47,63 @@ if ($id || !empty($username)) {
|
|||||||
|
|
||||||
if ($is_ajax): ?>
|
if ($is_ajax): ?>
|
||||||
<?php if ($user): ?>
|
<?php if ($user): ?>
|
||||||
<div style="display: flex; align-items: center; justify-content: center; gap: 15px; margin-bottom: 10px;">
|
<div class="profile-top-section">
|
||||||
<img src="<?php echo htmlspecialchars($user['grade_image']); ?>" style="width: 60px; height: 60px; object-fit: contain;">
|
<div style="display: flex; align-items: center; justify-content: center; margin-bottom: 5px;">
|
||||||
<span style="font-size: 28px; font-weight: bold; color: #fff;">
|
<img src="<?php echo htmlspecialchars($user['grade_image']); ?>" class="profile-grade-img">
|
||||||
<?php echo htmlspecialchars($user['grade_name']); ?>
|
<span class="profile-username">
|
||||||
<?php echo htmlspecialchars($user['display_name'] ?: $user['username']); ?>
|
<?php echo htmlspecialchars($user['grade_name']); ?>
|
||||||
</span>
|
<?php echo htmlspecialchars($user['display_name'] ?: $user['username']); ?>
|
||||||
</div>
|
</span>
|
||||||
|
|
||||||
<?php if (!empty($user['title_name'])): ?>
|
|
||||||
<div style="font-size: 14px; font-weight: bold; color: #ebcb8b; text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 5px;">
|
|
||||||
« <?php echo htmlspecialchars($user['title_name']); ?> »
|
|
||||||
</div>
|
</div>
|
||||||
<?php endif; ?>
|
|
||||||
|
<?php if (!empty($user['title_name'])): ?>
|
||||||
|
<span class="profile-title-text">— <?php echo htmlspecialchars($user['title_name']); ?> —</span>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
<div style="font-size: 16px; color: #88c0d0; opacity: 0.8; margin-bottom: 20px;">
|
<span class="profile-level-text">Niveau <?php echo $user['level_num']; ?></span>
|
||||||
Niveau <?php echo $user['level_num']; ?>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<?php if (!empty($user['guild_id'])): ?>
|
<div class="profile-section-header">Guilde</div>
|
||||||
<div style="background: rgba(30, 41, 59, 0.3); padding: 8px 15px; border-radius: 8px; border: 1px solid rgba(136, 192, 208, 0.1); display: inline-flex; align-items: center; gap: 8px; margin-bottom: 10px;">
|
<div class="guild-info-box">
|
||||||
<i class="fa-solid fa-building-shield" style="color: #88c0d0;"></i>
|
<?php if (!empty($user['guild_id'])): ?>
|
||||||
<span style="color: #ebcb8b; font-weight: bold;">[<?php echo htmlspecialchars($user['guild_tag']); ?>]</span>
|
<div class="guild-display">
|
||||||
<span style="color: #fff; font-size: 13px;"><?php echo htmlspecialchars($user['guild_name']); ?></span>
|
<div class="guild-icon-placeholder"><i class="fa-solid fa-building-shield"></i></div>
|
||||||
</div>
|
<span class="guild-tag-display">[<?php echo htmlspecialchars($user['guild_tag']); ?>]</span>
|
||||||
<?php endif; ?>
|
<span class="guild-name-display"><?php echo htmlspecialchars($user['guild_name']); ?></span>
|
||||||
|
</div>
|
||||||
|
<?php else: ?>
|
||||||
|
<div class="guild-display" style="opacity: 0.5;">
|
||||||
|
<div class="guild-icon-placeholder"><i class="fa-solid fa-user"></i></div>
|
||||||
|
<span class="guild-name-display" style="font-style: italic;">Aucune guilde</span>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
<?php if (!empty($user['badge_image'])): ?>
|
<div class="profile-bottom-grid">
|
||||||
<div style="margin-top: 15px; padding: 15px; background: rgba(30, 41, 59, 0.3); border-radius: 12px; display: inline-block;">
|
<div class="profile-left-col">
|
||||||
<img src="<?php echo htmlspecialchars($user['badge_image']); ?>?v=<?php echo time(); ?>" style="width: 80px; height: 80px; object-fit: contain; filter: drop-shadow(0 0 10px rgba(136, 192, 208, 0.2));" title="<?php echo htmlspecialchars($user['badge_name']); ?>">
|
<!-- Additional data could go here (stats, etc.) -->
|
||||||
<div style="font-size: 10px; color: #8c92a3; margin-top: 8px; text-transform: uppercase;">Badge Équipé</div>
|
<div style="width: 100%; height: 100%; opacity: 0.1; background: url('https://www.transparenttextures.com/patterns/stardust.png');"></div>
|
||||||
</div>
|
</div>
|
||||||
<?php endif; ?>
|
<div class="profile-right-col">
|
||||||
|
<div class="profile-section-header">Insigne Équipé</div>
|
||||||
|
<div class="badge-info-section">
|
||||||
|
<?php if (!empty($user['badge_image'])): ?>
|
||||||
|
<img src="<?php echo htmlspecialchars($user['badge_image']); ?>?v=<?php echo time(); ?>" class="badge-img-display" title="<?php echo htmlspecialchars($user['badge_name']); ?>">
|
||||||
|
<span class="badge-name-display"><?php echo htmlspecialchars($user['badge_name']); ?></span>
|
||||||
|
<?php else: ?>
|
||||||
|
<div style="width: 80px; height: 80px; display: flex; align-items: center; justify-content: center; opacity: 0.2; margin-bottom: 15px;">
|
||||||
|
<i class="fa-solid fa-medal fa-3x"></i>
|
||||||
|
</div>
|
||||||
|
<span class="badge-name-display" style="opacity: 0.5; font-style: italic;">Aucun insigne</span>
|
||||||
|
<?php endif; ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
<div style="text-align: center; padding: 20px;">
|
<div style="text-align: center; padding: 40px; background: rgba(0,0,0,0.5);">
|
||||||
<i class="fa-solid fa-user-slash" style="font-size: 48px; color: #bf616a; margin-bottom: 20px;"></i>
|
<i class="fa-solid fa-user-slash" style="font-size: 48px; color: #bf616a; margin-bottom: 20px;"></i>
|
||||||
<h2 style="color: #fff;">Joueur introuvable</h2>
|
<h2 style="color: #fff; text-transform: uppercase;">Joueur introuvable</h2>
|
||||||
</div>
|
</div>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<?php exit; endif; ?>
|
<?php exit; endif; ?>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user