?php // Rock-Kalender - Filtert nach Genre "rock" // Nutzt die "events_music" Tabelle mit Genre-Filter require_once '../config.php'; require_once '../includes/functions.php'; require_once '../includes/trusted.php'; require_once '../includes/visitor_tracking.php'; require_once '../includes/ui_layout.php'; require_once '../includes/calendar_location_ui.php'; require_once '../includes/music-genres.php'; // Genre-Key für diesen Kalender $genreKey = 'gothic'; $genreInfo = $allowedMusicGenres[$genreKey] ?? null; if (!$genreInfo) { die("Ungültiges Genre"); } // Synchronisiere Session-Daten mit Datenbank if (isLoggedIn()) { syncSessionWithDatabase(); } // Theme serverseitig anwenden $themeClass = applyThemeToHTML(); // Status-Filter $status = isset($_GET['status']) ? $_GET['status'] : 'all'; // Hole Events aus der "events_music" Tabelle - NUR mit Genre "rock" try { $pdo = getDBConnection(); $stmt = $pdo->query("SHOW TABLES LIKE 'events_music'"); $tableExists = $stmt->rowCount() > 0; if ($tableExists) { // Filtere nach Genre - prüfe sowohl direkten Match als auch Keywords $genreKeywords = $genreInfo['keywords']; $genreConditions = []; $params = []; // Direkter Genre-Match $genreConditions[] = "LOWER(e.genre) = ?"; $params[] = $genreKey; // Keyword-Matches foreach ($genreKeywords as $keyword) { $genreConditions[] = "LOWER(e.genre) LIKE ?"; $params[] = '%' . strtolower($keyword) . '%'; } $genreWhere = "(" . implode(" OR ", $genreConditions) . ")"; $sql = " SELECT e.*, u.username as creator_name FROM events_music e LEFT JOIN users u ON e.created_by = u.id WHERE $genreWhere ORDER BY e.date_from ASC "; $stmt = $pdo->prepare($sql); $stmt->execute($params); $events = $stmt->fetchAll(PDO::FETCH_ASSOC); } else { $events = []; } } catch (Exception $e) { error_log("Calendar music-gothic.php Fehler: " . $e->getMessage()); $events = []; } if (!empty($events) && function_exists('enrichCalendarEventsWithCoordinates')) { $events = enrichCalendarEventsWithCoordinates($events); } $pdoStats = getDBConnection(); $calendarStats = ['total' => 0, 'approved' => 0, 'pending' => 0]; if ($pdoStats && function_exists('getCalendarTableStats')) { $q = $pdoStats->quote($genreKey); $calendarStats = getCalendarTableStats('events_music', " AND (genre = $q OR LOWER(genre) = " . $pdoStats->quote(strtolower($genreKey)) . ")"); } // Kalender-Titel und Meta-Informationen $calendarTitle = $genreInfo['name'] . '-Kalender'; $calendarDescription = $genreInfo['description'] . '. Finde Konzerte und Festivals nach Datum, Ort oder Künstler.'; $calendarKeywords = implode(', ', $genreInfo['keywords']); $calendarImage = APP_URL . '/assets/bilder/og-calendar.jpg'; $detailPageUrl = '/events-music/detail.php'; $createPageUrl = '/events-music/create.php?genre=' . $genreKey; ?>