Questions & Answers

annick_querfeld
I'm new here

Behandlung von CSS und Javascript in FirstSpirit

Guten Morgen,

ich bin Frontend-Entwickler eines GroรŸunternehmen und fรผr einen Kunden sollen wir in zeitnaher Zukunft ein Projekt mit FirstSpirit umsetzen.

Um uns darauf vorzubereiten sitzen wir gerade in der Basisschulung. Das ist auch sehr interessant und wir lernen viele Dinge, aber was fรผr mich als Frontendler der da spรคter drauf entwickeln soll wirklich interessant ist sind zum Beispiel die Fragen, wie in FirstSpirit mit dem Thema Javascript und CSS umgegangen wird.

In der Basis Schulung wird nicht darauf eingegangen. Scheinbar, wenn man etwas รผber die Advanced Schulung liest, dort aber auch nicht. Genauso wenig findet man auch nur einen Satz dazu in der FirstSpirit Dokumentation (zumindest konnte ich nichts finden, vielleicht stelle ich mich ja aber auch doof an) und im Grunde nichts brauchbares in der Community. Nur andere Leute wie ich, die sich die gleichen Fragen stellen aber nicht wirklich Antworten darauf bekommen haben. Da FirstSpirit ein so geschlossenes System ist, finden man auch im guten alten World Wide Web keine Informationen dazu.

Daher muss ich hier fragen und ich hoffe ich bekomme eine brauchbarere Antwort als in den Threads zuvor.

Dem ersten Eindruck nach ist FirstSpirit echt mรคchtig und cool und ich sehe interessiert dem kommenden Projekt entgegen und habe Bock loszulegen, dem ersten Eindruck nach muss ich aber auch sagen dass mir der Eindruck entseht dass das Thema Frontend-Entwicklung bzgl CSS und Javascript sehr wenig durchdacht ist bzw. nicht den modernen Ansprรผchen entspricht.

Heutztage ist es ja รผblich, dass man sowohl in CSS als auch in Javascript in vielen einzelnen Dateien modulbasiert programmiert und am Ende alles CSS zu einem zusammengefรผgt und minified wird, genauso wie auch beim Javascript und man in der HTML Seite dann nurnoch eine Datei referenziert. Grade hier, in einem CMS wo es modulbasiert und templatebasiert zur Sache geht macht dies ja erst recht Sinn. Desweiteren ist es gelรคufig heutzutage preprocessoren fรผr CSS zu benutzen, etwa wie SASS oder LESS. Da sie einem die Arbeit enorm vereinfachen und den Code viel besser und sauberer strukurieren lassen. Etwas, auf das glaube ich heutzutage kein Frontend-Entwickler verzichten mรถchte. Ebenso die Integration von js hint and css lint. Oder automatisiertem Frontend Testing, zum Beispiel das Testen von Javascript bspl รผber Jasmine oder รคhnliches. Oft wird das alles in Kombination mit Grunt zum Beispiel genutzt.

Als Entwickler stelle ich mir natรผrlich die Frage, kann ich diese Dinge in Zusammenhang mit FirstSpirit nutzen, oder geht es nicht, und wenn ja, gibt es Beispiele dazu wie man entsprechendes in FirstSpirit integrieren kann, auch so, dass die Vorschauen weiter funktionieren? Leute die es bereits erfolgreich umgesetzt haben? Irgendwelche Anhaltspunkte?

Aktuellen Eindruck nach wirkt es so dass das Konzept einfach das ist im media store Javascript und CSS Dateien liegen zu haben und sie alle einzeln einzubinden. Was mir Bauchschmerzen bereitet was zum Beispiel Dinge wie Performance  angeht.

Ich hoffe es gibt jemanden der meine Bedenken beruhigen kann. Vielleicht fehlen mir auch einfach nur die richtigen Informationen oder ich schaue an den falschen Stellen. Ich habe es leider nicht geschafft zu dem Thema etwas brauchbares zu finden.

Viele GรผรŸe, Annick

7 Replies
udorudi
I'm new here

Guten Morgen,

sollte die eigentliche HTML/CSS-Entwicklung nicht auรŸerhalb von Firstspirit liegen und eher dort mit entsprechenden Frameworks & Tools erfolgen ? Dann wรคren nach sporadischen Modifikationen nur einmalig 1-2 generierte CSS/JS-Files aus dem Klickdummy zu ersetzen.

