Alors que les thèmes deviennent plus ambitieux, nous cherchons des moyens de leur permettre de manipuler le comportement principal côté serveur. Bien qu’ils ne disposeront jamais du même niveau de contrôle que les plugins, nous pouvons fournir quelques points d’accroche prédéfinis que les thèmes peuvent manipuler.
Voici : les modificateurs de thème ![]()
Ils sont spécifiés en utilisant la clé modifiers dans le fichier about.json de votre thème.
Pour une liste 100 % à jour des modificateurs, consultez le schéma de la base de données au bas de theme_modifier_set.rb, mais voici un bref résumé de ce que nous avons jusqu’à présent :
-
serialize_topic_excerptsbooléen (par défaut false) - inclure toujours des extraits lors de la sérialisation des listes de sujets -
csp_extensionstableau de chaînes - ajouter des directives au CSP. Fonctionne de la même manière que l’ancienne méthode de réglage de thème « extend_content_security_policy ». Mais rappelez-vous, les balises\u003cscript src=\"\"\u003esimples sont autorisées automatiquement. -
svg_iconstableau de chaînes - une liste d’icônes qui doivent être incluses dans le sous-ensemble d’icônes -
topic thumbnailstableau de dimensions - demander des résolutions supplémentaires dans l’ensemble des vignettes de sujet. Notez qu’elles sont générées de manière asynchrone, vous devez donc revenir à l’image d’origine si la taille demandée n’est pas fournie. Plus d’informations disponibles dans le message de commit -
serialize_post_user_badgestableau de chaînes - une liste de noms de badges (correspondant aux entrées de la table des badges) à sérialiser avec les données de publication. Lorsqu’il est configuré, le système inclut les badges d’utilisateur spécifiés avec chaque publication pour le rendu côté client.
Un thème qui utilise intensivement ces nouveaux points d’accroche est Topic List Thumbnails - consultez le code pour voir comment cela fonctionne.
Modificateurs dépendant des paramètres
Les modificateurs de thème peuvent également être configurés pour extraire leur valeur d’un paramètre de thème, permettant aux opérateurs de site de remplacer le comportement du modificateur sans modifier le code du thème. Pour qu’un modificateur dépende d’un paramètre, utilisez cette syntaxe dans votre about.json :
{
"modifiers": {
"modifier_name": {
"type": "setting",
"value": "setting_name"
}
}
}
Par exemple, si vous avez un paramètre de thème appelé show_excerpts et que vous souhaitez qu’il contrôle le modificateur serialize_topic_excerpts :
Dans settings.yml :
show_excerpts:
default: false
Dans about.json :
{
"modifiers": {
"serialize_topic_excerpts": {
"type": "setting",
"value": "show_excerpts"
}
}
}
Lorsque le paramètre show_excerpts est modifié, la valeur du modificateur se mettra automatiquement à jour pour correspondre. Cela offre une flexibilité aux opérateurs de site pour personnaliser le comportement du thème via l’interface d’administration.
Ce document est contrôlé par version - suggérez des modifications sur github.

