css abhängig von Datum ändern

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: css abhängig von Datum ändern

Beitrag von Miriam »

Jau, das stimmt, nur, daß der 1. Advent nicht immer am 01.12. ist und somit der Advent nicht zwangsläufig am 1. Dezember beginnt.
Denn:
Wikipedia hat geschrieben:Die Adventszeit beginnt mit der ersten Vesper des ersten Adventssonntags und endet am Heiligen Abend mit der ersten Vesper von Weihnachten. Die westliche christliche Adventszeit dauert 22 bis 28 Tage und hat immer vier Sonntage, mit Ausnahme der Bistümer, die am Ambrosianischen Ritus festhalten.*
Wir reden doch nicht von einem Advents- / Weihnachtskalender, der fängt immer am 1.12. an und hat 24 Türchen :-P

Das war die Aufgabenstellung:
uwe.ha hat geschrieben:...zu bestimmten Daten ( 1., 2., 3. ... Advent, Silvester) möchte ich eine andere CSS (mit anderem Hintergrundbild) verwenden.*
* Quelle: http://de.wikipedia.org/wiki/Advent#Die ... r_Liturgie


*muhaha*
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
uwe.ha
Mitglied
Beiträge: 838
Registriert: 18.05.2001 02:00

Re: css abhängig von Datum ändern

Beitrag von uwe.ha »

So, vorab vielen Dank für eure Hilfe!

Ich habe jetzt erstmal das genommen, das ich verstehe, und selbst anpassen kann ... die Variante über rewrite.

@cybercosmonaut
Ich musste in deiner RewriteRule-Zeile noch das "%" in ein "$" ändern, dann hat es geklappt ... ganz alleine drauf gekommen (bei anderer Rule angeguckt) :D
Da ich über die css eigentlich NUR ein Hintergrundbild ändern wollte, habe ich das rewrite direkt auf das Bild angewandt:

Code: Alles auswählen

# bg_men für advent silvester ändern
RewriteCond %{TIME_MON}%{TIME_DAY} >1130
RewriteCond %{TIME_MON}%{TIME_DAY} <1208
RewriteRule ^menue/bg_men.jpg$ /menue/bg_men_advent1.jpg

RewriteCond %{TIME_MON}%{TIME_DAY} >1207
RewriteCond %{TIME_MON}%{TIME_DAY} <1215
RewriteRule ^menue/bg_men.jpg$ /menue/bg_men_advent2.jpg

RewriteCond %{TIME_MON}%{TIME_DAY} >1214
RewriteCond %{TIME_MON}%{TIME_DAY} <1222
RewriteRule ^menue/bg_men.jpg$ /menue/bg_men_advent3.jpg

RewriteCond %{TIME_MON}%{TIME_DAY} >1221
RewriteCond %{TIME_MON}%{TIME_DAY} <1224
RewriteRule ^menue/bg_men.jpg$ /menue/bg_men_advent4.jpg

RewriteCond %{TIME_MON}%{TIME_DAY} >1223
RewriteCond %{TIME_MON}%{TIME_DAY} <0101
RewriteRule ^menue/bg_men.jpg$ /menue/bg_men_x-mas.jpg

RewriteCond %{TIME_MON}%{TIME_DAY} >1231
RewriteRule ^menue/bg_men.jpg$ /menue/bg_men_2014.jpg
Jetzt müsste:
- jeweils zum nächsten Advent das neue Bild angezeigt werden,
- vom 24. - 31.12 das x-mas-Bild und
- ab 1.1. das 2014-Bild.
Richtig?

Funktioniert das beim x-mas mit dem <0101? ... weiß der Server, dass dies der 01.01.2014 ist?
Und reicht >1231, um ab 01.01.2014 das 2014-Bild anzuzeigen?

Ab Mitte Januar mache ich dann manuell wieder das "normale" Bild und kommentiere die Zeilen mit "#" aus.
Vor dem nächsten Advent 2014 passen ich dann die Daten neu an.
Müsste doch so funktinieren, oder?

Die php-Variante schaue ich mir aber auch noch an ... man will ja noch was dazu lernen. Vielleicht setze ich sie dann 2014 ein.

Noch eine ergänzende Frage zum cache.
Bisher hatte ich immer das Problem, dass wenn ich nur die url des Bildes geändert hatte, bei vielen Usern noch das alte Bild angezeigt wurde, weil es im cache gespeichert war. Erst ein reload brachte die Lösung.
Dann hatte ich gelesen, dass ein geänderter Datei-NAME die direkte Ansicht bringt. Dashalb auch die Variante mit den verschiedenen css ... aber wirklich funktioniert hat es auch nicht.
Sorgt denn diese Variante mit dem rewrite für eine sofortige Ansicht des neuen Bildes?

