Definition des Themas mit einer .info.yml-Datei
Um ein Drupal-8-Theme zu erstellen, müssen Sie zunächst eine Datei THEMENAME.info.yml anlegen, die Metadaten zu Ihrem Theme in Drupal bereitstellt. Dies ähnelt der Definition von Modulen und Installationsprofilen, weshalb es wichtig ist, im file.info.yml die Schlüssel „type“ auf „theme“ zu setzen, um es zu unterscheiden.
Diese Seite enthält ein Beispiel für eine THEMENAME.info.yml-Datei und eine Übersicht über die darin enthaltenen Informationen.
Erstellen Sie die Datei .info.yml
Erstellen Sie die .info.yml-Datei im Stammverzeichnis des Verzeichnisses Ihres Themes. Der Ordner muss denselben Namen wie die .info.yml-Datei tragen. Wenn Ihr Theme also „Fluffiness“ heißt, heißt der Ordner „fluffiness/“ und die .info.yml-Datei „fluffiness/fluffiness.info.yml“. Wenn die Datei mit den minimal erforderlichen Eigenschaften (Name, Typ und Core) vorhanden ist, wird Ihr Theme auf Ihrer Webseite unter „Verwalten > Darstellung“ (http://example.com/admin/appearance) angezeigt. Achten Sie darauf, einen Themennamen zu wählen, der noch nicht von einem Modul oder einem anderen Theme verwendet wird. Der Themenname muss in den Drupal-Einstellungen eindeutig sein. Andernfalls werden die Theme-Komponenten nicht korrekt geladen.
Ersetzen Sie Leerzeichen im Themennamen durch Unterstriche im Ordnernamen (und im .info.yml-Dateinamen).
Wenn Sie mit der YAML-Dateistruktur nicht vertraut sind, lesen Sie bitte eine kurze Einführung in das YAML-Dateiformat.
- Tabs sind NICHT erlaubt. Verwenden Sie NUR Leerzeichen.
- Eigenschaften und Listen MÜSSEN mit zwei (2) Leerzeichen eingerückt sein.
Beispiel
name: Fluffiness type: theme description: 'Ein kuscheliges Theme, das extra Flauschigkeit bietet.' core: 8.x libraries: - fluffiness/global-styling base theme: classy regions: header: Header content: Content sidebar_first: 'Sidebar first' footer: Footer
Auf Ihrer Drupal-Seite finden Sie weitere Beispiele für .info.yml-Dateien, indem Sie sich die von Core bereitgestellten Themes ansehen. Öffnen Sie beispielsweise den Ordner core/themes/stark und suchen Sie die Datei stark.info.yml.
Schlüssel/Wert-Paare
Die folgenden Schlüssel/Wert-Paare liefern Metadaten über Ihr Theme und definieren einige grundlegende Funktionen. (Siehe \Drupal\Core\Extension\InfoParserInterface::parse())
- name (erforderlich)
- type (erforderlich)
- description (optional)
- package (optional)
- core (erforderlich)
- php (optional)
- version (optional)
- libraries (optional)
- libraries-override (optional)
- libraries-extend (optional)
- base theme (empfohlen)
- hidden (optional)
- engine (optional)
- logo (optional)
- screenshot (optional)
- regions (optional)
- regions_hidden (optional)
- features (optional)
- stylesheets-remove (nicht empfohlen)
- ckeditor_stylesheets (optional)
name – Name (erforderlich)
Der menschenlesbare Name. Er erscheint auf der Seite „Darstellung“, auf der das Theme aktiviert wird.
name: Fluffiness
type – Typ (erforderlich)
Gibt den Erweiterungstyp an, z. B. „Modul“, „Theme“ oder „Profil“. Für Themes muss dies immer „theme“ sein. Die Angabe ist case-sensitive.
type: theme
description – Beschreibung (optional)
Beschreibung, die auf der Seite „Darstellung“ angezeigt wird.
description: Ein extra kuscheliges Drupal-Theme in Grau und Blau.
package – Paket (optional)
Definiert ein „Paket“, mit dem Themes gruppiert werden können.
package: Core
core (erforderlich)
Definiert die Drupal-Core-Version, mit der das Theme kompatibel ist.
core: 8.x
php (optional)
Erforderliche minimale PHP-Version. Standardmäßig wird der Wert der Konstante DRUPAL_MINIMUM_PHP verwendet.
php: 5.5.9
version – Version (optional)
Definiert die Version. Für auf drupal.org gehostete Themes wird die Versionsnummer vom Packagerskript ausgefüllt. Geben Sie diese nicht manuell an, sondern lassen Sie die Versionszeile ganz weg.
version: 8.x-1.0
libraries – Bibliotheken (optional)
Liste der Bibliotheken (die sowohl CSS- als auch JavaScript-Ressourcen enthalten können), die auf allen Seiten geladen werden, auf denen das Theme aktiv ist. Mehr zu Themes und Asset-Bibliotheken erfahren Sie hier.
libraries: - fluffiness/global-styling
libraries-override – Bibliotheken-Override (optional)
Sammlung von Bibliotheken und Ressourcen, die überschrieben werden. Mehr lesen zu überschreibenden und erweiternden Bibliotheken.
libraries-override: contextual/drupal.contextual-links: css: component: /core/themes/stable/css/contextual/contextual.module.css: false
libraries-extend – Bibliotheken-Erweiterung (optional)
Sammlung von Bibliotheken und Ressourcen, die beim Anhängen einer Bibliothek hinzugefügt werden. Mehr lesen zu überschreibenden und erweiternden Bibliotheken.
libraries-extend: core/drupal.user: - classy/user1 - classy/user2
base theme – Basistheme (empfohlen)
Ein Theme kann Ressourcen von einem anderen Theme erben, indem es dieses als Basistheme angibt. Es wird empfohlen, „classy“ oder „stable“ (standardmäßig „stable“, wenn kein Schlüssel angegeben) zu verwenden – so wird Ihre Theme leichter zukünftige Änderungen im Core-Theme erben können.
base theme: classy
hidden (optional)
Gibt an, ob das Theme auf der Seite „Darstellung“ verborgen werden soll, sodass es nicht über die Benutzeroberfläche aktiviert oder deaktiviert werden kann.
hidden: true
engine (optional)
Thematischer Engine-Typ. Standardmäßig wird „twig“ verwendet.
engine: twig
logo – Logo (optional)
Siehe Change Record: https://www.drupal.org/node/2939152
Pfad zum Logo relativ zur .info.yml-Datei des Themes. Standardmäßig sucht Drupal nach einer Datei namens „logo.svg“ im Stammverzeichnis Ihres Themes und verwendet diese als Theme-Logo.
logo: images/logo.png
screenshot – Screenshot (optional)
Pfad zum Screenshot relativ zur .info.yml-Datei des Themes. Screenshots sollten 588 Pixel breit und 438 Pixel hoch sein, auch wenn sie kleiner angezeigt werden. Standardmäßig sucht Drupal im Stammverzeichnis Ihres Themes nach „screenshot.png“ und verwendet diese Datei als Vorschaubild auf der Seite „Darstellung“.
screenshot: fluffiness.png
regions – Regionen (optional)
Liste der Theme-Regionen. (Beachten Sie, dass den Regionenschlüsseln kein Bindestrich vorangestellt wird.) Mehr über das Hinzufügen von Regionen zum Theme erfahren.
regions: header: Header content: Content sidebar_first: 'First sidebar'
regions_hidden (optional)
Liste der geerbten Regionen, die entfernt werden sollen.
regions_hidden: - sidebar_last
features – Funktionen (optional)
Liste von Funktionen, die auf der Theme-Seite „Einstellungen“ angezeigt werden können.
features: - comment_user_verification - comment_user_picture - favicon - logo - node_user_picture
stylesheets-remove – Stylesheets entfernen (nicht empfohlen)
Liste von Stylesheets aus anderen Modulen oder Themes, die auf allen Seiten entfernt werden sollen, auf denen das Theme aktiv ist. Jeder Wert muss ein vollständiger Pfad relativ zum Dokument sein, um Mehrdeutigkeiten zu vermeiden, falls mehrere Dateien mit demselben Namen existieren. Wenn die Datei Teil einer Bibliothek eines Moduls oder Themes ist, kann anstelle des vollständigen Pfads ein Token in der Form @module_or_theme_name verwendet werden. Beachten Sie, dass bei Verwendung eines Tokens der Wert in Anführungszeichen stehen muss, da „@“ ein reserviertes Zeichen in YAML ist. Hinweis: Dieser Schlüssel ist veraltet und wird in Drupal 9 entfernt. In den meisten Fällen sollte stattdessen libraries-override verwendet werden.
stylesheets-remove: - core/assets/vendor/normalize-css/normalize.css - '@classy/css/components/tabs.css'
ckeditor_stylesheets (optional)
Liste der Stylesheets, die in den CKEditor-Frame geladen werden.
ckeditor_stylesheets: - https://fonts.googleapis.com/css?family=Open+Sans - css/base/elements.css
Mehr Informationen
- Hinzufügen von CSS- und JavaScript-Dateien zu einem Drupal-8-Theme
- Eine vollständige Beschreibung aller im *.info.yml verfügbaren Schlüssel finden Sie unter: Drupal 8 über Ihr Modul mit einer .info.yml-Datei informieren
- Change Record: Info-Dateien sind jetzt .info.yml-Dateien
Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.