Modules et thèmes
Installer un zip, activer et désactiver, ce qu'une désinstallation supprime, et comment les thèmes enfants protègent votre travail.
Les modules et les thèmes s'installent de la même façon : un zip que vous envoyez dans le panneau. Il n'y a pas d'étape de compilation ni rien à lancer depuis un terminal.
Installer un module#
Modules > Add prend le zip. Le panneau, ensuite :
- l'ouvre dans un répertoire temporaire isolé ;
- lit et valide
module.json; - vérifie les exigences : la version du core, la version PHP, les extensions et tout module dont il dépend ;
- le place au bon endroit, exécute l'installation et ses migrations ;
- publie ses ressources ;
- vide les caches.
Si une exigence n'est pas remplie, l'installation est refusée avec la raison. Rien n'est installé à moitié.
Warning Installer un module exécute du PHP tiers avec les privilèges de votre site. Il n'existe pas de bac à sable pour ça en PHP, dans Bondry ou ailleurs. Installez des modules obtenus chez nous ou auprès d'un auteur en qui vous avez confiance.
Activer, désactiver et désinstaller#
| Action | Ce qui arrive aux données |
|---|---|
| Désactiver | Rien n'est touché. Le module disparaît du site et du panneau. |
| Activer | Il revient exactement comme il était. |
| Désinstaller | Le module supprime ses propres tables et retire ses fichiers. |
Un module ne peut créer que des tables préfixées par mod_<slug>_, et ce
sont les seules qu'une désinstallation supprime. Le core n'est jamais touché,
par conception et par contrainte imposée : le panneau refuse d'installer un
paquet dont les migrations touchent en dehors de ce préfixe.
Modules enfants#
Certains modules en étendent un autre plutôt que le core : les passerelles de paiement étendent Payments, par exemple. Un enfant apparaît en retrait sous son parent dans la liste. Désactiver le parent désactive les enfants, et désinstaller un parent est bloqué tant qu'un enfant reste installé.
Quand un module devient incompatible#
Chaque module déclare la version du core qu'il prend en charge. Deux états peuvent suivre :
- Obsolète : le module a été testé avec une version plus ancienne du core. Il porte une mention orange et continue de fonctionner.
- Incompatible : une exigence n'est plus remplie. Le module est désactivé automatiquement au démarrage et ne peut pas être réactivé tant qu'il n'est pas mis à jour.
Un module cassé ou manquant ne fait jamais tomber le site.
Installer un thème#
Appearance > Themes fait passer le zip du thème par le même flux, en
validant theme.json à la place. Changer de thème modifie seulement la
présentation : aucun contenu n'est touché.
Le personnalisateur#
Appearance > Themes > Customise expose les contrôles que le thème déclare : logo, favicon, nom du site, couleurs, rayon, polices, largeur du conteneur et thème clair ou sombre par défaut. Les valeurs sont stockées en base de données et appliquées comme variables CSS, si bien qu'un changement prend effet immédiatement sans rien à recompiler.
Thèmes enfants#
C'est la partie qui mérite d'être comprise avant de toucher à quoi que ce soit.
Modifier un thème en mode avancé ne modifie jamais l'original. Bondry crée (ou réutilise) un thème enfant, lui donne l'original comme parent, reporte vos valeurs de personnalisation et applique vos changements là. Si le parent était actif, l'enfant prend le relais.
Résultat : mettre à jour le thème parent avec un nouveau zip ne fait jamais perdre votre travail. Si le thème que vous modifiez est déjà un enfant, les changements vont directement dedans.
Supprimer un thème#
Un thème peut être désinstallé comme un module : son répertoire, ses ressources publiées et ses réglages disparaissent. Deux garde-fous s'appliquent. Vous ne pouvez pas supprimer un thème qui fait partie de la chaîne active, et vous ne pouvez pas supprimer un parent tant qu'un de ses enfants est installé.