WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

You are not logged in.

#1 03.03.2020 15:11:50

boeseroeser
Guest

Insert-Klasse: custom.css/js integrieren?

Früher war das ja nicht so einfach möglich, aber mit dem ganzen Insert-Gewusel sollte es ja ein Klacks sein:

Eine custom.css, in die ein Webmaster ALLE eigenen CSS-Definitionen schreiben kann.
Diese CSS-Datei sollte als letzte angehängt werden, sofern sie existiert.

Ähnliches mit custom-head.js und oder custom-body.js


Dann würde sich die Frage klären, wohin mit geändertem CSS: ins template.css oder in die frontend.css der jeweiligen Module (was ich für furchtbar halte, weil es viele Probleme verursacht!)

Ich könnte mir vorstellen, dass das als Admin-Tool gelöst wird, mit einem passenden Editor, vielleicht auch gleich mit Backup-Funktion.
Vielleicht gibt es auch einen Mechanismus, dass in diesem CSS durch Kommentare getrennt wird, woher die Änderung aufgerufen wird;
Also: wenn ich es mit einem Parameter &call=module-topics aufrufe, wird gleich eine Kommentarzeile
/*--- module-topics ---*/
[Hier Cursor]
eingefügt, wenn diese nicht schon existiert.
Damit da einigermaßen Ordnung herrscht.

Um Missverständnisse zu vermeiden: Ich kann das nicht machen, hab mich mit dem Thema kaum befasst.

#2 03.03.2020 15:47:36

stefanek
Developer

Re: Insert-Klasse: custom.css/js integrieren?

Eins vorweg: ich möchte gerne verstehen, worauf Du hinaus willst.
Ich habe aber noch nicht ganz verstanden, was Du meinst.

Geht es Dir darum, vom Modul aus (sagen wir mal "Members") eine custom.css zu setzen, die sich nach den Template-CSS etc. in den Head einnistet?
Das wäre auf jeden Fall mit den insert Funktionen möglich.

Oder willst Du in einem Modul eine Textarea haben, wo man CSS Code reinschreibt welcher dann in einer custom.css dazu addiert wird?


"All the knowledge I possess everyone else can acquire, but my heart is all my own."
Johann Wolfgang von Goethe

Offline

#3 03.03.2020 16:29:33

boeseroeser
Guest

Re: Insert-Klasse: custom.css/js integrieren?

Ich meine eine (1) custom.css für alle Änderungen und Ergänzungen.
Zentral aufrufbar über ein Admin-Tool.

Da soll einfach ALLES rein. Soviel wird es meist eh nicht sein.

Optional solle es möglich sein, dass ich dieses Admin-Tool mit einem Link direkt aus einem Modul oder Template aufrufen kann, in der Form:
/admin/admintools/tool.php?tool=customcssjs&call=module-topics
wobei dann der CSS-Kommentar: /*--- module-topics ---*/ direkt angesprungen wird bzw angelegt wird.
Sinn dieser Sache wäre es nur, etwas Ordnung zu schaffen bzw dazu zu animieren.

Bei JS wird das nicht möglich sein, aber da rechne ich ohnehin nicht Laien-Basteleien.

#4 03.03.2020 16:36:46

stefanek
Developer

Re: Insert-Klasse: custom.css/js integrieren?

Ließe sich machen, keine Frage.
So dass alle Module (Page+Snippet) eine einzige CSS haben, die sie sich teilen.

Allerdings frage ich mich, ob es nötig ist.
Denn man kann jetzt schon z.B. mit Ruuds Minify Modul sämtliche frontend.css Dateien in eine zusammenfassen.

Nachteil ist ein wenig, dass man vom Backend aus nicht so leicht an die CSS Dateien von vielen Modulen kommt, vor allem bei den Snippets. Da muss AddonFileEditor herhalten und auch das ist ziemlich umständlich.

Machbar also auf jeden Fall, aber Motivation aufgrund geringer Priorität nicht so hoch.

Gruß,
Christian


