'Main', 'epg_url' => $existing['epg_url'], 'm3u_url' => $existing['m3u_url'] ?? '', ]]; $existing['allow_personal_epg'] = false; unset($existing['epg_url'], $existing['m3u_url']); file_put_contents($config_path, json_encode($existing, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)); } http_response_code(403); die('Configuration déjà effectuée. Modifiez config.json via SSH pour changer les paramètres.'); } $error = ''; $success = false; if ($_SERVER['REQUEST_METHOD'] === 'POST') { $group_name = trim($_POST['group_name'] ?? ''); $allow_personal_epg = isset($_POST['allow_personal_epg']); // Récupérer les sources EPG dynamiques $names = $_POST['source_name'] ?? []; $epg_urls = $_POST['source_epg_url'] ?? []; $m3u_urls = $_POST['source_m3u_url'] ?? []; $epg_sources = []; foreach ($names as $i => $name) { $epg_url = trim($epg_urls[$i] ?? ''); $m3u_url = trim($m3u_urls[$i] ?? ''); if (empty($epg_url)) continue; if (!filter_var($epg_url, FILTER_VALIDATE_URL)) { $error = "URL EPG invalide pour la source « $name »."; break; } if (!empty($m3u_url) && !filter_var($m3u_url, FILTER_VALIDATE_URL)) { $error = "URL M3U invalide pour la source « $name »."; break; } $epg_sources[] = [ 'name' => trim($name) ?: "Source " . ($i + 1), 'epg_url' => $epg_url, 'm3u_url' => $m3u_url, ]; } if (empty($error)) { if (empty($group_name)) { $error = 'Le nom du groupe est obligatoire.'; } elseif (empty($epg_sources)) { $error = 'Au moins une source EPG est obligatoire.'; } else { $config = [ 'group_name' => $group_name, 'epg_sources' => $epg_sources, 'allow_personal_epg' => $allow_personal_epg, ]; $written = file_put_contents( $config_path, json_encode($config, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES) ); if ($written === false) { $error = 'Impossible d\'écrire config.json. Vérifiez les permissions (chmod 775 .).'; } else { $success = true; } } } } ?> GridTV — Configuration
Bienvenue sur GridTV — votre guide TV IPTV.
Configurez votre instance en remplissant les champs ci-dessous.
✓ Configuration enregistrée dans config.json.
Cette page ne sera plus accessible. Pour modifier la config, éditez config.json via SSH.
Ouvrir GridTV →
S'affiche en haut à gauche dans la topbar.
Sources EPG
SOURCE 1
Utilisé par le lecteur intégré pour matcher les chaînes.
Options
Autoriser les EPG personnels Les visiteurs peuvent utiliser votre instance avec leur propre EPG/M3U.
Note : La configuration est stockée dans config.json sur le serveur. Ce fichier est exclu du dépôt Git (.gitignore). Pour modifier les paramètres ultérieurement, éditez ce fichier directement via SSH.