Designfarben anhand des Datums ändern protostar

  • Hallo in die Runde,


    ich möchte gerne die Farben meines Designs datumsabhängig ändern. Dafür habe ich eine js-Datei erstellt. Allerdings sind hier noch einige Fragen offen. Ich hoffe, ihr wollt mir dabei wieder helfen. Das hat bisher so gut funktioniert. :)


    Im Anhang findet ihr die Datei als txt.


    Meine Fragen:

    1. Kann ich eine Extra-Datei machen, in der die tatsächlichen Daten hinterlegt sind und auf die dann entsprechend zugegriffen wird? Ich möchte gerne mit der Aktualisierung unabhängig von einem festen Zeitpunkt sein.
    2. Kann ich bei festen Daten das Jahr einfach weglassen? Der Nikolaus ist schließlich immer am 6.12..
    3. Muss ich das Datum im Format anpassen? Jetzt habe ich ja einfach dd.mm.yyyy. genommen.
    4. Wie bekomme ich die Datei dann eingebunden? Ich möchte ja gerne die Änderungen, die ich jetzt manuell vorgenommen habe, automatisch laufen lassen.

    Ich freue mich auf eure Antworten! Vielen Dank!

    cnp


    Joomla 3.9.23

    PHP 7.4.13

  • Um es korrekt zu verstehen, möchtest Du ein paar CSS-Angaben ändern?

    Diese sollen z.B. an einem Feiertag anders sein, als an einem normalen Tag?


    Aus Deinem angehängten Beispiel kommt jetzt nicht wirklich zum Vorschein, was Du ändern möchtest.


    Aber wenn meine Vermutung richtig ist, dann wäre es über ein Plugin machbar. Bin mir nicht sicher, ob es etwas fertiges gibt - meine Vermutung eher nicht. Als Anhalt habe ich vor kurzem ein Plugin für den DPCalendar gebaut, welches die Feiertage berechnet und in den Kalender einträgt.

    Hier werden die variablen Feiertage ausgehend vom Ostersonntag berechnet. Bei festen Feiertagen gibt man zwar auch das Jahr an, aber das wird durch das jeweilige Jahr ersetzt.

    Wie es im DPCalendar aussieht, kannst Du hier sehen: https://demo.moorschreber.de/news

  • Mir wurde gesagt, dass ich das über JavaScript realisieren könnte

    Realisieren kann man das auch mit PHP, da muss es nicht zwangsläufig JavaScript sein. Es hängt eben davon ab, wann sich das aktualisieren/ändern soll und welches Datum/Jahr man als Grundlage nimmt.

    Bei dem Plugin, für den Kalender in der Kalenderansicht, bleibt nur Javascript. Es soll auf die Benutzeraktionen im Kalender reagieren, wenn ein neuer Monat, Jahr oder Woche ausgewählt wird.

    je nach Feiertag Änderungen im CSS-Script

    Im Endeffekt macht das Plugin nichts anderes, nur dass es speziell auf den Kalender erstellt ist. Es ermittelt das jeweils ausgewählte Jahr, berechnet damit die Feiertage und fügt im Erfolgsfall im Kalender zusätzliche CSS-Klassen hinzu (so ganz grob beschrieben). Da Du den DPCalendar bereits hast, kannst es ja mal austesten. Funktioniert aber derzeit nur in der Kalenderansicht und nicht in der Blogansicht.

    Wenn man die Lösung hat, dann muss man nur noch das passende Problem finden.

  • Ich stelle fest, dass ich deinen Code nicht verstehe. Dafür bin ich einfach viel zu wenig Programmierer.


    Kannst du mir den folgenden Code bitte erklären?

    Woher nimmst du deine Daten? Und wofür stehen $t, $d, $v?


    Ansonsten unterscheidet sich auch ein grundlegender Ansatz. Bei dir ist die Änderung statisch, wenn ich es richtig sehe. Du hast im Kalender die Feiertage farblich angepasst. Ich möchte gerne eine dynamische Änderung. Bei mir soll sich die Hintergrundfarbe und einige Linienfarben des gesamten Designs abhängig von den Feiertagen ändern. Beispiel: Im Advent war der Hintergrund lila. Jetzt ist er weiß.

  • Bei dem Plugin, für den Kalender in der Kalenderansicht, bleibt nur Javascript. Es soll auf die Benutzeraktionen im Kalender reagieren, wenn ein neuer Monat, Jahr oder Woche ausgewählt wird.

    Jetzt machen deine ganzen Abfragen auch Sinn. Ich hatte mich schon gewundert. :)


    Nochmal zusammengefasst:

    • Ich will die Hintergrundfarbe und einige Linien in der Farbe anpassen.
    • Abhängig sollen die Änderungen von Tagen (Zeiträume) und wenn möglich auch noch Uhrzeiten sein. Die Uhrzeiten wären Spielerei.
    • Den Start der Zeiträume habe ich immer mit Zeitraum1 deklariert und das Ende mit Zeitraum2.

    Vielleicht könnt ihr mir doch bei meinem Ansatz weiterhelfen? Danke!

  • Ok - ich denke so kommen wir nicht weiter. Den Code den Du oben gepostet hast, das ist PHP und bereitet lediglich die im Plugin angegebenen Tage auf. Auf diese wird später per Javascript zugegriffen.


    Um bei Deinem javascript zu bleiben:

    Die Angaben wie const nikolaus = 06.12.jjjj; können nicht funktionieren. So wäre es ein String und die müssen in Anführungszeichen stehen. Die Angabe jjjj kann so auch nicht bleiben, weil es durch ein Jahr ersetzt werden muss.


    Um bei Deinem Script zu bleiben, musst Du das jjjj durch das aktuelle Jahr ersetzen. Ein möglicher Ansatz wäre evtl:

    Wenn man die Lösung hat, dann muss man nur noch das passende Problem finden.