Nous avons ajouté une nouvelle façon pour les développeurs de thèmes de contrôler l’expérience d’un site. Les paramètres de site personnalisables par les thèmes permettent aux thèmes de remplacer un groupe limité de paramètres de site définis par le noyau de Discourse. ![]()
En quoi les paramètres de site personnalisables par les thèmes sont-ils différents ?
Nous avons déjà les concepts de paramètres de thème et de modificateurs de thème, alors en quoi les paramètres de site personnalisables par les thèmes sont-ils différents ? Voici un bref résumé :
- Paramètres de thème - Ce sont des paramètres personnalisés utilisés pour contrôler l’interface utilisateur et les fonctionnalités de votre thème ou composant, et pour fournir des options de configuration. Ceux-ci ne peuvent pas modifier les fonctionnalités principales de Discourse.
- Modificateurs de thème - Permettent à un thème ou à un composant de modifier certaines fonctionnalités côté serveur du noyau de Discourse comme alternative à la création d’un plugin.
Paramètres de site personnalisables par les thèmes (nouveau) - Permettent à un thème (pas aux composants) de remplacer un petit sous-ensemble des paramètres de site principaux, qui contrôlent généralement des parties de l’interface utilisateur et d’autres fonctionnalités mineures. Cela permet aux thèmes d’avoir un plus grand contrôle sur l’expérience complète du site.
Les paramètres de site personnalisables par les thèmes ont des types de données et des valeurs identiques aux paramètres de site qu’ils remplacent. À toutes fins utiles, la valeur du paramètre de site dans la base de données devient non pertinente, puisque chaque thème contrôle désormais cette valeur individuellement.
Comment les administrateurs peuvent-ils afficher et modifier les paramètres de site personnalisables par les thèmes ?
Les administrateurs peuvent afficher et modifier les paramètres de site personnalisables par les thèmes dans deux endroits. Premièrement, sur chaque page de thème individuelle, il y a maintenant une section “Paramètres que le thème peut remplacer” comme ceci, au-dessus de l’autre section qui affiche les paramètres de thème définis par le thème :
Le point indique que la valeur a été modifiée par rapport à la valeur par défaut du paramètre du site. Appuyer sur “réinitialiser” modifiera la valeur du paramètre de site du thème pour qu’elle corresponde à la valeur par défaut du paramètre du site.
Le deuxième endroit où les administrateurs peuvent voir ces paramètres est une nouvelle page, /admin/config/theme-site-settings :
À partir d’ici, les administrateurs peuvent voir tous les paramètres de site personnalisables par les thèmes, quelle est la valeur par défaut du paramètre du site et quels thèmes remplacent cette valeur. Lorsque vous survolez un nom de thème, l’interface utilisateur affichera la valeur que ce thème a définie.
Qu’adviendra-t-il de mes modifications existantes des paramètres du site ?
Si vous avez modifié enable_welcome_banner ou search_experience par rapport aux valeurs par défaut sur votre site, nous migrerons automatiquement ces valeurs vers tous les thèmes que vous avez installés sur votre site, de sorte que rien ne changera dans l’interface utilisateur pour vos membres.
Où sont-ils définis ?
Les paramètres de site personnalisables par les thèmes sont définis dans le fichier principal config/site_settings.yml. Chaque paramètre de site personnalisable par les thèmes a l’option themeable: true définie.
Pour le moment, seuls deux paramètres de site sont personnalisables par les thèmes – enable_welcome_banner et search_experience – mais à l’avenir, nous rendrons probablement plus de paramètres de site personnalisables par les thèmes.
Comment les auteurs de thèmes peuvent-ils contrôler les valeurs par défaut ?
Les auteurs de thèmes peuvent définir des remplacements de paramètres de site personnalisables par les thèmes dans le fichier about.json sous une clé theme_site_settings comme ceci :
"theme_site_settings": {
"enable_welcome_banner": false
}
Toute valeur ici sera enregistrée dans la base de données et associée au thème. Une fois qu’une valeur a été enregistrée, les modifications apportées à theme_site_settings dans le fichier about.json lors de la mise à jour d’un thème n’affecteront pas la valeur actuellement enregistrée dans la base de données, car nous ne pouvons pas savoir si l’administrateur a modifié le paramètre entre-temps.
Quelles sont les limitations des paramètres de site personnalisables par les thèmes ?
Les paramètres de site personnalisables par les thèmes sont uniquement destinés à contrôler des éléments de l’interface utilisateur, et lors de la récupération de leur valeur, nous avons besoin d’un ID de thème, donc ces limitations s’appliquent :
- Les paramètres de site personnalisables par les thèmes ne peuvent pas être utilisés dans les tâches Sidekiq
- Les paramètres de site personnalisables par les thèmes ne peuvent pas être utilisés dans les règles markdown
- Les paramètres de site personnalisables par les thèmes seront mis en cache séparément des paramètres de site client en utilisant l’ID du thème comme clé
- Les paramètres de site personnalisables par les thèmes remplaceront les clés sur le service
siteSettingscôté client en utilisant le préchargeur d’application SiteSetting.client_settings_jsonn’inclura pas les paramètres de site personnalisables par les thèmes, vous pouvez plutôt appelerSiteSetting.theme_site_settings_jsonavec un ID de thème
En règle générale, les paramètres de site des thèmes ne serviront qu’à des paramètres simples qui contrôlent des parties de l’interface utilisateur, rien côté serveur.