"All the knowledge I possess everyone else can acquire, but my heart is all my own."
Johann Wolfgang von Goethe

Offline

#5 03.03.2020 17:07:34

boeseroeser
Guest

Re: Insert-Klasse: custom.css/js integrieren?

Naja:
Was ich so sehe, ist das Bestandteil von ALLEN CMS - zumindest die paar, die ich kenne.

Ist ja auch logisch und sinnvoll:
Alle Anpassungen, die ich als Nutzer mache, bleiben bei einem Update erhalten.
Will ich die Farbe des Buttons in einem Modul ändern, kann ich eine Zeile ins custom.css kopieren und fertig. Das bleibt auch nach dem Update so.

Bei WBCE geht das wieder verloren.
Weil: Die gängige Empfehlung ist, mit dem AddonFileEditor herum zu fummeln.
Die Option "Überschreibe neuere Dateien" ist standardmäßig abgewählt, damit komme ich überhaupt in Teufels Küche: Ich habe dann uU. neue Module mit altem CSS oder gar JS. Na super, eine Büchse der Pandora mit sehr schwer zu findenden Fehlern.

Das ist aus meiner Sicht ein unhaltbarer Zustand.

#6 03.03.2020 18:11:11

stefanek
Developer

Re: Insert-Klasse: custom.css/js integrieren?

Lösche einfach sämtliche backend css und js Dateien und mache alles über das Template.
Geht? Geht.

Chio wrote:

...Bestandteil von ALLEN CMS ...

Ach was.
Glaube ich nicht.


"All the knowledge I possess everyone else can acquire, but my heart is all my own."
Johann Wolfgang von Goethe

Offline

#7 03.03.2020 19:04:56

stefanek
Developer

Re: Insert-Klasse: custom.css/js integrieren?

Chio, Du kannst in den Modulen seit einiger Zeit auch .override Dateien platzieren.
Das ist da experimentell drin und ich habe es vergessen.

Bitte probiere es aus, alle
backend.css
backend.js
backend_body.js Dateien umzubenennen.
Jeweils .override anhängen, also backend.override.css usw.

Wenn das Funktioniert, kann man dann weiter denken.
Wie gesagt, das ist noch nicht komplett integriert mit Modulen, sollte aber soweit funktionieren.

Gruß,
Christian

Hier zu finden:
https://github.com/WBCE/WBCE_CMS/blob/d … b.php#L856
Das gleiche Prinzip auch mit den Backend Dateien.

Last edited by stefanek (03.03.2020 19:06:40)


"All the knowledge I possess everyone else can acquire, but my heart is all my own."
Johann Wolfgang von Goethe

Offline

#8 03.03.2020 19:12:09

stefanek
Developer

Re: Insert-Klasse: custom.css/js integrieren?

Wobei jetzt nachdem ich mir das angeschaut habe (im Code) sieht es so aus, dass es tatsächlich overrides sind. Die frontend.css wird trotzdem geladen, auch wenn die frontend.override.css besteht.
Aber gut, wir können es hier alle zusammen besprechen und zu einem sinnvollen Ergebnis kommen.

Christian


"All the knowledge I possess everyone else can acquire, but my heart is all my own."
Johann Wolfgang von Goethe

Offline

#9 03.03.2020 22:40:11

boeseroeser
Guest

Re: Insert-Klasse: custom.css/js integrieren?

wbce startseite wrote:

WBCE CMS ist ein einfach zu bedienendes Content-Management-System

Bist du auf dem richtigen Weg?

Du wirst bald über Caching nachdenken müssen. Wirst du das tun?
Wird das Probleme lösen, die du selbst erschaffen hast?

#10 03.03.2020 23:16:32

stefanek
Developer

Re: Insert-Klasse: custom.css/js integrieren?

Du kannst ja mit Deiner Lösung versuchen, ob es leichter zu bedienen ist.
Du bist ja derjenige der sich beklagt, dass ALLE CMS es besser handhaben. Es ist ein Witz. Ist Dir klar, oder?


