⚙ Générateur MathPath · Statistiques

Générateur ERC — Statistiques · 3 Niveaux

Étape 1 — Choisir le niveau (7e / 8e / 9e)  →  Étape 2 — Choisir le type d'exercice  →  Étape 3 — Préparer & modifier  →  Étape 4 — Générer le ZIP

Niveau scolaire

Type d'exercice

Configuration

Difficulté
Exercices par page
exercices ERC
Nombre de pages
pages HTML
Chemin CSS
Chemin JS

Aperçu ZIP

📊

Prépare les exercices puis génère le ZIP

⚙ Génération en cours…

Préparation…
\n'; } /* ════════════════════════════════════════════════════════ ZIP ════════════════════════════════════════════════════════ */ async function generateZip(){ if(editRows.length===0){alert('Clique d\'abord sur "Préparer les exercices" !');return;} var nb = parseInt(document.getElementById('nbPages').value)||10; var cssPath = document.getElementById('cssPath').value.trim()||'../../../../../assets/css/basic.css'; var jsPath = document.getElementById('jsPath').value.trim()||'../../../../../assets/js/core'; var typeSlug= curType.toLowerCase().replace(/\//g,'_'); var folder = 'stats_'+typeSlug+'_n'+curNiveau; var cfg = { exercises:editRows, typeKey:curType, jsPath:jsPath, lvl:curLvl, mode:(document.querySelector('.mbtn.sel')?document.querySelector('.mbtn.sel').id.replace('mcfg-',''):'auto'), cssPath:cssPath, folder:folder, niveau:curNiveau, nbExos:parseInt(document.getElementById('nbExos').value)||4 }; var ov = document.getElementById('progOv'); var fill = document.getElementById('progFill'); var txt = document.getElementById('progTxt'); ov.classList.add('show'); var zip = new JSZip(); var dir = zip.folder(folder); for(var i=1;i<=nb;i++){ await new Promise(function(r){setTimeout(r,0);}); fill.style.width=Math.round(i/nb*100)+'%'; txt.textContent='Page '+i+' / '+nb+' …'; dir.file(folder+'_'+pad(i)+'.html', buildPage(i,nb,cfg)); } txt.textContent='Compression ZIP…'; var blob = await zip.generateAsync({type:'blob'}); ov.classList.remove('show'); var url = URL.createObjectURL(blob); var a = document.createElement('a'); a.href=url;a.download=folder+'_x'+nb+'.zip';a.click(); URL.revokeObjectURL(url); showPreview(nb,cfg,folder); } function showPreview(nb,cfg,folder){ var lbl = TYPE_LABELS[cfg.typeKey]||cfg.typeKey; var h = '
Pages générées
'+nb+'
' +'
'+lbl+'
'+LVL_LABELS[cfg.lvl]+'
'; for(var i=1;i<=Math.min(nb,10);i++){ var fn = folder+'_'+pad(i)+'.html'; h += '
'+fn+''+cfg.exercises.length+' ERC
' +'
'+lbl+'
'+LVL_LABELS[cfg.lvl]+'إحصاء9e/8e/7e
'; } if(nb>10) h+='

… et '+(nb-10)+' autres

'; document.getElementById('previewBody').innerHTML = h; } /* ════════════════════════════════════════════════════════ MODE AUTO / MANUAL (simple toggle) ════════════════════════════════════════════════════════ */ /* Pas de panneau séparé mode — on garde auto par défaut */