Archive

Structure ZIP attendue

L archive doit contenir a sa racine theme.json, et si besoin style.css, README.md, LICENSE ainsi que les dossiers slots/, parts/ et pages/. Un dossier racine unique est tolere et sera retire automatiquement pendant l installation.

  • Taille max de l archive: 2 Mo.
  • Taille decompressee max: 8 Mo.
  • Nombre de fichiers limite.
  • Profondeur de dossier limitee.
  • Pas de fichiers caches, pas de path traversal, pas de dossiers hors allowlist.
Distribution

Modes d installation a garder en tete

Un theme peut etre installe depuis le disque, depuis une archive ZIP ou depuis une URL HTTPS. Dans tous les cas, un theme advanced doit etre traite comme du code PHP execute sur le serveur.

Ne livrez pas un theme advanced comme s il s agissait d une simple ressource graphique. C est une extension applicative, et elle doit etre revue avec le meme niveau d exigence qu un patch du core.
Diagnostic

Checklist de debug rapide

  • Le theme n apparait pas: verifier theme.json, id, type et variables requises.
  • Le CSS ne change pas: verifier le theme actif et le scope [data-theme="id"].
  • Un override est ignore: verifier le nom exact du slot ou de la part et son emplacement.
  • Une page custom ne se charge pas: verifier que le core appelle vraiment le point d extension vise.
  • Le rendu casse sur mobile: verifier la largeur du shell, la sidebar, la topbar et les tableaux trop larges.
Avant livraison

Checklist finale

  • id stable et court.
  • theme.json valide et coherent avec le nom du dossier.
  • Variables requises presentes.
  • style.css scope avec [data-theme="id"].
  • Sorties dynamiques echappees.
  • Pas d acces directs inutiles aux classes internes.
  • Verification visuelle desktop et mobile.
  • Verification du dashboard si pages/dashboard.php est fourni.