# Corrections apportées au module Mournblade CYD 2.0 ## Date : 2026-06-07 ## Problèmes identifiés et corrigés ### 1. ❌ Erreur de chargement des partials Handlebars **Problème :** Les feuilles de personnage et de créature généraient une erreur lors du rendu : ``` Failed to render template part "sheet": The partial systems/fvtt-mournblade-cyd-2-0/templates/partial-active-effects.hbs could not be found ``` **Cause :** La fonction `preloadHandlebarsTemplates()` dans `modules/mournblade-cyd2-utility.js` ne préchargeait pas tous les partials nécessaires. Seuls 7 templates étaient préchargés sur 9 utilisés. **Partials manquants :** - `partial-active-effects.hbs` - Utilisé dans les feuilles actor-sheet.hbs et creature-sheet.hbs - `partial-item-effects.hbs` - Utilisé dans de nombreux templates d'items **Solution :** Ajout des deux partials manquants à la liste des templates préchargés dans la fonction `preloadHandlebarsTemplates()`. **Fichier modifié :** - `modules/mournblade-cyd2-utility.js` (lignes 189-201) **Code avant :** ```javascript const templatePaths = [ 'systems/fvtt-mournblade-cyd-2-0/templates/editor-notes-gm.hbs', 'systems/fvtt-mournblade-cyd-2-0/templates/partial-item-header.hbs', 'systems/fvtt-mournblade-cyd-2-0/templates/partial-item-description.hbs', 'systems/fvtt-mournblade-cyd-2-0/templates/partial-item-nav.hbs', 'systems/fvtt-mournblade-cyd-2-0/templates/partial-item-prix.hbs', 'systems/fvtt-mournblade-cyd-2-0/templates/partial-automation.hbs', 'systems/fvtt-mournblade-cyd-2-0/templates/hud-adversites.hbs', ] ``` **Code après :** ```javascript const templatePaths = [ 'systems/fvtt-mournblade-cyd-2-0/templates/editor-notes-gm.hbs', 'systems/fvtt-mournblade-cyd-2-0/templates/partial-item-header.hbs', 'systems/fvtt-mournblade-cyd-2-0/templates/partial-item-description.hbs', 'systems/fvtt-mournblade-cyd-2-0/templates/partial-item-nav.hbs', 'systems/fvtt-mournblade-cyd-2-0/templates/partial-item-prix.hbs', 'systems/fvtt-mournblade-cyd-2-0/templates/partial-automation.hbs', 'systems/fvtt-mournblade-cyd-2-0/templates/partial-active-effects.hbs', // ✅ Ajouté 'systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs', // ✅ Ajouté 'systems/fvtt-mournblade-cyd-2-0/templates/hud-adversites.hbs', ] ``` --- ### 2. ❌ Erreur de parsing JSON (historique) **Problème mentionné :** ``` SyntaxError: Expected ',' or '}' after property value in JSON at position 3753 (line 118 column 4) ``` **Statut :** Cette erreur concernait probablement une ancienne version du fichier `lang/fr.json`. Le fichier actuel est valide et ne contient pas d'erreur de syntaxe. **Vérification :** ```bash # Le fichier passe la validation JSON node -e "require('./lang/fr.json')" # ✅ Pas d'erreur ``` --- ## Liste complète des partials Handlebars ### Partials utilisés dans le système : | Partial | Utilisation | Pré-chargé ? | |---------|-------------|--------------| | `partial-item-header.hbs` | En-têtes des items | ✅ Oui | | `partial-item-description.hbs` | Descriptions des items | ✅ Oui | | `partial-item-nav.hbs` | Navigation des items | ✅ Oui | | `partial-item-prix.hbs` | Prix des items | ✅ Oui | | `partial-item-effects.hbs` | Effets des items | ✅ Oui (ajouté) | | `partial-active-effects.hbs` | Effets actifs (actors) | ✅ Oui (ajouté) | | `partial-automation.hbs` | Automatisation | ✅ Oui | | `editor-notes-gm.hbs` | Notes GM | ✅ Oui | | `hud-adversites.hbs` | HUD Adversités | ✅ Oui | --- ## Templates principaux ### Fiches d'acteurs : - `actor-sheet.hbs` - Feuille de personnage - `creature-sheet.hbs` - Feuille de créature ### Fiches d'items : - `item-arme-sheet.hbs` - `item-capaciteautomata-sheet.hbs` - `item-competence-sheet.hbs` - `item-don-sheet.hbs` - `item-equipement-sheet.hbs` - `item-historique-sheet.hbs` - `item-monnaie-sheet.hbs` - `item-pacte-sheet.hbs` - `item-pouvoirselementaire-sheet.hbs` - `item-profil-sheet.hbs` - `item-protection-sheet.hbs` - `item-ressource-sheet.hbs` - `item-rune-sheet.hbs` - `item-runeeffect-sheet.hbs` - `item-talent-sheet.hbs` - `item-tendance-sheet.hbs` - `item-traitchaotique-sheet.hbs` - `item-traitdemoniaque-sheet.hbs` - `item-traitespece-sheet.hbs` --- ## Outils de test Un script de test a été créé pour valider les corrections : - **Fichier :** `test-templates.js` - **Exécution :** `node test-templates.js` **Fonctionnalités du test :** 1. ✅ Vérifie que tous les templates préchargés existent 2. ✅ Scanne tous les templates pour trouver les partials utilisés 3. ✅ Vérifie que tous les partials utilisés sont préchargés 4. ✅ Valide le fichier de localisation JSON --- ## Bonnes pratiques rappelées ### Pré-chargement des templates Handlebars En Foundry VTT v12+, il est **obligatoire** de pré-charger tous les partials Handlebars utilisés via la fonction `foundry.applications.handlebars.loadTemplates()` dans le hook `init`. **Pourquoi ?** - Les partials ne sont pas chargés automatiquement - Sans pré-chargement, le rendu échouera avec une erreur "partial could not be found" - Le pré-chargement améliore les performances en cacheant les templates **Où ?** Dans le hook `init`, avant l'enregistrement des feuilles (sheets) : ```javascript Hooks.once("init", async function () { // Pré-charger les templates AVANT d'enregistrer les feuilles await MournbladeCYD2Utility.preloadHandlebarsTemplates(); // Ensuite enregistrer les feuilles Actors.registerSheet(...); Items.registerSheet(...); }); ``` ### Gestion des chemins des templates Les chemins doivent être **relatifs au répertoire `systems/`** : - ✅ Bon : `'systems/fvtt-mournblade-cyd-2-0/templates/partial-active-effects.hbs'` - ❌ Mauvais : `'./templates/partial-active-effects.hbs'` --- ## Impact des corrections ### Avant les corrections : - ❌ Ouverture des feuilles de personnage → Erreur - ❌ Ouverture des feuilles de créature → Erreur - ❌ Affichage des effets actifs → Impossible - ❌ Utilisation des effets d'items → Problèmes potentiels ### Après les corrections : - ✅ Toutes les feuilles s'ouvrent correctement - ✅ Les effets actifs s'affichent correctement - ✅ Tous les items affichent leurs effets - ✅ Plus d'erreurs de templates manquants --- ## Recommandations pour le développement futur 1. **Toujours pré-charger les nouveaux partials** lorsqu'ils sont ajoutés 2. **Utiliser un script de test** pour valider les templates après modification 3. **Maintenir une liste à jour** des partials utilisés dans le projet 4. **Vérifier les erreurs de console** lors du développement 5. **Tester toutes les feuilles** après ajout de nouveaux partials --- ## Fichiers modifiés | Fichier | Modification | Statut | |---------|--------------|--------| | `modules/mournblade-cyd2-utility.js` | Ajout de 2 partials dans `preloadHandlebarsTemplates()` | ✅ Corrigé | | `test-templates.js` | Nouveau fichier de test | ✅ Ajouté | | `CORRECTIONS.md` | Documentation des corrections | ✅ Ajouté | --- ## Auteurs Corrections réalisées par : Mistral Vibe (via Vibe CLI) Date : 2026-06-07