Drupal 8 Modul css + js
am 10.02.2015 - 10:28 Uhr in
Hallo,
ich baue an einer WebApp als Modul für Drupal 8. Nun möchte ich, daß mein Modul für alle Seiten jeweils bestimmte css und js Dateien anhängt.
Wenn ich das richtig sehe, kann ich diese sowohl mit einem eigenen Theme als auch über das Modul definieren.
In meinem custom theme (basis classy) habe ich nun folgende Ansätze verfolgt:
--- Ansatz 1: Einbinden über theme
In der MeinModul.info.yml:
stylesheets:
all:
- css/style.css
Diese Datei wird leider nicht bei einem Seitenaufruf angehängt. Dann habe ich folgendes versucht:
--- Ansatz 2: Einbinden über theme
In der MeinModul.info.yml:
libraries:
- MeinModul/base
und in der MeinModul.libraries.yml:
base:
version: 1.0.0
css:
theme:
css/style.css: {}
Das funktioniert. Hat sich in Drupal etwas geändert, daß mein erster Versuch nicht funktioniert?
--- Anderer Ansatz: Einbinden über Modul
Sollte ich das Einbinden eher über das theme machen, oder über das Modul? Ich tendiere eher zu der Lösung "einbinden über Modul". Wenn über das Modul, wie? So wie beim einbinden über das theme?
Wie kann ich definieren, daß bestimmte Dateien nur für bestimmte Seiten geladen werden?
- Anmelden oder Registrieren um Kommentare zu schreiben
CSS/JS
am 10.02.2015 - 11:52 Uhr
Moin.
Schau Dir mal Adding stylesheets (CSS) and JavaScript (JS) to a Drupal 8 module an, dort wird erklärt, wie Du die Dateien einbindest. Einfach so in der info.yml hab ich das bisher noch nicht gesehen, Du musst schon den Weg über eine Library gehen.
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Ja, danke. Scheint dann
am 10.02.2015 - 14:05 Uhr
Ja, danke. Scheint dann wirklich nur über die lib zu gehen. Und bezüglich einbinden über Module oder Theme? Modul wär eigentlich der Ansatz, oder?
Einbindung Styles/JS
am 11.02.2015 - 07:39 Uhr
Und bezüglich einbinden über Module oder Theme? Modul wär eigentlich der Ansatz, oder?
Jup, auf jeden Fall.
Das Modul definiert ja die gesamte Funktionalität, dementsprechend kann sich das Theme jederzeit ändern. Eventuell wird Dein Modul auf einer anderen Seite verwendet und dort ist dann ein ganz anderes Theme installiert ... dann wäre es ungünstig, wenn Teile der Funktion nicht im Modul lägen :).
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Super Antwort. Macht
am 11.02.2015 - 22:19 Uhr
Super Antwort. Macht natürlich Sinn. Danke ;)