"All the knowledge I possess everyone else can acquire, but my heart is all my own."
Johann Wolfgang von Goethe

Offline

#11 03.03.2020 23:50:39

boeseroeser
Guest

Re: Insert-Klasse: custom.css/js integrieren?

Wordpress macht es, Joomla macht es, bei anderen gibt es zahllose PlugIns, die es machen.

Du hast völlig recht, das sind nicht ALLE.
Mach wie du willst.

#12 04.03.2020 00:33:54

stefanek
Developer

Re: Insert-Klasse: custom.css/js integrieren?

Um Missverständnisse für diejenigen zu vermeiden, die hier mitlesen:
Chio hat eingangs erklärt:

Um Missverständnisse zu vermeiden: Ich kann das nicht machen, hab mich mit dem Thema kaum befasst.

Nichts von dem, was ich oben vorgeschlagen habe erfordert irgendeine Art Caching.
Außerdem verkomplizieren diese Vorschläge GAR nichts für den Nutzer.
Darüberhinaus GIBT es ein ausgefeiltes Caching für CSS/JS Dateien.

Aussagen dieser Art, so dünkt es mich, zielen vielmehr darauf ab Verunsicherung zu Streuen als Lösungen herbeizuführen.

Chio, Spaß ist was anderes.
Statt Dir die experimentelle Implementierung näher anzuschauen, sodass darauf aufbauend eine Lösung erarbeitet werden könnte nörgelst Du rum als wenn jemand anderer dafür Verantwortlich wäre, Dir Dein Wunsch-CMS zu basteln.
Es wird nie Deinen Wünschen entsprechen. Es sei denn, Du packst mit an.

Ich bin sehr geneigt konstruktive Vorschläge zu verfolgen oder zumindest in Betracht zu ziehen.
Aber wenn Du weiter so tust als wenn es ein "ich und sie" gäbe, werde ich Deine Beiträge komplett ignorieren.

Christian

Last edited by stefanek (04.03.2020 00:37:03)


"All the knowledge I possess everyone else can acquire, but my heart is all my own."
Johann Wolfgang von Goethe

Offline

#13 04.03.2020 08:47:52

florian
Administrator

Re: Insert-Klasse: custom.css/js integrieren?

Jeweils .override anhängen, also backend.override.css usw.

Das gilt natürlich auch für bzw. gemeint  war vermutlich frontend.override.css / js
https://github.com/WBCE/WBCE_CMS/blob/d … b.php#L856
Damit sollte sich also das Überschreibe-Problem umgehen lassen.

Das ist aus meiner Sicht ein unhaltbarer Zustand.

Das Überschreiben der frontend.css bei Modulupdates ist schon etwas lästig. Beim Modul Miniform und mpform und eventuell noch weiteren ist es ja so gelöst, dass im Installer eine default.frontend.css geliefert wird, die nur dann in frontend.css umbenannt wird, wenn das Modul komplett neu installiert wird, also keine Gefahr besteht, vorgenommene Anpassungen zu überschreiben. Das ist eigentlich guter Stil und auch für andere Module wünschenswert.

Zum Thema Caching verweise ich auf Minify  das bereits jetzt genau diese Funktion ermöglicht. Damit können beliebige Stylesheets und Scripte, sowohl auf der eigenen Seite als auch aus CDN, jeweils in einer einzigen komprimierten Css- und JS-Datei zusammengefasst werden, die nur bei Bedarf (Änderungen an den Stylesheets und/oder installierten Modulen) neu generiert werden.
Desweiteren wird es in einer der kommenden Versionen ein vergleichbares Feature auch direkt im Core geben, dass auf der Basis der neuen Insert-Klasse diesen Vorgang sogar meines Wissens weitgehend automatisiert.

Offline

Liked by:

stefanek

#14 04.03.2020 12:18:19

stefanek
Developer

Re: Insert-Klasse: custom.css/js integrieren?

florian wrote:

Jeweils .override anhängen, also backend.override.css usw.

