format('Y-m-d'); $edit_meeting['meeting_time_only'] = $edit_date_time->format('H:i'); } // --- Logik zum Hinzufügen oder Speichern von Terminen (POST) --- if ($_SERVER["REQUEST_METHOD"] == "POST") { $meeting_date_only = $_POST['meeting_date']; $meeting_time_only = $_POST['meeting_time'] ?? '12:00'; // Standardwert 12:00 Uhr $meeting_date = $meeting_date_only . ' ' . $meeting_time_only; $color_id = $_POST['color_id']; $id = $_POST['id'] ?? null; if ($id) { // Update-Logik $stmt = mysqli_prepare($conn, "UPDATE meetings SET meeting_date = ?, color_id = ? WHERE id = ?"); mysqli_stmt_bind_param($stmt, "sii", $meeting_date, $color_id, $id); if (mysqli_stmt_execute($stmt)) { $message = "Termin erfolgreich aktualisiert!"; $message_type = 'success'; } else { $message = "Fehler beim Aktualisieren des Termins."; $message_type = 'danger'; } mysqli_stmt_close($stmt); } else { // Insert-Logik $stmt = mysqli_prepare($conn, "INSERT INTO meetings (meeting_date, color_id) VALUES (?, ?)"); mysqli_stmt_bind_param($stmt, "si", $meeting_date, $color_id); if (mysqli_stmt_execute($stmt)) { $message = "Neuer Termin erfolgreich hinzugefügt!"; $message_type = 'success'; } else { $message = "Fehler beim Hinzufügen des Termins."; $message_type = 'danger'; } mysqli_stmt_close($stmt); } } // --- Nächste 2 Donnerstage automatisch hinzufügen (mit 12:00 Uhr) --- $date = new DateTime('now'); $date->modify('next thursday'); for ($i = 0; $i < 2; $i++) { $next_thursday = $date->format('Y-m-d') . ' 12:00:00'; $stmt = mysqli_prepare($conn, "SELECT id FROM meetings WHERE meeting_date = ?"); mysqli_stmt_bind_param($stmt, "s", $next_thursday); mysqli_stmt_execute($stmt); mysqli_stmt_store_result($stmt); if (mysqli_stmt_num_rows($stmt) == 0) { $color_id = get_weighted_random_color($conn); if ($color_id) { $stmt_insert = mysqli_prepare($conn, "INSERT INTO meetings (meeting_date, color_id) VALUES (?, ?)"); mysqli_stmt_bind_param($stmt_insert, "si", $next_thursday, $color_id); mysqli_stmt_execute($stmt_insert); mysqli_stmt_close($stmt_insert); } } mysqli_stmt_close($stmt); $date->modify('+1 week'); } // --- Termine und alle Farben abrufen (für Übersicht und Formular) --- $all_colors = []; $result = mysqli_query($conn, "SELECT id, name, hex_code FROM colors ORDER BY name"); while ($row = mysqli_fetch_assoc($result)) { $all_colors[] = $row; } $meetings = []; $result = mysqli_query($conn, "SELECT m.id, m.meeting_date, m.created_at, c.name AS color_name, c.hex_code FROM meetings m JOIN colors c ON m.color_id = c.id ORDER BY m.meeting_date"); while ($row = mysqli_fetch_assoc($result)) { $meetings[] = $row; } require_once '../inc/header.php'; ?>

Terminverwaltung

Übersicht der Termine

Es sind noch keine Termine vorhanden.

Datum & Uhrzeit Farbe Aktionen
mode_edit_outline delete_outline