Templates konfigurabel

Ein CMSimple Support Forum für deutsch sprechende Nutzer und Entwickler
Post Reply
frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: Templates konfigurabel

Post by frase » Tue Oct 24, 2017 3:00 pm

Is schon komisch. Kaum habe ich den Post geschrieben, schon finde ich die Lösung selbst.

Firefox:
about:cache

und dann anklicken: List Cache Entries
gibt es für memory und disk.

Blöd:
stylesheet.css.php taucht unter disk auf hat aber "Expired Immediately".
Das dürfte keine gute Nachricht sein, denn andere Style-Dateien haben ein Datum.

Kennt sich da jemand aus?

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Templates konfigurabel

Post by cmb » Tue Oct 24, 2017 3:13 pm

frase wrote:stylesheet.css.php taucht unter disk auf hat aber "Expired Immediately".
Das dürfte keine gute Nachricht sein, denn andere Style-Dateien haben ein Datum.
Schau dir im Netzwerktab die Header an, die bei Stylesheets gesendet werden (Details hängen natürlich vom Server ab). Entsprechende Header müssten dann halt in der PHP-Datei gesendet werden.
Christoph M. Becker – Plugins for CMSimple_XH

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: Templates konfigurabel

Post by frase » Tue Oct 24, 2017 4:46 pm

Bin mir nicht sicher, ob ich das mit der Cacherei alles richtig verstehe.

Aber eines habe ich jetzt gelöst.
Wenn ich in der stylesheet.css als einzige Anweisung "@import url(stylesheet.css.php);" stehen habe, funktioniert alles super - ohne beim Tiny die init.php ändern zu müssen.

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Templates konfigurabel

Post by cmb » Tue Oct 24, 2017 4:51 pm

frase wrote:Wenn ich in der stylesheet.css als einzige Anweisung "@import url(stylesheet.css.php);" stehen habe, funktioniert alles super - ohne beim Tiny die init.php ändern zu müssen.
Das löst aber das Caching-Problem nicht.
Christoph M. Becker – Plugins for CMSimple_XH

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: Templates konfigurabel

Post by frase » Tue Oct 24, 2017 4:54 pm

Weiß ich :cry:
Deshalb schrieb ich ja, dass ich es nicht verstehe.
Denn manchmal schreibt die Konsole auch "Aus Cache".
Nach einem Reload steht dann aber wieder eine Ladezeit da.
Passende Header habe ich nicht gefunden.
(bisher)

Holger
Site Admin
Posts: 3470
Joined: Mon May 19, 2008 7:10 pm
Location: Hessen, Germany

Re: Templates konfigurabel

Post by Holger » Tue Oct 24, 2017 4:59 pm

frase wrote:Aber eines habe ich jetzt gelöst.
Wenn ich in der stylesheet.css als einzige Anweisung "@import url(stylesheet.css.php);" stehen habe, funktioniert alles super - ohne beim Tiny die init.php ändern zu müssen.
Mag sein, dass das funktioniert. Aber trotzdem wird stylesheet.css.php so nicht gecached.

Will man die stylesheet.css.php "ordentlich" cachen, wird das ziemlich aufwendig werden.
Einfach ein paar Header setzen, wird nicht die Lösung sein. Ein fest eingestellter Gültigkeitszeitraum fällt z.B. aus (oder bleibt ein fauler Kompromiss), weil Änderungen in der Templatekonfiguration dann nur nach einem Refresh sichtbar werden...

