getDaysRange($listStart, $SP_DAYS); $entriesList = $manager->getEntries($daysList['start'], $daysList['end']); } // Fensterlänge aus Konfiguration übernehmen (falls abweichend) if (count($daysList['days']) !== $SP_DAYS) { $daysList = $manager->getDaysRange($daysList['start'], $SP_DAYS); $entriesList = $manager->getEntries($daysList['start'], $daysList['end']); } function e(string $value): string { return htmlspecialchars($value, ENT_QUOTES, 'UTF-8'); } // Wochentag-Map $weekdayMap = [ 'Mo' => $lang->get('sendeplan_montag', 'Montag'), 'Di' => $lang->get('sendeplan_dienstag', 'Dienstag'), 'Mi' => $lang->get('sendeplan_mittwoch', 'Mittwoch'), 'Do' => $lang->get('sendeplan_donnerstag', 'Donnerstag'), 'Fr' => $lang->get('sendeplan_freitag', 'Freitag'), 'Sa' => $lang->get('sendeplan_samstag', 'Samstag'), 'So' => $lang->get('sendeplan_sonntag', 'Sonntag'), ]; ?> <?= $lang->get('sendeplan_title', '📅 Sendeplan') ?>

📅 get('sendeplan_title', 'Sendeplan') ?>

–
–
get('sendeplan_view_table', '📋 Tabelle Ansicht') ?>
fillWithAutoDj($day, $dayEntries); $isToday = $manager->isToday($day); $weekdayShort = $manager->getWeekday($day); $weekday = $weekdayMap[$weekdayShort] ?? $weekdayShort; $dayNum = (new DateTime($day))->format('d.m.Y'); // 🔥 NEU: Zählung ohne Auto-DJ $realEntries = array_filter($dayEntries, function($e) { return empty($e['is_autodj']); }); $entryCount = count($realEntries); // Live-Sendung ermitteln $liveInfo = null; if ($isToday) { foreach ($dayEntries as $e) { // 🔥 NEU: Virtuellen Auto-DJ überspringen (ist nicht LIVE) if (!empty($e['is_autodj'])) continue; $isOvernight = $e['zeit_bis'] < $e['zeit_von']; $isFromPrevDay = ($e['datum'] !== $day); $isLive = false; if ($e['datum'] === $day && !$isOvernight) { if ($currentTime >= $e['zeit_von'] && $currentTime <= $e['zeit_bis']) { $isLive = true; } } if ($e['datum'] === $day && $isOvernight) { if ($currentTime >= $e['zeit_von']) { $isLive = true; } } if ($isFromPrevDay && $isOvernight) { if ($currentTime <= $e['zeit_bis']) { $isLive = true; } } if ($isLive) { $liveInfo = [ 'von' => $manager->formatTime($e['zeit_von']), 'bis' => $manager->formatTime($e['zeit_bis']), 'name' => $e['sendungsname'], ]; break; } } } ?>
get('sendeplan_no_entries_planned', 'Keine Sendungen geplant') ?>
= $entry['zeit_von'] && $currentTime <= $entry['zeit_bis']) { $isLive = true; } } if ($entry['datum'] === $day && $isOvernight) { if ($currentTime >= $entry['zeit_von']) { $isLive = true; } } if ($isFromPrevDay && $isOvernight) { if ($currentTime <= $entry['zeit_bis']) { $isLive = true; } } } ?>
<?= e($entry['sendungsname']) ?> get('sendeplan_sendebild', 'Sendebild') ?>
🔴 LIVE formatTime($entry['zeit_von'])) ?> - formatTime($entry['zeit_bis'])) ?>
<?= e($entry['moderator_name']) ?> 🎤 = $startTs && $nowTs <= $endTs); $isPast = ($nowTs > $endTs); $isFuture = ($nowTs < $startTs); // Klickbar wenn: // - Modus 1 oder 2 und gerade live // - Modus 2 und Sendung in der Zukunft $isClickable = false; if ($wbMode >= 1 && !$isPast) { if ($isLive) { $isClickable = true; } elseif ($isFuture && $wbMode === 2) { $isClickable = true; } } ?> 0): ?> <?= $lang->get('wunschbox_title', 'Wunschbox') ?> <?= $lang->get('wunschbox_title', 'Wunschbox') ?>