query("SELECT value FROM site_settings WHERE `key` = 'project_logo'")->fetchColumn() ?: 'assets/images/logo_placeholder.png';
// Fetch Header Data if not already in session or if we want fresh data
if (isset($_SESSION['user_id'])) {
$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,
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 u.id = ?");
$stmt->execute([$_SESSION['user_id']]);
$u_data = $stmt->fetch();
if ($u_data) {
$_SESSION['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'] ?? '0', FILTER_SANITIZE_NUMBER_INT);
$_SESSION['level'] = $level_num;
$_SESSION['guild_id'] = $u_data['guild_id'];
$_SESSION['selected_title_name'] = $u_data['title_name'];
$_SESSION['selected_badge_name'] = $u_data['badge_name'];
$_SESSION['selected_badge_image'] = $u_data['badge_image'];
$_SESSION['guild_name'] = $u_data['guild_name'];
$_SESSION['guild_tag'] = $u_data['guild_tag'];
}
}
// Fetch Resources
$resources = [];
if (isset($_SESSION['user_id'])) {
$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
WHEN gr.name LIKE 'Energie%' THEN 3
WHEN gr.name LIKE 'Donnée%' THEN 4
ELSE 5
END ASC, gr.name ASC
");
$stmt->execute([$_SESSION['user_id']]);
$header_resources = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($header_resources as $hr) {
$resources[$hr["name"]] = [
"val" => (string)$hr["amount"],
"icon" => $hr["icon"] ?: "fa-gem",
"image" => $hr["image_url"]
];
}
} else {
$header_resources = $db->query("SELECT * FROM game_resources WHERE show_in_header = 1 ORDER BY CASE WHEN name LIKE 'Crédit%' THEN 1 WHEN name LIKE 'Matériau%' THEN 2 WHEN name LIKE 'Energie%' THEN 3 WHEN name LIKE 'Donnée%' THEN 4 ELSE 5 END ASC, name ASC")->fetchAll(PDO::FETCH_ASSOC);
foreach($header_resources as $hr) {
$resources[$hr["name"]] = ["val" => "0", "icon" => $hr["icon"] ?: "fa-gem", "image" => $hr["image_url"]];
}
}
?>