Das gilt natürlich auch für bzw. gemeint  war vermutlich frontend.override.css / js
https://github.com/WBCE/WBCE_CMS/blob/d … b.php#L856
Damit sollte sich also das Überschreibe-Problem umgehen lassen.

Ja, richtig Florian.

Es gilt sowohl für die backend~ als auch die frontend~ Dateien.
Wenn man in diesen Zeilen 868 und 877 statt if ein elseif voranstellt wird die frontend.css  auch komplett ignoriert, wenn auch eine frontend.override.css  existiert.

Es würde dann halt die frontend.override.css  über die Funktion register_frontend_modfiles('css')  geladen.

Meine Überlegung war, einen Mechanismus für Module zu bauen, sodass wenn man im Modul selbst die css/js Datei bearbeitet sie dann als frontend.override.css  abgespeichert wird. Und ist sie einmal vorhanden wird sie fortan verwendet (und bei etwaigen Updates/Upgrades nicht überschrieben).

Also ein etwas anderer Ansatz als bei MiniForm und MPForm, da die frontend.css  von Anfang an existieren kann, aber wenn zusätzlich eine frontend.override.css  existiert, wird die erstere vom register_frontend_modfiles() einfach übergangen.

frontend.override.css ist nicht der beste Name und auch nicht die beste Lösung.
frontend_custom.css ist besser, weil die frontend.css in diesem Falle übergangen bzw. unbeachtet bleiben würde.

Der Grund warum das zwar ansatzweise drin, aber noch nicht richtig zur Debatte gebracht wurde, liegt darin, dass ich mich zunehmend und vorrangig um die Insert Klasse gekümmert habe.

Was mir wichtig ist, ist, dass kein FUD aufgrund dessen entsteht, weil Leute mit Annahmen um sich werfen bevor das Ganze fertig ist.
Die Maxime, meine zumindest, ist weiterhin das CMS so einfach wie möglich zu halten mit dem geringst möglichen Overhead für den Anwender.

Das bedeutet aber nicht, dass diejenigen die länger in der Materie drin stecken und sich dadurch zwangsläufig besser auskennen (mehr Kenntnisse, Erfahrung etc.) das CMS nicht noch professioneller verwenden können als es bisher möglich war.

Persönlich habe ich auch eine Prioritätenabfolge, die im internen Entwickler Bereich bekannt ist und ich werde nicht irgendwelchen Modul-Ideen hinterherlaufen, nur weil jemand denkt, dass er mir irgendwelche Seitenhiebe verpassen kann. Das ist unreifes Getue. Sorry.

Wir haben nur soviel Zeit zur Verfügung wie wir haben. Wir werden dafür nicht bezahlt, müssen also unsere Zeit aus anderen Bereichen rausnehmen, um hier dran zu wirken.
Sich dann noch mit sowas abzuplagen ist total überflüssig.

Daher mein Appel: konstruktiv mitdenken und sich konstruktiv einbringen.
Niemand weiß alles oder hat alles auf dem Schirm.
Gute Ideen können weiter gesponnen werden, sodass ein Konsensus und ein gutes Ganzes am Ende rauskommt.
Oder es wird nichts zur Debatte gebracht (jeder kann die Entwicklung ohnehin auf GitHub mitverfolgen) und es wird alles so veröffentlicht, wie es im Entwicklerteam beschlossen wurde.
Meine Philosophie ist "Gemeinsam schafft man mehr". Das könnte grade dann stimmen, wenn man Leute wie Chio hat, die in vielen Bereichen sehr innovativ waren und sind.
Anders als in anderen Entwicklerteams besteht hier ein starkes Interesse daran Input aus der Community in Betracht zu ziehen.
Deswegen haben wir vieles unverändert gelassen, auch wenn es ein enormer Zusatzaufwand ("unter der Haube") gewesen ist.

Christian


"All the knowledge I possess everyone else can acquire, but my heart is all my own."
Johann Wolfgang von Goethe

Offline

Liked by:

florian, Slugger, screamindan, mrbaseman, klawin

