diff --git a/api/get_profile.php b/api/get_profile.php
new file mode 100644
index 0000000..3ec71e3
--- /dev/null
+++ b/api/get_profile.php
@@ -0,0 +1,59 @@
+ 'Missing user_id']);
+ exit;
+}
+
+$user_id = (int)$_GET['user_id'];
+$stmt = $db->prepare("SELECT u.username, u.display_name, u.level_id, u.guild_id,
+ l.name as level_name, 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,
+ (SELECT name FROM levels WHERE id = u.level_id) as grade_name,
+ (SELECT image_url FROM levels WHERE id = u.level_id) as grade_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
+ LEFT JOIN guilds g ON u.guild_id = g.id
+ WHERE u.id = ?");
+$stmt->execute([$user_id]);
+$u = $stmt->fetch(PDO::FETCH_ASSOC);
+
+if (!$u) {
+ http_response_code(404);
+ echo json_encode(['error' => 'User not found']);
+ exit;
+}
+
+ob_start();
+?>
+
+
+

" class="profile-grade-img">
+
+
+
— —
+
Niveau
+
+
+
+
+
+
+
![<?php echo htmlspecialchars($u['badge_name'] ?? ''); ?>](<?php echo htmlspecialchars($u['badge_image']); ?>?v=<?php echo time(); ?>)
+
Aucun insigne
+
+
+ $html]);
diff --git a/assets/js/main.js b/assets/js/main.js
index 892c504..7a0bc05 100644
--- a/assets/js/main.js
+++ b/assets/js/main.js
@@ -11,29 +11,48 @@ document.addEventListener('DOMContentLoaded', () => {
chatMessages.scrollTop = chatMessages.scrollHeight;
};
- chatForm.addEventListener('submit', async (e) => {
- e.preventDefault();
- const message = chatInput.value.trim();
- if (!message) return;
+ if (chatForm) {
+ chatForm.addEventListener('submit', async (e) => {
+ e.preventDefault();
+ const message = chatInput.value.trim();
+ if (!message) return;
- appendMessage(message, 'visitor');
- chatInput.value = '';
+ appendMessage(message, 'visitor');
+ chatInput.value = '';
- try {
- const response = await fetch('api/chat.php', {
- method: 'POST',
- headers: { 'Content-Type': 'application/json' },
- body: JSON.stringify({ message })
- });
- const data = await response.json();
-
- // Artificial delay for realism
- setTimeout(() => {
- appendMessage(data.reply, 'bot');
- }, 500);
- } catch (error) {
- console.error('Error:', error);
- appendMessage("Désolé, une erreur est survenue. Veuillez réessayer.", 'bot');
- }
- });
+ try {
+ const response = await fetch('api/chat.php', {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json' },
+ body: JSON.stringify({ message })
+ });
+ const data = await response.json();
+
+ // Artificial delay for realism
+ setTimeout(() => {
+ appendMessage(data.reply, 'bot');
+ }, 500);
+ } catch (error) {
+ console.error('Error:', error);
+ appendMessage("Désolé, une erreur est survenue. Veuillez réessayer.", 'bot');
+ }
+ });
+ }
});
+
+async function loadProfile(userId) {
+ const modal = document.getElementById('profileModal');
+ const content = document.getElementById('profileModalContent');
+ if (!modal || !content) return;
+
+ try {
+ const response = await fetch('api/get_profile.php?user_id=' + userId);
+ const data = await response.json();
+ if (data.html) {
+ content.innerHTML = data.html;
+ modal.style.display = 'flex';
+ }
+ } catch (error) {
+ console.error('Error loading profile:', error);
+ }
+}
\ No newline at end of file
diff --git a/guilde.php b/guilde.php
index a7367dd..8002f95 100644
--- a/guilde.php
+++ b/guilde.php
@@ -223,7 +223,7 @@ if ($in_guild) {
- | @ |
+ )">@ |
|
Quitter
|