Contenu à venir. Ajoute du texte depuis le panel admin, section « Mode présentation ».
= $maxTentatives; $erreur = $verrouille ? '' : 'Code incorrect. Réessaie.'; } } } // Tentatives restantes à afficher (pastilles), calculées après un éventuel échec ci-dessus $tentativesRestantes = $maxTentatives; $etatActuel = null; if (!$deverrouille) { $etatActuel = recupererTentativePresentation($ipHash); $tentativesRestantes = $maxTentatives - ($etatActuel ? (int) $etatActuel['attempts'] : 0); if ($tentativesRestantes < 0) { $tentativesRestantes = 0; } } if ($deverrouille) { // ---- Présentation en cours : page autonome plein écran, sans le header du site ---- require_once('../scripts/requireCaptcha.php'); require_once('../functions/sendLogs.php'); require_once(__DIR__ . '/../functions/assets.php'); sendPageLog(); $markdown = recupererSetting('presentation_markdown') ?? ''; // Diapositives séparées par une ligne ne contenant que --- (même convention que // Marp/reveal.js : facile à retenir, et ça reste du markdown lisible tel quel). // Sans --- dans le texte, tout le contenu forme une seule diapositive : dans ce // cas on garde une simple page de lecture, sans flèches ni compteur inutiles. $morceaux = preg_split('/^[ \t]*-{3,}[ \t]*$/m', $markdown); $diapositives = []; foreach ($morceaux as $morceau) { $texte = trim($morceau); if ($texte !== '') { $diapositives[] = $texte; } } $nombreDiapositives = count($diapositives); $modeDiaporama = $nombreDiapositives > 1; ?>
Contenu à venir. Ajoute du texte depuis le panel admin, section « Mode présentation ».
Chargement du contenu...
Le code a été saisi plusieurs fois de suite sans succès. L'accès par code PIN est bloqué pour cet appareil.
Connecte-toi en administrateur pour débloquer l'accès immédiatement.
Se connecter en administrateurEntre le code à 9 chiffres pour accéder au contenu.
' . htmlspecialchars($erreur) . '