Définition d’un thème via un fichier .info.yml
Pour créer un thème Drupal 8, il faut d’abord créer un fichier THEMENAME.info.yml
qui fournit les métadonnées de votre thème à Drupal. Cela ressemble à la manière dont sont définis les modules et les profils d’installation, il est donc important de définir la clé type
dans le fichier .info.yml
comme theme
afin de bien le distinguer.
Cette page contient un exemple de fichier THEMENAME.info.yml
et un aperçu des informations que ce fichier peut contenir.
Créer le fichier .info.yml
Créez un fichier .info.yml
à la racine du dossier de votre thème. Le dossier doit porter le même nom que le fichier .info.yml
. Par exemple, si votre thème s’appelle « Fluffiness », le dossier s’appellera « fluffiness/ » et le fichier .info.yml
sera fluffiness/fluffiness.info.yml
. Si le fichier existe avec les propriétés minimales requises (nom, type et core), votre thème apparaîtra dans votre site Drupal dans la section « Apparence » (http://example.com/admin/appearance). Veillez à choisir un nom de thème qui n’est pas déjà utilisé par un module ou un autre thème. Le nom du thème doit être unique dans la configuration Drupal. Sinon, les composants du thème ne seront pas correctement chargés.
Remplacez les espaces dans le nom du thème par des underscores dans le nom du dossier (et du fichier .info.yml).
Si vous ne connaissez pas la structure des fichiers YAML, lisez une brève introduction au format YAML.
- Les tabulations NE SONT PAS autorisées. Utilisez UNIQUEMENT des espaces.
- Les propriétés et listes DOIVENT être indentées avec deux (2) espaces.
Exemple
name: Fluffiness type: theme description: 'Un thème câlin offrant une douceur supplémentaire.' core: 8.x libraries: - fluffiness/global-styling base theme: classy regions: header: Header content: Content sidebar_first: 'Sidebar first' footer: Footer
Sur votre site Drupal, vous pouvez trouver d’autres exemples de fichiers .info.yml en consultant les thèmes fournis dans le cœur. Par exemple, ouvrez le dossier core/themes/stark
et cherchez le fichier stark.info.yml
.
Paires clé/valeur
Les paires clé/valeur suivantes fournissent les métadonnées de votre thème et définissent certaines fonctionnalités de base. (Voir \Drupal\Core\Extension\InfoParserInterface::parse())
- name (obligatoire)
- type (obligatoire)
- description (optionnel)
- package (optionnel)
- core (obligatoire)
- php (optionnel)
- version (optionnel)
- libraries (optionnel)
- libraries-override (optionnel)
- libraries-extend (optionnel)
- base theme (recommandé)
- hidden (optionnel)
- engine (optionnel)
- logo (optionnel)
- screenshot (optionnel)
- regions (optionnel)
- regions_hidden (optionnel)
- features (optionnel)
- stylesheets-remove (non recommandé)
- ckeditor_stylesheets (optionnel)
name - nom (obligatoire)
Nom lisible par l’humain. Il apparaîtra sur la page « Apparence » où le thème sera activé.
name: Fluffiness
type - type (obligatoire)
Indique le type d’extension, c’est-à-dire « module », « theme » ou « profile ». Pour un thème, cela doit toujours être « theme ». Ce champ est sensible à la casse.
type: theme
description - description (optionnel)
Description affichée sur la page « Apparence ».
description: Un thème Drupal câlin supplémentaire disponible en gris et bleu.
package - paquet (optionnel)
Permet de définir un « paquet » pour regrouper les thèmes ensemble.
package: Core
core (obligatoire)
Définit la version du noyau Drupal avec laquelle le thème est compatible.
core: 8.x
php (optionnel)
Version minimale de PHP requise. Par défaut, la constante DRUPAL_MINIMUM_PHP est utilisée.
php: 5.5.9
version - version (optionnel)
Définit la version. Pour les thèmes hébergés sur drupal.org, ce numéro est rempli par un script de packaging. Ne le définissez pas manuellement, mais excluez complètement cette ligne si non nécessaire.
version: 8.x-1.0
libraries - bibliothèques (optionnel)
Liste des bibliothèques (contenant des ressources CSS et JS) à ajouter sur toutes les pages où le thème est actif. En savoir plus sur les thèmes et les bibliothèques de ressources.
libraries: - fluffiness/global-styling
libraries-override - remplacement de bibliothèques (optionnel)
Collection de bibliothèques et ressources à remplacer. En savoir plus sur le remplacement et l’extension des bibliothèques.
libraries-override: contextual/drupal.contextual-links: css: component: /core/themes/stable/css/contextual/contextual.module.css: false
libraries-extend - extension de bibliothèques (optionnel)
Collection de bibliothèques et ressources ajoutées lors de l’attachement d’une bibliothèque. En savoir plus sur le remplacement et l’extension des bibliothèques.
libraries-extend: core/drupal.user: - classy/user1 - classy/user2
base theme - thème de base (recommandé)
Un thème peut hériter des ressources d’un autre thème en le déclarant comme thème de base dans votre fichier info.yml. Il est recommandé d’utiliser « classy » ou « stable » (stable est la valeur par défaut si la clé n’est pas définie) — cela facilitera à votre thème d’hériter des futures modifications du thème de base.
base theme: classy
hidden (optionnel)
Indique si le thème doit être caché sur la page « Apparence », empêchant ainsi son activation/désactivation via l’interface utilisateur.
hidden: true
engine (optionnel)
Moteur de thème. Par défaut, c’est « twig ».
engine: twig
logo - logo (optionnel)
Voir la note de changement : https://www.drupal.org/node/2939152
Chemin vers le logo relatif au fichier .info.yml
du thème. Par défaut, Drupal cherchera un fichier nommé « logo.svg » à la racine du dossier de votre thème et l’utilisera comme logo du thème.
logo: images/logo.png
screenshot - capture d’écran (optionnel)
Chemin vers la capture d’écran relatif au fichier .info.yml
du thème. Les captures d’écran doivent faire 588 pixels de large par 438 pixels de haut, bien qu’elles s’affichent en plus petit. Par défaut, Drupal cherchera un fichier nommé « screenshot.png » à la racine du dossier de votre thème et l’utilisera comme image du thème sur la page « Apparence ».
screenshot: fluffiness.png
regions - régions (optionnel)
Liste des régions du thème. (Notez que les clés des régions ne sont pas précédées d’un tiret.) En savoir plus sur l’ajout de régions à un thème.
regions: header: Header content: Content sidebar_first: 'First sidebar'
regions_hidden (optionnel)
Liste des régions héritées à supprimer.
regions_hidden: - sidebar_last
features - fonctionnalités (optionnel)
Liste des fonctionnalités à afficher sur la page « Paramètres » du thème.
features: - comment_user_verification - comment_user_picture - favicon - logo - node_user_picture
stylesheets-remove - suppression de feuilles de style (non recommandé)
Liste des feuilles de style provenant d’autres modules ou thèmes à supprimer de toutes les pages où le thème est actif. Chaque valeur doit être un chemin complet relatif à la racine du document, afin d’éviter toute ambiguïté en cas d’existence de plusieurs fichiers portant le même nom. Lorsque le fichier fait partie d’une bibliothèque appartenant à un module ou thème, il est possible d’utiliser un token sous la forme @module_or_theme_name
. Notez que lorsque vous utilisez un token, il doit être entre guillemets, car « @ » est un indicateur réservé dans YAML. Notez que cette clé est obsolète et sera supprimée dans Drupal 9. Dans la plupart des cas, il est préférable d’utiliser libraries-override.
stylesheets-remove: - core/assets/vendor/normalize-css/normalize.css - '@classy/css/components/tabs.css'
ckeditor_stylesheets (optionnel)
Liste des feuilles de style ajoutées dans l’iframe CKEditor.
ckeditor_stylesheets: - https://fonts.googleapis.com/css?family=Open+Sans - css/base/elements.css
Plus d’informations
- Ajouter des feuilles de style (CSS) et JavaScript (JS) à un thème Drupal 8
- La description complète de toutes les clés disponibles dans un fichier *.info.yml se trouve dans : Faire connaître votre module à Drupal 8 avec un fichier .info.yml.
- Note de modification : Les fichiers .info sont désormais des fichiers .info.yml