Oder finden nach GoingLive immer noch tรคglich dutzende CSS-Updates statt, und die Frontendentwicklung soll mehr oder weniger vollstรคndig in FS integriert werden? Dann mรผsste man entsprechende Scripte / Module entwerfen, die die gewรผnschten Endformate eigenstรคndig produzieren.

Viele GrรผรŸe

0 Kudos
philippr
Returning Spectator

Hallo Annick,

unser Workflow sieht an der Stelle genau so aus wie von Udo beschrieben:

In einem Klickmodell (auรŸerhalb des CMS) liegen CSS und JS Modular vor, dann รผbernimmt ein Grunt Build fรผr uns folgende Aufgaben:

- HTML Module (*.hbs Dateien generiern und zu HTML Dateien zusammen setzen) = Klickmodell (Wir nutzen an der Stelle Handlebars, um das HTML bereits Modular aufzusetzen, so wird z.B. das HTML der Navigation nur an einer Stelle gepflegt und in alle weiteren Seiten inkludiert, wenn man das ganz sauber aufsetzt, entsprechen die HTML Module spรคter in etwa den Vorlagen in FirstSpirit)

- CSS und JS (zusammen setzen, ggf. minifizieren je nach dem ob fรผr DEV oder PROD)

- Bilder innerhalb von CSS (xxx:url(xyz.png)) werden durch ein $CMS_REF()$ ersetzt wobei der Dateiname ohne Endung dem Referenznamen des Medienobjektes in FS entspricht. So kรถnnendie Bilder ebenfalls in FirstSpirit abgelegt werden und die URL wird automatisch von FirstSpirit erzeugt. (Dazu muss an dem CSS-Medium in FirstSpirit "Datei parsen" aktiviert werden, dann werden die CMS-Ausdrรผcke wie z.B. $CMS_VALUE()$ interpretiert)

- Die Dateien kรถnnen dann mit der Funktion externen Synchronisierung "automatisch" ins CMS importiert werden.

Der Workflow fรผr ร„nderungen und Anpassungen an der Webseite gehen bei uns dann immer รผber das Klickmodell. Dann werden die Anpassungen auf unserem DEV System ins CMS gespielt. Alle Angepassten FirstSpirit Objekte werden anschlieรŸend รผber ein Feature-Transport an ein Konsolidierungssystem bzw. das Produktivsystem รผbertragen.

Viele GrรผรŸe,

Philipp

Gleiches Anliegen, anderer Post :

https://community.e-spirit.com/message/24378#24378

https://community.e-spirit.com/message/24379#24379

@Philipp: Seid ihr zufrieden mit der Lรถsung?

Sehe ich auch als ein bevorzugtes Modell.

Wie lรถst ihr die Integration von serverseitigen Code Applets?

Ist soewas รผberhaupt mit FirstSpirit sinnvoll, oder ist es von der Architektur eher fรผr AJAX Content dynamische Generierung im Browser ausgelegt?

Resultat: FirstSpirit als CMS ist dann weniger/kein ein Content Management System , sondern der Grunt Build. FirstSpirit agiert dann nur noch als Content-Erzeuger.

- sehr ihr das genauso?

Viele GrรผรŸe,

David

0 Kudos

Hallo David,

die Lรถsung funktioniert und hat sich als praktikabel erwiesen:

  • auch FirstSpirit unbedarfte kรถnnen an dem Klickmodell arbeiten ohne sich einloggen zu mรผssen
  • Jeder Frontend Entwickler arbeitet weiterhin mit dem Editor seiner Wahl und fรผr das Testen des HTMLs muss keine FirstSpirit Generierung stattfinden

Serverseite Applikationsbestandteile, hier gibt es viele Antworten mal ein paar der bereits von uns umgesetzten Lรถsungswege:

  • FirstSpirit generiert JSP Seiten die dann beim Aufruf serverseitg verarbeitet werden.
  • FS Integration (ein FS-Modul) damit kann man via TagLib eine JSP bauen die beim Aufruf der Seite direkt auf eine FS Datenquelle zugreift.
  • FirstSpirit deployed HTML und alle dynamischen Inhalte werden via AJAX und einem Webservice/REST nachgeladen
  • Aus einer Datenquelle wird mit Hilfe der FirstSpirit Content-Projektion aus jedem Datensatz eine HTML Seite generiert. Mit FS Boardmitteln kann dann ein Paging, oder รคhnliches ergรคnzt werden.
  • Aus FirstSpirit wird neben den HTML Seiten auch ein JSON Format erzeugt (eigene Seitenvorlage mit Dateiendung .json). Dieses enthรคlt Meta-Informationen zu den geparsten HTML Seiten (wenn diese z.B. aus einer Datenquelle kommen "Content-Projektion"). Via JS kann das JSON eingelesen werden um z.B. dynamische Filter zu erzeugen (z.B. via Angular.js). Skaliert natรผrlich nur bedingt gut Smiley Wink
  • Eine Applikation lรคuf komplett unabhรคngig von FirstSpirit und baut รผber die API eine Verbindung zu dem FS Server auf, um dann bestimmte Inhalte aus FS zu holen.
  • Wรคhrend der Generierung wird eine externe "Datenquelle" befรผllt um dann auf der Webseite auf dieser Datenquelle dynamische Abfragen auszulesen.

