Afficher la pageAnciennes révisionsLiens de retourHaut de page Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu'il s'agit d'une erreur. <mermaid> flowchart TD A([Arrivée de l'utilisateur sur exercice.php]) --> B{Code exercice présent dans l'URL ?} B -- Non --> C[Erreur : Exercice introuvable] B -- Oui --> D[Lecture de exercices.json] D --> E{Exercice autorisé / public ?} E -- Non --> C E -- Oui --> F[Synchronisation syncUserCompletionData] F --> G{Membre actif / Admin connecté ?} G -- Oui --> H[Chargement & Fusion depuis user/pseudo.json + Cookie] G -- Non --> I[Chargement depuis Cookie uniquement] H --> J{Exercice déjà validé aujourd'hui ?} I --> J J -- Oui --> K[Affichage : Défi du jour déjà validé] J -- Non --> L{Champ nom_du_json renseigné dans exercices.json ?} L -- Oui --> M[Chargement du JSON spécifique de l'exercice] M --> N[Calcul du Niveau basé sur le Score de l'utilisateur] N --> O[Tirage au sort de l'exercice selon le Niveau] O --> P[Affichage Titre & Description du JSON tiré au sort] L -- Non --> Q[Affichage Titre & Description de exercices.json] P --> R[Clic sur le bouton Lancer] Q --> R R --> S{Script externe spécifié dans 'lien' ?} S -- Oui --> T["fetch(lien) : Récupération du PHP/HTML/JS"] T --> U[Injection dans execution-section & Ré-exécution des scripts] U --> V[Déroulement de l'exercice] V --> W[Émission de l'événement JS exerciseFinished] S -- Non --> X[Lancement du Chrono standard 60s] X --> W W --> Y[Affichage de feedback-section : Choix du ressenti] Y --> Z[Soumission du formulaire feedback-form] Z --> AA[Calcul de la nouvelle note] AA --> AB[Sauvegarde dans localStorage] AB --> AC["Requête POST (action: complete_exercise)"] AC --> AD[Mise à jour des Cookies] AD --> AE{Membre actif / Admin ?} AE -- Oui --> AF["Mise à jour de user/pseudo.json (completed_today + notes)"] AE -- Non --> AG[Rechargement de la page] AF --> AG </mermaid> S'identifier