C'est le point qui fait trébucher tout le monde, y compris après des années de Joomla. Il tient en une phrase :
Le template porte des fichiers. Le style porte des réglages.
Tout le reste en découle. Si vous ne retenez qu'une ligne de cette page, c'est celle-là.
Un template, plusieurs styles
Vous installez Corpus une fois. C'est un dossier de fichiers : les gabarits, la feuille de style, les images, les blocs rédactionnels.
Vous créez ensuite autant de styles que vous voulez : Accueil, Landing page, Espace presse. Un style ne duplique aucun fichier : c'est une ligne dans la base de données qui dit « pour ces pages-là, Corpus avec cette teinte, ce logo, ces positions ».
Créer trente styles n'alourdit ni le site, ni les mises à jour.
C'est ce que vous cherchez neuf fois sur dix : Système → Styles de modèles du site → sélectionner un style → Dupliquer.
Ce que porte un style, exactement
| Où c'est stocké | |
|---|---|
| Teinte, couleurs de message | le style |
| Logo, nom du site, slogan | le style |
| Layout, positions, largeurs | le style |
| Variante de forme, typographie | le style |
| Gabarits, feuille de style, images livrées | le template |
Un style est donc un jeu de réglages, et rien d'autre. Il ne peut pas changer le balisage d'une page : pour ça, il faut toucher aux fichiers, et c'est là qu'un template enfant entre en scène.
Dupliquer un style : une photocopie, pas un lien
Quand vous dupliquez, Joomla copie les paramètres dans le nouveau style. À cet instant les deux sont identiques ; ensuite ils vivent leur vie.
Il n'y a aucun héritage entre styles. Modifier le style d'origine ne modifiera pas la copie. Si vous changez la teinte du site après avoir créé cinq styles, vous la changerez cinq fois. C'est le prix de l'indépendance, et il vaut la peine d'y penser avant de dupliquer : réglez ce qui est commun d'abord, dupliquez ensuite.
D'où vient le logo, alors ?
Le champ Logo ne contient pas une image : il contient un chemin vers un fichier de votre médiathèque, du genre images/logo.png.
Dupliquer un style copie donc ce chemin. Les deux styles pointent le même fichier, présent une seule fois sur le disque. Changer le logo dans un style ne fait que changer son chemin à lui ; l'image d'origine ne bouge pas, et les autres styles continuent de l'utiliser.
C'est vrai de tous les champs média du Theme Customizer : ce sont des adresses, pas des copies.
Quand un template enfant devient nécessaire
Un template enfant duplique un dossier de fichiers. Il sert à une seule chose, mais elle est importante :
Surcharger un fichier de Corpus sans que la prochaine mise à jour l'écrase.
Si vous modifiez templates/corpus/html/com_content/article/default.php, votre travail disparaîtra à la prochaine installation d'une version de Corpus. Un enfant le met à l'abri : Joomla utilise le fichier de l'enfant s'il existe, celui du parent sinon.
Un enfant n'hérite pas des réglages. Il a ses propres styles. À sa création, Joomla propose de dupliquer les styles existants, c'est la case Styles de templates supplémentaires, mais ce sont là encore des photocopies.
La question à se poser, en deux temps
1. Ai-je besoin de changer une valeur, ou un fichier ?
Une couleur, un logo, une position de module, une largeur : une valeur → un style suffit.
Le balisage d'un article, une surcharge de composant, une règle CSS que les réglages ne permettent pas : un fichier → template enfant.
2. Est-ce que je vais mettre Corpus à jour un jour ?
Si oui, et la réponse est oui, toute modification de fichier faite dans templates/corpus/ est en sursis. Faites-la dans un enfant.
À noter : le champ CSS personnalisé de Corpus, dans Paramètres avancés, n'est pas concerné. Il vit dans le style, en base de données : aucune mise à jour ne l'efface. Pour des retouches de CSS, il est plus sûr et plus simple qu'un enfant.
Trois pièges à connaître
Le style par défaut. Un seul porte l'étoile. C'est lui qui s'applique partout où aucun autre n'est assigné, et c'est aussi lui que Corpus interroge pour les réglages qui valent pour tout le site, comme le consentement aux cookies.
L'assignation de menu. Un style s'applique à des pages en étant assigné à des éléments de menu, dans son onglet Assignation de menus. Une page atteinte autrement, un lien direct, une recherche, reçoit le style par défaut. Ne comptez pas sur un style pour porter une règle qui doit valoir partout.
La feuille de réglages. Corpus génère une feuille CSS par style, nommée d'après son identifiant. C'est normal, et c'est ce qui permet à deux styles d'avoir deux teintes sans se marcher dessus. Vous n'avez rien à y faire, mais si vous copiez un site à la main, n'oubliez pas ce dossier.
À jour pour Corpus 2.1.38.