v0.0..1
This commit is contained in:
Thomas
2025-10-05 14:58:05 +02:00
parent df30542248
commit a184c31cca
41 changed files with 3439 additions and 0 deletions

View File

@@ -0,0 +1,87 @@
<?php
require_once __DIR__ . '/guard.php';
require_login();
$db = new PDO('sqlite:' . dirname(__DIR__) . '/data/app.db');
$msg = '';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_POST['open'])) {
$db->exec('UPDATE raffle_state SET open = 1');
$msg = 'Raffle åben.';
}
if (isset($_POST['close'])) {
$db->exec('UPDATE raffle_state SET open = 0');
$msg = 'Raffle lukket.';
}
if (isset($_POST['cost'])) {
$cost = max(1, (int)$_POST['cost']);
$stmt = $db->prepare('UPDATE raffle_state SET ticket_cost = :cost');
$stmt->execute([':cost' => $cost]);
$msg = 'Billetpris opdateret.';
}
if (isset($_POST['clear'])) {
$db->exec('DELETE FROM raffle_entries');
$msg = 'Entries nulstillet.';
}
if (isset($_POST['draw'])) {
$rows = $db->query('SELECT user_login FROM raffle_entries')->fetchAll(PDO::FETCH_COLUMN);
if ($rows) {
$winner = $rows[array_rand($rows)];
$msg = 'Vinder: @' . htmlspecialchars($winner);
} else {
$msg = 'Ingen entries.';
}
}
}
$state = $db->query('SELECT * FROM raffle_state WHERE id = 1')->fetch(PDO::FETCH_ASSOC);
$count = $db->query('SELECT COUNT(*) FROM raffle_entries')->fetchColumn();
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Raffle</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="wrap">
<div class="card">
<h2>🎟️ Raffle</h2>
<p><a class="btn" href="index.php">← Tilbage</a></p>
<?php if ($msg): ?>
<p class="notice"><?php echo htmlspecialchars($msg); ?></p>
<?php endif; ?>
<form method="post">
<p>
Status:
<?php echo $state['open']
? '<span class="badge">Åben</span>'
: '<span class="badge">Lukket</span>'; ?>
Billetpris: <strong><?php echo (int)$state['ticket_cost']; ?></strong>
Entries: <strong><?php echo (int)$count; ?></strong>
</p>
<label>
Ny billetpris
<input name="cost" type="number" min="1" value="<?php echo (int)$state['ticket_cost']; ?>">
</label>
<br>
<button class="btn" name="open" value="1">Åbn</button>
<button class="btn" name="close" value="1">Luk</button>
<button class="btn" name="clear" value="1">Nulstil</button>
<button class="btn" name="draw" value="1">Træk vinder</button>
</form>
<p class="small">Chat: <code>!buy X</code> køber billetter for points.</p>
</div>
</div>
</body>
</html>