Insgesamt gefällt mir die Lösung so überhaupt nicht :( .
Wie wäre folgender Ansatz:
dein Konfigurationsskript erzeugt, auf Basis der stylesheet.css.php einfach eine normale stylesheet.css - Datei :?:

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: Templates konfigurabel

Post by frase » Tue Oct 24, 2017 5:13 pm

Holger wrote:dein Konfigurationsskript erzeugt, auf Basis der stylesheet.css.php einfach eine normale stylesheet.css - Datei
Tja, das wollte ich ursprünglich ganz am Anfang. Bin aber jämmerlich an mangelnden PHP-Kenntnissen gescheitert.

Jetzt haben wir ja schon (in einem feature-branch) die Kontrolle durch den Core.
Da muss der Vorlagen-Gestalter nicht unbedingt ein PHP-Profi sein, um ein konfigurierbares Template zu bauen.
Das ist eigentlich besser und einfacher so.
Macht man es mit einer index.php und/oder admin.php im Template, dann haben wir schon wieder eine Art Plugin. Von mir eigentlich gar nicht gewollt.

Andererseits:
Generiert man den variablen Teil komplett in template.htm - was ja auch ginge - dann wird ja auch nicht gecached und die Seite muss mit dem Style auch jedesmal aktualisiert werden. (verstehste: alle variablen Stylesheets immer im Header mitschicken).

Ich muss mal noch a bissl nachdenken.

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Templates konfigurabel

Post by cmb » Tue Oct 24, 2017 5:19 pm

Holger wrote:Will man die stylesheet.css.php "ordentlich" cachen, wird das ziemlich aufwendig werden.
Einfach ein paar Header setzen, wird nicht die Lösung sein. Ein fest eingestellter Gültigkeitszeitraum fällt z.B. aus (oder bleibt ein fauler Kompromiss), weil Änderungen in der Templatekonfiguration dann nur nach einem Refresh sichtbar werden...
Das ist doch aber zumindest bei vielen Webservern das nomale Verhalten bzgl. CSS.
Holger wrote:Wie wäre folgender Ansatz:
dein Konfigurationsskript erzeugt, auf Basis der stylesheet.css.php einfach eine normale stylesheet.css - Datei :?:
Erscheint auf jeden Fall sinnvoll, wenn man diesen Weg (PHP in Styleheets) einschlagen will.
frase wrote:Generiert man den variablen Teil komplett in template.htm - was ja auch ginge - dann wird ja auch nicht gecached und die Seite muss mit dem Style auch jedesmal aktualisiert werden. (verstehste: alle variablen Stylesheets immer im Header mitschicken).
Im <head>, ja. Aber das sollte kein besonderes Problem sein, wenn das <style> Element nicht zu groß wird (Stichwort custom properties).
Christoph M. Becker – Plugins for CMSimple_XH

Holger
Site Admin
Posts: 3470
Joined: Mon May 19, 2008 7:10 pm
Location: Hessen, Germany

Re: Templates konfigurabel

Post by Holger » Tue Oct 24, 2017 5:35 pm

frase wrote:Andererseits:
Generiert man den variablen Teil komplett in template.htm - was ja auch ginge - dann wird ja auch nicht gecached und die Seite muss mit dem Style auch jedesmal aktualisiert werden. (verstehste: alle variablen Stylesheets immer im Header mitschicken).
Also, ich schreibe gerade an meinem Cache-Plugin, was auch dynamisch generierte Seiten cachen kann.
Bei einem statischen Stylesheet sende ich einfach den Zeitstempel der Datei als URL-Paramenter und setze die "Verfallszeit" auf ein Jahr.
Wird die Datei geändert, ändert sich der URL-Parameter und die Datei wird neu gelesen und erneut gecached. Gesendet wird die CSS-Datei dann per PHP-Script mit den entsprechenden Headern.
Bei dynamischen Seiten ist es komplizierter: hier speichere ich einen Hash, der aus dem Inhalt generiert wird. Den sende ich dann als E-Tag. Bei der nächsten Anfrage schickt der Client das E-Tag mit, was dann serverseitig verglichen wird. Stimmt es überein, wird nur ein 304 not modified - Header geschickt und der Browser nimmt die Seite aus seinem Cache. Wenn nicht, wird die Seite dann komplett gesendet.

Christoph hatte schonmal den Entwurf des Plugins bekommen. Aber, wie gesagt, momentan arbeite ich tatsächlich auch aktiv daran und es wird die nächsten Tage als erste Beta hier zur Verfügung stehen. Auf jeden Fall wird damit aber eine *.css.php nicht zu handhaben sein.
cmb wrote:Das ist doch aber zumindest bei vielen Webservern das nomale Verhalten bzgl. CSS.
Ja. Ein fauler Kompromiss eben. Wenn man sich damit zufrieden gibt, muss man über eine anständige Cache - Lösung nicht weiter nachdenken.
Einfach alles per Header auf einen Tag Gültigkeitszeitraum setzen und gut ;) .
frase wrote:Jetzt haben wir ja schon (in einem feature-branch) die Kontrolle durch den Core.
Da muss der Vorlagen-Gestalter nicht unbedingt ein PHP-Profi sein, um ein konfigurierbares Template zu bauen.
Und was spricht dagegen, dort auch ein statisches stylesheet.css aus der stylesheet.css.php zu generieren :?:

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: Templates konfigurabel

Post by frase » Tue Oct 24, 2017 5:43 pm

cmb wrote:Im <head>, ja. Aber das sollte kein besonderes Problem sein, wenn das <style> Element nicht zu groß wird (Stichwort custom properties).
Hm, costum properties machen wir in ein paar Jahren - wenn es keinen IE11 mehr gibt.

Aber nochmal nachgedacht.
Ich habe das schon gesehen (z.B. bei WP-Seiten), dass mit der Seite komplette Style-Orgien mitgeschickt werden (im Header).
Im fhs-simple hätte die stylesheet.css.php ca. 15-16 kB. Ob das nun alles im header steht, oder geladen werden muss - macht das einen großen Unterschied? Gut, ein Request mehr ...
Vielleicht ist das cachen der CSS-Datei gar nicht so wild wichtig?

Denn prinzipiell gefällt mir die Geschichte mit php-in-css ziemlich gut.
Is so schön einfach. Das kann (fast) jeder.

Post Reply