-> Eine Entscheidung fรผr eine entsprechende Variante hรคngt total von den Anforderungen des entsprechenden Anwendungsfalls  ab.

Dein Resultat habe ich nicht so recht verstanden...

FirstSpirit ist eben ausschlieรŸlich ein Web Content Management System. ("Best-of-Breed" - Ansatz)

  • Der Grunt-Prozess erzeugt lediglich das Klickmodell.
  • FirstSpirit erzeugt die Webseite, die spรคter vom User betrachtet wird.

Ich hoffe das hilft dir weiter :smileyconfused:

Viele GrรผรŸe,

Philipp

Hallo Philipp,

vielen Dank nochmal fรผr die ausfรผhrlich Antwort.

Auch wenn ich mir mit meiner Zeit gelassen habe: wir haben viel darรผber die letzten Wochen diskutiert.

Wie meinst Du: Grunt erzeugt das Klick Modell:

Klick-Modell == First Spirit Oberflรคche?

-> Ihr habt alle files auรŸerhalb von FirstSpirit. FirstSpirit Templating Code schreibt ihr vom Grunt Prozess dann in das CMS System?

Gefรคllt mir sehr gut, FirstSpirit als Content only zu verwenden, also als Datenquellen.

Wenn ihr JSPs verwendet, wird dann zwangsweise das CMS Kompilat komplett auf einen ApplicationServer deployt. Vermutlich habt ihr dann auch einen Serverstate und Monolithisches System.

(Gleiches bei uns).

Mit Resultat meinte ich eben: Das CMS als Datenquelle verwenden, um JSON bzw. HTML Schnipsel in die Anwendung zu laden. - nicht umgekehrt: FirstSpirit ist das fรผhrende System und lรคdt Anwendungen von extern.

0 Kudos
annick_querfeld
I'm new here

Hallo Zusammen,

entschuldigt bitte meine viel zu spรคte Antwort. Ich wurde auf ein anderes Projekt abgezogen und war dann erstmal komplett raus aus dem Thema. Nun aber werde ich doch auf dem Projekt arbeiten.

Also wenn ich euch jetzt richtig verstanden habe, baut ihr ausgelagert als grunt project unter Nutzung von Handlebars, Sass/Less und co einen Klickdummy. Die generierten Files (css und javascript) ladet ihr mit der Content Synchronisation in First Spirit und die Handlebar files nutzt Ihr dann als Vorlage fรผr die Module in FirstSpirit und รผbertragt den Teil hรคndisch?? Kann man das so kurz zusammengefasst sagen?

Vielen Dank fรผr die vielen ausfรผhrlichen Antworten.

Viele GรผรŸe, Annick

0 Kudos

Hallo zusammen,

mit Version 5.2 von FirstSpirit gibt es den Template-Wizard. Damit lassen sich bequem รผber eine GUI HTML-Clickdummies analysieren, Templates ausschneiden und sรคmtliche referenzierten Medien importieren.

Der von uns empfohlene Weg ist daher

* HTML, JS und CSS ausserhalb von FirstSpirit mit den gewohnten Tools entwickeln

* รผber gewohnte Build-Tools den Clickdummy erzeugen

* mit Hilfe des Template-Wizards den Clickdummy importieren und die Templates zuschneiden

* wenn nรถtig, manuelle Anpassungen an den Templates durchfรผhren

Die zweite Frage (wie geht man mit dynamischen Content um) ist total projektspezifisch. Philipp hat die Mรถglichkeiten ziemlich gut zusammengefasst. Hinzufรผgen mรถchte ich eigentlich nur, dass wir fรผr

Wรคhrend der Generierung wird eine externe "Datenquelle" befรผllt um dann auf der Webseite auf dieser Datenquelle dynamische Abfragen auszulesen.

das Modul UX-Bridge im Angebot haben.

Viele GrรผรŸe

Christian

0 Kudos

Type a product name