#15 04.03.2020 14:23:54

mrbaseman
Developer

Re: Insert-Klasse: custom.css/js integrieren?

Grundsätzlich finde ich die Ideen gut, aber ich möchte noch den Einwand bringen, dass css vom Konzept her so gedacht ist, dass man bereits definierte Formatierungen überschreiben kann. Wäre es vor diesem Hintergrund nicht sinnvoll, die vom Modul/Template mitgelieferten Files in jedem Fall einzubinden und zusätzlich, falls vorhanden, die Customized Variante oder Override oder wie man sie auch nennen mag? Die braucht dann nicht alle Styles zu beinhalten, sondern lediglich die lokalen Anpassungen dazu.

Offline

Liked by:

florian, boeseroeser

#16 04.03.2020 16:40:47

stefanek
Developer

Re: Insert-Klasse: custom.css/js integrieren?

Hallo Martin.
Ja, genau so funktioniert es jetzt ja auch.
wenn eine frontend.override.css existiert aber auch eine frontend.css wird die frontend.css geladen und die frontend.override.css hinterher.
Ich denke meine ursprünglichen Überlegungen waren so ähnlich wie Deine. Oder haben wir uns darüber ausgetauscht?

Auf der anderen Seite manchmal bastelt man ein völlig anderes HTML samt Klassen-Selektoren und die ursprüngliche CSS ist völlig unnötig.

Was sagt Florian und die anderen?

Mir persönlich ist es egal. Ich lösche die frontend.css meistens sowieso aus allen Modulen (weitestgehend). :-)

Also richte ich mich gerne nach dem, was gewünscht wird.

Christian


"All the knowledge I possess everyone else can acquire, but my heart is all my own."
Johann Wolfgang von Goethe

Offline

#17 04.03.2020 16:52:09

mrbaseman
Developer

Re: Insert-Klasse: custom.css/js integrieren?

Hallo Christian,

nee, ich glaube darüber haben wir uns nicht ausgetauscht, aber wir haben hier in diesem Thread aneinander vorbei geredet. Ich hatte es so verstanden, dass wenn eine frontend.override.css existiert aber auch eine frontend.css, dass dann die frontend.css nicht geladen würde und stattdessen nur die frontend.override.css.

Wenn tatsächlich beide geladen werden, dann sind wir uns ja einig, wie es sein sollte (zumindest wir beiden).

Vielleicht liegt das Missverständnis einfach an der Benennung "override" die im Unterbewusstsein den Austausch der Dateien suggeriert. Etwas mit "customized" oder so wäre da vielleicht die bessere Benennung. Bevor dieses Feature Verbreitung findet, sollten wir über den Dateinamen vielleicht nochmal nachdenken. Andererseits, wenn man es dokumentiert und die Entwickler die Konvention kennen, dann ist der genaue String auch egal. Es könnte nur bei der Einführung und Verbreitung des neuen Features hilfreich sein.

Gruß Martin

Offline

#18 04.03.2020 16:59:44

stefanek
Developer

Re: Insert-Klasse: custom.css/js integrieren?

Ja, richtig.
Falsch. Wie denn nun.  tongue

Spaß beiseite: das jetzige Verhalten ist genau so, wie Du es beschrieben hast. Deswegen auch die Benennung override folgerichtig.

Aber heute habe ich beschrieben, wie es vermutlich besser wäre. Statt override einfach eine custom draus machen, sobald sie bearbeitet wurde.

Doch das entscheidet ihr mal.
Jedenfalls so wie Du es beschreibst ist es seit längerem im Core drin. Kann also mal getestet werden.

Schönnen Gruß,
Christian

Last edited by stefanek (04.03.2020 17:00:04)


"All the knowledge I possess everyone else can acquire, but my heart is all my own."
Johann Wolfgang von Goethe

Offline

#19 04.03.2020 17:05:19

mrbaseman
Developer

Re: Insert-Klasse: custom.css/js integrieren?

