Configuration du thème

Dans Grav, vous pouvez facilement accéder à la configuration du thème et aux informations de plan à partir de vos fichiers Twig et PHP.

Accéder aux informations sur le Blueprint du thème

Les informations du fichier blueprints.yaml du thème actuellement actif peuvent être obtenues à partir de l'objet theme. Utilisons le fichier blueprints.yaml suivant comme exemple :

name: Antimatter
slug: antimatter
type: theme
version: 1.7.0
description: "Antimatter is the default theme included with **Grav**"
icon: empire
author:
  name: Team Grav
  email: devs@getgrav.org
  url: https://getgrav.org
homepage: https://github.com/getgrav/grav-theme-antimatter
demo: http://demo.getgrav.org/blog-skeleton
keywords: antimatter, theme, core, modern, fast, responsive, html5, css3
bugs: https://github.com/getgrav/grav-theme-antimatter/issues
license: MIT

Vous pouvez accéder à n'importe lequel de ces éléments via theme en utilisant le standard dot-syntax.

1 | Author Email: {{ theme.author.email }}
2 | Theme License: {{ theme.license }}

Vous pouvez également atteindre ces mêmes valeurs depuis un plugin Grav avec la syntaxe PHP :

1 | Author Email: {{ theme.author.email }}
2 | Theme License: {{ theme.license }}

Accéder à la configuration du thème

Les thèmes ont aussi des fichiers de configuration. Le fichier de configuration d'un thème est nommé <themename>.yaml. Le fichier par défaut réside dans le dossier racine du thème (user/themes/<themename>).

Il est fortement recommandé de ne pas modifier le fichier YAML par défaut du thème, mais de remplacer les paramètres du dossier user/config/themes. Cela garantira que les paramètres d'origine du thème restent intacts, vous permettant d'accéder rapidement aux modifications et/ou de revenir en arrière si nécessaire.

Par exemple, considérons le thème Antimatière. Par défaut, il existe un fichier appelé antimatter.yaml dans le dossier racine du thème. Le contenu de ce fichier de configuration ressemble à ceci :

1 | enabled: true
2 | color: blue

Il s'agit d'un fichier simple, mais il vous donne une idée de ce que vous pouvez faire avec les paramètres de configuration du thème. Remplaçons ces paramètres et ajoutons-en un nouveau.

Créez donc un fichier à l'emplacement suivant : user/config/themes/antimatter.yaml. Dans ce fichier mettez le contenu suivant :

Je note que enabled n'est pas répété ici. Si les fichiers de configuration sont fusionnés et non simplement remplacés, cela doit être explicitement indiqué.

1 | color: red
2 | info: Grav is awesome!

Ensuite, dans vos modèles de thème, vous pouvez accéder à ces variables à l'aide de l'objet : grav.theme.config.

<h1 style="color :{{ grav.theme.config.color|e }}">{{ grav.theme.config.info|e }}</h1>

Cela devrait se traduire par :

Grav is awesome!

En PHP vous pouvez accéder à la configuration du thème en cours avec :

1 | $color = $this->grav['theme']->config()['color'];
2 | $info = $this->grav['theme']->config()['info'];

Simple! Le ciel est la limite concernant la configuration de vos thèmes. Vous pouvez les utiliser pour tout ce que vous voulez ! :)

Notation alternative

Les alias suivants fonctionnent également :

1 | Theme Color Option: {{ config.theme.color_option|e }}
2 |    or
3 | Theme Color Option: {{ theme_var(color_option)|e }}
4 |    or
5 | Theme Color Option: {{ grav.themes.antimatter.color_option|e }} [AVOID!]

Même si grav.themes.<themename> est pris en charge, il doit être évité car il rend impossible l'héritage correct du thème.