Nochmals VIELEN DANK!
Uwe
Benutzeravatar
Kirk
Supporter
Supporter
Beiträge: 8135
Registriert: 24.05.2010 08:31
Kontaktdaten:

Re: css abhängig von Datum ändern

Beitrag von Kirk »

Warum nimmst du nicht einfach den Adventskalender von Würzi?
uwe.ha
Mitglied
Beiträge: 838
Registriert: 18.05.2001 02:00

Re: css abhängig von Datum ändern

Beitrag von uwe.ha »

Weil es nicht um das Forum geht, sondern um die komplette Website.
Trotzdem Danke für den Hinweis ;-)
Uwe
Benutzeravatar
cYbercOsmOnauT
Ehemaliges Teammitglied
Beiträge: 3820
Registriert: 18.02.2004 23:02
Wohnort: Göttingen
Kontaktdaten:

Re: css abhängig von Datum ändern

Beitrag von cYbercOsmOnauT »

uwe.ha hat geschrieben:@cybercosmonaut
Ich musste in deiner RewriteRule-Zeile noch das "%" in ein "$" ändern, dann hat es geklappt ... ganz alleine drauf gekommen (bei anderer Rule angeguckt) :D
Ups.. Tippfehler.. peinlich, peinlich :cry: :grin:
uwe.ha hat geschrieben:

Code: Alles auswählen

# bg_men für advent silvester ändern
RewriteCond %{TIME_MON}%{TIME_DAY} >1130
RewriteCond %{TIME_MON}%{TIME_DAY} <1208
RewriteRule ^menue/bg_men.jpg$ /menue/bg_men_advent1.jpg

RewriteCond %{TIME_MON}%{TIME_DAY} >1207
RewriteCond %{TIME_MON}%{TIME_DAY} <1215
RewriteRule ^menue/bg_men.jpg$ /menue/bg_men_advent2.jpg

RewriteCond %{TIME_MON}%{TIME_DAY} >1214
RewriteCond %{TIME_MON}%{TIME_DAY} <1222
RewriteRule ^menue/bg_men.jpg$ /menue/bg_men_advent3.jpg

RewriteCond %{TIME_MON}%{TIME_DAY} >1221
RewriteCond %{TIME_MON}%{TIME_DAY} <1224
RewriteRule ^menue/bg_men.jpg$ /menue/bg_men_advent4.jpg

RewriteCond %{TIME_MON}%{TIME_DAY} >1223
RewriteCond %{TIME_MON}%{TIME_DAY} <0101
RewriteRule ^menue/bg_men.jpg$ /menue/bg_men_x-mas.jpg

RewriteCond %{TIME_MON}%{TIME_DAY} >1231
RewriteRule ^menue/bg_men.jpg$ /menue/bg_men_2014.jpg
Jetzt müsste:
- jeweils zum nächsten Advent das neue Bild angezeigt werden,
- vom 24. - 31.12 das x-mas-Bild und
- ab 1.1. das 2014-Bild.
Richtig?

Funktioniert das beim x-mas mit dem <0101? ... weiß der Server, dass dies der 01.01.2014 ist?
Und reicht >1231, um ab 01.01.2014 das 2014-Bild anzuzeigen?
Das mit >1231 und <0101 funktioniert nicht. Warum kannst Du Dir selber ganz einfach erklären. In der RewriteCond werden durch %{TIME_MON}%{TIME_DAY} die zweistellige Monats- und Tageszahl zusammengepappt. Also der 28ste Februar wäre dann 0228. 1231 ist jedoch eine größere Zahl als 0101 (bekanntlich gerade mal einhunderteins). Du könntest aber noch %{TIME_YEAR} davor packen, dann wird die vierstellige Jahreszahl mit verwendet. Das würde dann gehen, denn 20140101 ist nunmal größer als 20131231.
• prof. phpbb-Installation, Reparatur, Rettung nach Hackattacken, sowie PHP/JS Programmierung aller Art
Zend Certified Engineer, Linux Administrator und die Sicherheit von 34 Jahren Programmiererfahrung
• Interesse? Kontakt unter t.birduezen@web-coding.eu
uwe.ha
Mitglied
Beiträge: 838
Registriert: 18.05.2001 02:00

Re: css abhängig von Datum ändern

Beitrag von uwe.ha »