ja, das wird das beste sein, es einfach mal auszuprobieren und dann sieht man schon, wie es genau funktioniert   smile

Offline

#20 04.03.2020 17:14:37

florian
Administrator

Re: Insert-Klasse: custom.css/js integrieren?

Wenn die Kaskade so ist
frontend.css
frontend.override.css
/template/irgendeinstyle.css

ist doch alles in Butter.

Offline

#21 04.03.2020 17:22:35

stefanek
Developer

Re: Insert-Klasse: custom.css/js integrieren?

Florian,
wenn Du magst, teste es mal.
Ich kann mich wirklich nicht mehr erinnern so genau.

Persönlich denke ich es ist unnötig 2 Dateien zu laden, aber soll mir recht sein.


"All the knowledge I possess everyone else can acquire, but my heart is all my own."
Johann Wolfgang von Goethe

Offline

#22 04.03.2020 17:52:37

florian
Administrator

Re: Insert-Klasse: custom.css/js integrieren?

Wie es aussieht, werden derzeit die  frontend/backend.override.css STATT der frontend/backend.css geladen. Das finde ich persönlich ungünstig, weil ich dann für individuelle Anpassungen die komplette, teilweise sehr umfangreiche / unübersichtliche CSS kopieren und bearbeiten müsste, anstatt durch cascading nur gezielt die Stile zu überschreiben, die ich anders haben will.

Last edited by florian (04.03.2020 17:53:17)

Offline

#23 04.03.2020 18:18:22

mrbaseman
Developer

Re: Insert-Klasse: custom.css/js integrieren?

florian wrote:

Wie es aussieht, werden derzeit die  frontend/backend.override.css STATT der frontend/backend.css geladen. Das finde ich persönlich ungünstig, weil ich dann für individuelle Anpassungen die komplette, teilweise sehr umfangreiche / unübersichtliche CSS kopieren und bearbeiten müsste, anstatt durch cascading nur gezielt die Stile zu überschreiben, die ich anders haben will.

der Meinung schließe ich mich an (siehe auch weiter oben)

Offline

#24 04.03.2020 18:21:47

boeseroeser
Guest

Re: Insert-Klasse: custom.css/js integrieren?

Sorry, ich halte diese Lösung für unnötig kompliziert und schwer verständlich. Versuche Mal, das einem Laien zu erklären.

Warum viele einzelne custom.css, wenn es 1 tut?

Und das ganze nochmal mit custom-head/body Js?

Wozu so aufwändig?

Edit: und all das umständlich und fehleranfällig per FTP oder afe zu pflegen.
Statt einfach und komfortabel per Admin-Tool.

Last edited by boeseroeser (04.03.2020 18:33:22)

#25 04.03.2020 18:48:46

stefanek
Developer

Re: Insert-Klasse: custom.css/js integrieren?

florian wrote:

Wie es aussieht, werden derzeit die  frontend/backend.override.css STATT der frontend/backend.css geladen. Das finde ich persönlich ungünstig, weil ich dann für individuelle Anpassungen die komplette, teilweise sehr umfangreiche / unübersichtliche CSS kopieren und bearbeiten müsste, anstatt durch cascading nur gezielt die Stile zu überschreiben, die ich anders haben will.

OK, OK.

Also im Moment ist es ja noch nicht fertig.
Im Grunde genommen, wie ich weiter oben geschrieben habe

stefanek wrote:

Meine Überlegung war, einen Mechanismus für Module zu bauen, sodass wenn man im Modul selbst die css/js Datei bearbeitet sie dann als frontend.override.css  abgespeichert wird.

Du müsstest also quasi nichts zu Fuss übertragen. Du würdest (beim ersten Mal) eine frontend.css öffnen, die würde aber als frontend.override.css speichern.

Ich schaue es mir gleich an lasse es aber erstmal liegen und komme etwas später darauf zurück.


"All the knowledge I possess everyone else can acquire, but my heart is all my own."
Johann Wolfgang von Goethe

Offline

Board footer

Powered by FluxBB

up