refactor: split monolithic index.php into src/tpl + src/js modules

This commit is contained in:
Johnnybegood90
2026-03-11 23:47:22 +01:00
parent 2b163be684
commit 0be8c34b31
17 changed files with 1526 additions and 1517 deletions
+52
View File
@@ -0,0 +1,52 @@
<div class="topbar">
<div class="logo"><?= $group_name ?> <span>/</span><span class="logo-sub"> GridTV</span></div>
<div class="date-label" id="dateLabel"></div>
<div class="clock" id="clock">00:00:00</div>
<div class="nav-btns" id="navBtns">
<button class="nav-btn" onclick="shiftView(-60)">◀ 1h</button>
<button class="nav-btn active" onclick="centerNow()">Maintenant</button>
<button class="nav-btn" onclick="shiftView(60)">1h ▶</button>
</div>
<div class="copy-btns">
<button class="copy-btn" onclick="copyUrl('epg')" title="Copier l'URL EPG">EPG</button>
<?php if (!empty($m3u_url)): ?>
<button class="copy-btn" onclick="copyUrl('m3u')" title="Copier l'URL M3U">M3U</button>
<?php endif; ?>
</div>
<?php if (count($epg_sources) > 1 || $allow_personal_epg): ?>
<select class="source-select" id="sourceSelect" onchange="switchSource(this.value)" title="Source EPG">
<?php foreach ($epg_sources as $i => $src): ?>
<option value="<?= $i ?>"><?= htmlspecialchars($src['name']) ?></option>
<?php endforeach; ?>
<?php if ($allow_personal_epg): ?>
<option value="personal">✏ Personal EPG</option>
<?php endif; ?>
</select>
<?php endif; ?>
<select class="theme-select" id="themeSelect" onchange="setTheme(this.value)" title="Thème">
<?php
$theme_dir = __DIR__ . '/../../themes';
$theme_files = glob($theme_dir . '/*.css');
// default en premier, puis le reste par ordre alphabétique
usort($theme_files, function($a, $b) {
$a_base = basename($a, '.css');
$b_base = basename($b, '.css');
if ($a_base === 'default') return -1;
if ($b_base === 'default') return 1;
return strcmp($a_base, $b_base);
});
foreach ($theme_files as $file) {
$slug = basename($file, '.css');
$css = file_get_contents($file);
// Lire @name et @emoji dans le premier bloc commentaire
preg_match('/@name\s+(.+)/u', $css, $m_name);
preg_match('/@emoji\s+(\S+)/u', $css, $m_emoji);
$name = isset($m_name[1]) ? trim($m_name[1]) : ucfirst($slug);
$emoji = isset($m_emoji[1]) ? trim($m_emoji[1]) : '🎨';
echo ' <option value="' . htmlspecialchars($slug) . '">' . $emoji . ' ' . $name . '</option>' . "\n";
}
?>
</select>
<div class="live-dot">LIVE</div>
</div>