mph hat eine neue Ressource erstellt: Sprachfile für das Add-on Calendar (AndyB) - Vollständige Übersetzung für das Add-on Calendar (AndyB). Weitere Informationen zu dieser Ressource...
mph aktualisierte Deutsches Sprachfile für das Add-on Calendar (AndyB) mit einem neuen Eintrag: Deutsches Sprachfile für das Add-on Calendar (AndyB) Weitere Informationen zur Aktualisierung...
mph aktualisierte Deutsches Sprachfile für das Add-on Calendar (AndyB) mit einem neuen Eintrag: Deutsches Sprachfile für das Add-on Calendar (AndyB) Weitere Informationen zur Aktualisierung...
Falls jemand eine angepasste Holiday.php für den Kalender (5.5) von AndyB mit deutschen Feiertagen braucht: Code (Text): <?php //######################################## // holiday functions // 0 = sunday // 1 = monday // 2 = tuesday // 3 = wednesday // 4 = thursday // 5 = friday // 6 = saturday //######################################## function holiday_name($y, $m, $d) { if ($m == 1 && $d == 1) // 1. Jan return "Neujahrstag"; if ($m == 1 && $d == 6) // 6. Jan return "Heilige Drei Könige"; if ($m == 2 && $d == 14) // 14. Feb return "Valentinstag"; if ($m == 5 && $d == 1) // 1. May return "Tag der Arbeit"; if ($m == 10 && $d == 3) // 3. Okt return "Tag der Einheit"; if ($m == 10 && $d == 31) // 31. Okt return "Reformationstag, Halloween"; if ($m == 11 && $d == 1) // 1. Nov return "Allerheiligen"; if ($m == 12 && $d == 6) // 6. Dez return "Nikolaustag"; if ($m == 12 && $d == 24) // 24. Dez return "Heiligabend"; if ($m == 12 && $d == 25) // 25. Dez return "1. Weihnachtstag"; if ($m == 12 && $d == 26) // 26. Dez return "2. Weihnachtstag"; if ($m == 12 && $d == 31) // 31. Dez return "Silvester"; //######################## // Ostern bis Fronleichnam //######################## $tage = 60 * 60 * 24; $ostern = easter_date($y); // Ostersonntag ermitteln $mkarfreitag = date("n", $ostern - 2 * $tage); $dkarfreitag = date("j", $ostern - 2 * $tage); if ($m == $mkarfreitag && $d == $dkarfreitag) // Karfreitag return "Karfreitag"; $mosonntag = date("n", $ostern); $dosonntag = date("j", $ostern); if ($m == $mosonntag && $d == $dosonntag) // Ostersonntag return "Ostersonntag"; $momontag = date("n", $ostern + 1 * $tage); $domontag = date("j", $ostern + 1 * $tage); if ($m == $momontag && $d == $domontag) // Ostermontag return "Ostermontag"; $mhimmelfahrt = date("n", $ostern + 39 * $tage); $dhimmelfahrt = date("j", $ostern + 39 * $tage); if ($m == $mhimmelfahrt && $d == $dhimmelfahrt) // Christi Himmelfahrt return "Christi Himmelfahrt"; $mpsonntag = date("n", $ostern + 49 * $tage); $dpsonntag = date("j", $ostern + 49 * $tage); if ($m == $mpsonntag && $d == $dpsonntag) // Pfingstsonntag return "Pfingstsonntag"; $mpmontag = date("n", $ostern + 50 * $tage); $dpmontag = date("j", $ostern + 50 * $tage); if ($m == $mpmontag && $d == $dpmontag) // Pfingstmontag return "Pfingstmontag"; $mfronleichnam = date("n", $ostern + 60 * $tage); $dfronleichnam = date("j", $ostern + 60 * $tage); if ($m == $mfronleichnam && $d == $dfronleichnam) // Fronleichnam return "Fronleichnam"; // return empty if no match for holiday return; } function match_day($year, $month, $day, $day_of_week, $week='') { if (!$week || ($week == '')) { $lastday = date('t', mktime(0, 0, 0, $month, 1, $year)); $temp = (date('w', mktime(0, 0, 0, $month, $lastday, $year)) - $day_of_week) % 7; } else { $temp = ($day_of_week - date('w', mktime(0, 0, 0, $month, 1, $year))) % 7; } if ($temp < 0) { $temp += 7; } if (!$week || ($week == '')) { $target_day = $lastday - $temp; } else { $target_day = (7 * $week) - 6 + $temp; } return ($day == $target_day); } Ich habe die bestehende Holiday.php kopiert, als HolidayD.php gespeichert, abgeändert und die neue Datei in den Einstellungen des Kalenders im Admin-CP konfiguriert.
Die Funktion easter_date erzeugt eine Warnung, wenn das Jahr außerhalb des Bereichs für Unix-Zeitstempel liegt (d.h. typischerweise vor 1970 oder nach 2037 auf 32-bit-Systemen). Das ist mir bewusst. Der Kalender zeigt aber immer nur das aktuelle Jahr, das Jahr danach und das Vorjahr an (momentan 2021, 2022, 2023). Damit dürfte das Limit des Unix-Zeitstempels keine Rolle spielen. Für im Laufe des Jahres 2036 rechne ich damit, dass keine 32 Bit-Server mehr eingesetzt werden. Daher habe ich momentan darauf verzichtet, Jahre kleiner 1970 und größer 2037 auszuschließen. Wer das möchte, kann ein if then von oberhalb der Funktion bis unten zur Bestimmung von Fronleichnam einfügen.
Durch die Bestimmung verschiedener Feiertage über den Abstand zum Ostersonntag (Ostersonntag wird durch easter_date ermittelt) braucht man die Holiday.php nicht regelmäßig an den aktuellen Dreijahreszeitraum anzupassen.