Super Danke, dann hänge ich das Jahr noch davor.
Reicht es die Jahreszahl nur um Silvester einzusetzen, oder soll ich es dann auch bei den Adventen machen?
Uwe
Benutzeravatar
cYbercOsmOnauT
Ehemaliges Teammitglied
Beiträge: 3820
Registriert: 18.02.2004 23:02
Wohnort: Göttingen
Kontaktdaten:

Re: css abhängig von Datum ändern

Beitrag von cYbercOsmOnauT »

Sollte reichen, Du musst es im nächsten Jahr dann eh anpassen.
• prof. phpbb-Installation, Reparatur, Rettung nach Hackattacken, sowie PHP/JS Programmierung aller Art
Zend Certified Engineer, Linux Administrator und die Sicherheit von 34 Jahren Programmiererfahrung
• Interesse? Kontakt unter t.birduezen@web-coding.eu
uwe.ha
Mitglied
Beiträge: 838
Registriert: 18.05.2001 02:00

Re: css abhängig von Datum ändern

Beitrag von uwe.ha »

@ cYbercOsmOnauT:
Hat zum 2. Advent super geklappt ... allerdings steckt bei vielen Usern das alte Bild in cache, wodurch sie das neue - durch die htaccess definierte Bild - nicht, bzw. erst nach "neu laden/aktualisieren/F5" zu sehen bekanem :(
Hast du noch eine Lösung dafür, dass dieses Bild NICHT gecacht wird, bzw. bei einer Änderung immer neu geladen wird?

Ich habe unter
http://www.websitebakers.de/tutorials/t ... eladen.php
eine Lösungsmöglichkeit gefunden. Nur funktioniert die mit deiner httaccess -Lösung?

DANKE!
Uwe
Benutzeravatar
cYbercOsmOnauT
Ehemaliges Teammitglied
Beiträge: 3820
Registriert: 18.02.2004 23:02
Wohnort: Göttingen
Kontaktdaten:

Re: css abhängig von Datum ändern

Beitrag von cYbercOsmOnauT »

Das funktioniert bei meiner Lösung nicht, da nach aussen der Pfad sich ja nicht ändert. Wenn Du mod_expires in Apache hast, könntest Du damit festlegen, dass diese Grafik nur 1h gecacht werden darf. Ich gehe mal davon aus, dass im Verzeichnis menue nur die Adventsgrafiken als Grafik zu finden sind.

Code: Alles auswählen

<ifModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpeg "access plus 1 hours"
</ifModule>
Dies müsste dann in die .htaccess innerhalb des Verzeichnisses menue. Wahlweise könntest Du die RewriteRules anpassen und mit einem 301 belegen. Dann werden die Zugriffe sichtbar umgeleitet. Beispiel aus

Code: Alles auswählen

RewriteRule ^menue/bg_men.jpg$ /menue/bg_men_advent2.jpg
wird dann

Code: Alles auswählen

RewriteRule ^menue/bg_men.jpg$ /menue/bg_men_advent2.jpg [R=301,L]
Das bedeutet, dass wenn in dieser Woche jemand die Grafik bg_men.jpg abfragt, diese Anfrage per HTTP 301 zu bg_men_advent2,jpg umgeleitet wird. Der Pfad für den Browser ändert sich somit und Du hast keine Probleme mit dem Cache.
• prof. phpbb-Installation, Reparatur, Rettung nach Hackattacken, sowie PHP/JS Programmierung aller Art
Zend Certified Engineer, Linux Administrator und die Sicherheit von 34 Jahren Programmiererfahrung
• Interesse? Kontakt unter t.birduezen@web-coding.eu
uwe.ha
Mitglied
Beiträge: 838
Registriert: 18.05.2001 02:00

Re: css abhängig von Datum ändern

Beitrag von uwe.ha »

Ja, ich nutze Expires. Bei jpegs "access plus 1 year", was ja für alle sonstigen Bilder ok ist.

Die Variante mit [R=301,L] hinten dran hängen bringt auch nicht die sofortige Anzeige; ich musste eben 2 x "neu laden", bis es gegriffen hat :(
cYbercOsmOnauT hat geschrieben:Der Pfad für den Browser ändert sich somit und Du hast keine Probleme mit dem Cache.
Das mit dem anderen Dateinamen / anderer Pfad hatte ich auch schon ausprobiert; deshalb zuerst die Variante mit den verschiedenen css-Dateinamen (obwohl sich nur innerhalb der css die Bild-URL geändert hat). Trotzdem wird wohl noch irgenwie gecacht.

Naja, wenn es nicht geht, dann lassen wir es halt so.

Trotzdem Danke! ;-)
Uwe
Antworten

Zurück zu „Coding & Technik“