Folgender Code-Abschnitt aus der zu importierenden ICAL-Kalender-Datei (generiert durch Googles Export-Funktion)
BEGIN:VEVENT
DTSTART;VALUE=DATE:20100906
DTEND;VALUE=DATE:20100907
RRULE:FREQ=DAILY;WKST=SU;UNTIL=20100910
[... gekürzt ...]
SUMMARY:some summary text
END:VEVENT
Es gibt kein direktes Äquivalent in Contaos Event-Bearbeiten-Formular für Wiederholungstermine, bei denen ein Endtermin (UNTIL) gesetzt ist (wie sinnvoll eine tägliche Wiederholung vs. einem Termin nur mit "von-bis" ist, sei mal dahingestellt; aber es könnten ja auch andere Frequenzen gesetzt werden).
Da in der exportieren ICAL-Datei wegen eines gesetzten Enddatums (UNTIL) kein COUNT angegeben wird, wird in Z. 830 in CalenderImport.php
830: $arrFields['recurrences'] = (array_key_exists('COUNT', $rrule)) ? $rrule['COUNT'] : 0;
recurrences auf 0 gesetzt, was zur Folge hat, dass der Event für alle Zeiten im Contao-Kalender wiederholt wird.
Solange in Contao die Möglichkeite der Angabe eines Enddatums nicht implementiert wird, sehe ich auf die Schnelle nur zwei Möglichkeiten hier:
- Programmiere eine Logik, die aus
UNTIL und FREQ erschließt, wie viele Wiederholungen in $arrFileds['recurrences'] zu setzen ist.
- Ignoriere alle Wiederholungen (als temporären Workaround) bei Wiederholungsterminen, wenn
UNTIL gesetzt ist.
Die 2. Möglichkeit kann leicht durch Änderung der Z. 827 von
827: if (is_array($rrule))
in
827: if (is_array($rrule) && !array_key_exists('UNTIL', $rrule))
erreicht werden -- das verhindert das Parsen der Wiederholungseinstellungen des Events. Meiner Meinung nach ist das Ignorieren eines nicht implentierten Features (UNTIL) besser als eine fehlerhafte Umsetzung.
Folgender Code-Abschnitt aus der zu importierenden ICAL-Kalender-Datei (generiert durch Googles Export-Funktion)
Es gibt kein direktes Äquivalent in Contaos Event-Bearbeiten-Formular für Wiederholungstermine, bei denen ein Endtermin (UNTIL) gesetzt ist (wie sinnvoll eine tägliche Wiederholung vs. einem Termin nur mit "von-bis" ist, sei mal dahingestellt; aber es könnten ja auch andere Frequenzen gesetzt werden).
Da in der exportieren ICAL-Datei wegen eines gesetzten Enddatums (
UNTIL) keinCOUNTangegeben wird, wird in Z. 830 inCalenderImport.phprecurrencesauf 0 gesetzt, was zur Folge hat, dass der Event für alle Zeiten im Contao-Kalender wiederholt wird.Solange in Contao die Möglichkeite der Angabe eines Enddatums nicht implementiert wird, sehe ich auf die Schnelle nur zwei Möglichkeiten hier:
UNTILundFREQerschließt, wie viele Wiederholungen in$arrFileds['recurrences']zu setzen ist.UNTILgesetzt ist.Die 2. Möglichkeit kann leicht durch Änderung der Z. 827 von
in
erreicht werden -- das verhindert das Parsen der Wiederholungseinstellungen des Events. Meiner Meinung nach ist das Ignorieren eines nicht implentierten Features (
UNTIL) besser als eine fehlerhafte Umsetzung.