54 lines
1.5 KiB
PHP
54 lines
1.5 KiB
PHP
<?php
|
|
session_start();
|
|
require 'config.php';
|
|
require 'db.php';
|
|
|
|
// Nur Admins dürfen hier rein
|
|
if (!$_SESSION['user']['hasRole']) {
|
|
die("❌ Kein Zugriff!");
|
|
}
|
|
|
|
// Alle offenen Benachrichtigungen laden
|
|
$result = $dbhandle->query("
|
|
SELECT n.id, u.discord_name, n.message, n.type, n.created_at
|
|
FROM notifications n
|
|
JOIN users u ON n.user_id = u.id
|
|
WHERE n.is_read = 0
|
|
ORDER BY n.created_at DESC
|
|
");
|
|
?>
|
|
<?php require "header.php"?>
|
|
<head>
|
|
<link rel="stylesheet" href="style.css">
|
|
</head>
|
|
<body>
|
|
|
|
<h1>📢 Admin-Dashboard</h1>
|
|
|
|
<div id="notifications">
|
|
<?php while ($row = $result->fetch_assoc()): ?>
|
|
<div class="notif">
|
|
<b><?= htmlspecialchars($row['discord_name']) ?></b>
|
|
<?= htmlspecialchars($row['message']) ?>
|
|
<small>(<?= $row['created_at'] ?>)</small>
|
|
<form method="post" action="mark_as_read.php">
|
|
<input type="hidden" name="notif_id" value="<?= $row['id'] ?>">
|
|
<button type="submit">✔ Erledigt</button>
|
|
</form>
|
|
</div>
|
|
<?php endwhile; ?>
|
|
</div>
|
|
|
|
<script>
|
|
// Alle 5 Sekunden nach neuen Benachrichtigungen schauen
|
|
setInterval(() => {
|
|
fetch('get_notifications.php')
|
|
.then(response => response.text())
|
|
.then(data => {
|
|
document.getElementById('notifications').innerHTML = data;
|
|
});
|
|
}, 5000);
|
|
</script>
|
|
|
|
</body>
|