Einbindung von CSS / Less im Plugin

Moin,

sorry, dass ich dazu nochmal fragen muss, aber ich habe inzwischen wohl alle Threads zu dem Thema durch, habe gefühlt 100x neu deployed, Plugin nochmal neu installiert, Caches geleert usw. usf. und dennoch taucht mein Less-CSS nicht im Browser auf. Alle meine anderen bisherigen Anpassungen tun soweit.

Der gefühlt neueste Thread zu dem Thema war der hier, laut dem man nur neu installieren muss und es geht: https://forum.shopware.com/discussion/54498/auto-registration-fuer-css-js-dateien-funktioniert-nicht

Keine Chance.

Ich habe die all.less einmal unter Resources/frontend/less/all.less und einmal unter views/frontend/less/all.less ausprobiert (letzteres ist auch der Pfad aus dem SwagPluginSystem-beispiel-plugin, wo es scheinbar tut). Beides wird abweichend zur offiziellen Doku NICHT registriert. Ich kann weder meinen Selektor im CSS im Browser finden, noch taucht eine Test-deklaration (.sidebar-main { color: red; }) im Browser auf.

Außer dem Pfad - welche Kriterien gibt es noch, dass eine Less-datei geladen wird? Oder werden meine Definitionen schon mit den Shopware-eigenen verglichen und direkt weg optimiert?

Shopware-version ist 5.5.8 hinter einem Apache. Ich möchte explizit nur CSS für mein Plugin hinzufügen, also kein neues Theme kreieren oder so.

Hallo,

hast du deine eigene all.less einfach mal dort abgelegt, wo Sie auch im Theme abgelegt ist, also unter Resources/frontend/_public/src/less/all.less ?

Grüße

Sebastian

Hallo,

bei mir funktioniert das so am korrekten Ort mit allen css-Dateien ohne weiteres Zutun, less habe ich nicht getestet:

custom\plugins\PLUGIN\Resources\frontend\css\IRGENDEIN.css

Vielleicht fehlt noch ein „!important“?

Den Pfad mit _public habe ich auch schon probiert (gerade nochmal), da passiert auch nichts. CSS nimmt er genausowenig.

Das Important oder nicht ist ja egal, das steuert hinterher nur im Browser die Anzeige, aber dafür müsste es dort erstmal auftauchen.

Ich frage mich nun, wo ich überhaupt ansetzen muss, um etwas lauffähiges zu bekommen.

Wodurch kann eine Registrierung denn verhindert werden?

Geht das sonst irgendwie anders? Ich habe auch Threads gefunden, wo im SubscriberInterface das Theme_Compiler_Collect_Plugin_Less angezapt wird, aber wenn ich da eine Methode hinterlege mit Logging, wird die nichtmal aufgerufen. Gibt es noch ein ähnliches Event?

Meinst du ein Theme als Plugin?

/custom/plugins/DEINPLUGIN/Resources/Themes/Frontend/DEINTHEME/frontend/_public/src/less/all.less

Theme_Compiler_Collect_Plugin_Less  brauchst du nicht mehr, ich weiß aber nicht mehr ab welcher Version.

 

Ein Theme möchte ich ja gerade nicht, nur etwas CSS im Plugin hinzufügen.

Ja, das event-basierte scheint leider abgeklemmt zu sein. Wäre aber praktisch, dann könnte man wenigstens per Code forcieren, dass das CSS eingebunden wird.

@Hobel schrieb:

Ein Theme möchte ich ja gerade nicht, nur etwas CSS im Plugin hinzufügen.

Ja, das event-basierte scheint leider abgeklemmt zu sein. Wäre aber praktisch, dann könnte man wenigstens per Code forcieren, dass das CSS eingebunden wird.

Dann mal bitte einen kompletten Satz: Was genau anpassen von welchem Plugin?

Wenn du ein drittes Plugin erweitern/ändern möchtest, dann musst du natürlich auch die Struktur vom Plugin folgen, welches du anpassen willst. 

@gunsenheimer schrieb:

Hallo,

bei mir funktioniert das so am korrekten Ort mit allen css-Dateien ohne weiteres Zutun, less habe ich nicht getestet:

custom\plugins\PLUGIN\Resources\frontend\css\IRGENDEIN.css

Vielleicht fehlt noch ein „!important“?

Also dem kann ich nur zustimmen. Bei mir funktioniert das so auch mit dem Pfad:

.../custom/plugins/JoReuDetailVariantList/Resources/frontend/css/meinetestcss.css

Allerdings muss ich nach jeder Änderung in der CSS das Theme neu kompilieren. Ansonsten ist die Änderung im Frontend nicht sichtbar; auch im Bearbeitungsmodus!

Ich habe mein eigenes kleines Plugin (strukturiert nach Quick Start bzw. Example Plugin) und möchte dort halt per CSS das Erscheinungsbild anpassen. Nix besonderes.

Zum Thema compilieren: was muss ich da machen? Bisher habe ich immer alles nur gezippt und im Backend hochgeladen. In der Doku habe ich auch nix gelesen, dass man irgendwelche manuellen Build-schritte braucht.

Stichwort compilieren war schon gut:

Im Backend unter Caches/Performance habe ich mal ALLE Caches gelöscht (also nicht nur “Shopcache leeren”) und Themes neu compiliert (fragt er einen dann).

Obwohl ich ja KEIN Theme bin oder enthalte im Plugin, hat das dafür gesorgt, dass meine CSS und Less-dateien nun plötzlich im Browser zur Verfügung stehen. Wearing-Sunglasses

Edit: sowas hätte Shopware in einem Example Plugin oder Quick Start ja ruhig mal erwähnen können. So war es eher ein Slow Start, aber gut.

Edit: das Verzeichnis, wo mein Kram momentan liegt, ist wie in der Doku beschrieben Resources/frontend/less bzw css

1 Like