autodétection des nouveaux thèmes dans le dossier themes
This commit is contained in:
@@ -671,10 +671,28 @@ $m3u_url = htmlspecialchars($config["m3u_url"] ?? "");
|
|||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
</div>
|
</div>
|
||||||
<select class="theme-select" id="themeSelect" onchange="setTheme(this.value)" title="Thème">
|
<select class="theme-select" id="themeSelect" onchange="setTheme(this.value)" title="Thème">
|
||||||
<option value="default">⬛ Default</option>
|
<?php
|
||||||
<option value="magazine">📰 Magazine</option>
|
$theme_dir = __DIR__ . '/themes';
|
||||||
<option value="cyberpunk">🌆 Cyberpunk</option>
|
$theme_files = glob($theme_dir . '/*.css');
|
||||||
<option value="steampunk">⚙️ Steampunk</option>
|
// 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>
|
</select>
|
||||||
<div class="live-dot">LIVE</div>
|
<div class="live-dot">LIVE</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user