getNextDays($SP_DAYS); $entries8 = $manager->getEntries($days8['start'], $days8['end']); } // Tagesanzahl aus der Konfiguration (nicht aus $days8 übernehmen, // damit man hier oben zentral steuern kann) if (count($days8['days']) !== $SP_DAYS) { $days8 = $manager->getNextDays($SP_DAYS); $entries8 = $manager->getEntries($days8['start'], $days8['end']); } function e(string $value): string { return htmlspecialchars($value, ENT_QUOTES, 'UTF-8'); } ?> <?= $lang->get('sendeplan_title', '📅 Sendeplan') ?>

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

fillWithAutoDj($day, $dayEntries); $isToday = $manager->isToday($day); // Wochentag ausschreiben (mehrsprachig) $weekdayShort = $manager->getWeekday($day); $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'), ]; $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 für diesen Tag 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') ?>