WBCE CMS – Way Better Content Editing.
Du bist nicht angemeldet.
Liebe ExpertInnen
Ich habe schon mehrfach das Modul External Calender (ExtCal) verwendet und finde es sehr praktisch.
Nun scheitere ich aber daran einen öffentlichen Google-Kalender als ics per ExtCal aufzurufen.
Der Beispielkalender des Moduls example.ics wird auf der Seite problemlos dargestellt.
Google-Kalender, die im gleichen Verzeichnis liegen, jedoch nicht. Der entsprechende Abschnitt erscheint leer oder der Browser meldet : "500 - Internal Server Error - Sorry, something went wrong "
Woran könnte das liegen ?
Vielen Dank im Voraus !
Offline
Nur ein vager Gedanke, weil ich das Phänomen letztens bei der Einbettung von MS Teams hatte: Eventuell ist in der URL zum Kalender ein @ enthalten, das vom WBCE-Mail-Outputfilter in (at) umgewandelt wird, und der Aufruf dadurch scheitert?
Code allein macht nicht glücklich. Jetzt spenden!
Offline
Der Direktlink zur ics-Datei lautet bei Google :
https://calendar.google.com/calendar/ic … /basic.ics
Kann man bei ExtCal den Kalenderlink direkt aufrufen ?
Ich habe die Datei jeweils heruntergeladen und in einen WBCE-Ordner kopiert.
In dieser Datei findet sich bei jedem Event-Eintrag eine Zeile wie :
UID:36tdfv49...lgsajq9@google.com
Wie hast du das Problem mit dem @ gelöst ?
Offline
Am besten ist es wahrscheinlich, den Outputfilter zu deaktivieren: Admintools > OPF E-Mail > Filtere E-Mail-Adressen im Text > Deaktiviert
Code allein macht nicht glücklich. Jetzt spenden!
Offline
Den Link kannst du direkt bei den Kalender-URLs mit eintragen.
Das @-Zeichen wird ja erst bei der Ausgabe gefiltert und umgewandelt, lange nachdem das Modul den Kalender geladen hat.
Beim Versuch die URL direkt aufzurufen bekomme ich von Google zurück "400. That’s an error. Die E-Mail-Adresse für diesen iCal-Feed ist ungültig. That’s all we know." - könnte daran liegen, dass in der URL "...Name..." anonymisiert ist. Kannst mir ja mal die echte URL per PM schicken...
Offline
Das Deaktivieren des Outputfilters hat bei mir nichts gebracht.
Ich habe nun herausgefunden, dass es offensichtlich dann nicht funktioniert, wenn man den Standard-Kalender verwendet.
Zusätzliche eigene Kalender im gleichen Account lassen sich tadellos via Direktlink einbinden. Da diese kein @ im Link enthalten, könnte es damit zu tun haben ...
Für mich ist das so eine gute Lösung.
Vielen Dank für eure Hinweise !
Offline
das mit dem at-Zeichen könnte durchaus ein Problem sein, hat dann aber nichts mit dem Output-Filter zu tun sondern damit, wie der Caldav-Client (oder CURL) je nach Serverkonfiguration damit umgeht und die Verbindung zum "Kalender-Server" aufbaut, z.B. die URL einmal zu viel oder zu wenig URL-encodiert. Du könntest mal mit %40 statt dem @ probieren.
Offline
Ah, mir fällt gerade auf, das '@' Zeichen wird als Trenner zwischen Benutzername+Passwort und der eigentlichen URL interpretiert. Wenn der Kalender öffentlich freigegeben ist, dann braucht man zwar keine Zugangsdaten, aber da ist der Parser, der die Kalender-URL zerpflückt nicht schlau genug. Aber mit %40 könnte es gehen, wenn der Kalender-Server das dann wieder richtig decodiert.
Offline
Auch mit %40 funktioniert es leider nicht ...
Offline
Schade. Einen Versuch war's wert. Noch eine einfache Idee, die man probieren könnte: nach https:// ein zusätzliches @ Zeichen einfügen, damit ggf. der URL-Parser dort den Beginn des Host-Teils sucht (wobei ich da jetzt auch nicht so große Hoffnungen rein setzen würde - es wäre nur ein einfacher Workaround, der vielleicht funktionieren könnte).
Das ist aber wahrscheinlich dann eher der Hinweis, dem ich nachgehen sollte:
In dieser Datei findet sich bei jedem Event-Eintrag eine Zeile wie :
UID:36tdfv49...lgsajq9@google.com
Dann stolpert der ical-Parser beim Verarbeiten des Kalendereintrags. Da würde vielleicht ein Update des Parsers helfen - oder eine weitere user-Function, die sich ganz am Anfang der Verarbeitung einklinkt, noch bevor die events geparsed werden. Dann könnte man den UID-String durch was anderes ersetzen, z.B. gegen seinen md5hash, der dann keine Sonderzeichen mehr enthält. Etwas, was an der Stelle eingreift, brauche ich vielleicht demnächst in einem meiner eigenen Projekte. Von daher behalte ich dieses Thema mal mit im Hinterkopf, und vielleicht kommt dann mit der nächsten Version eine Lösung hierfür. Da das aber mit etwas Programmieraufwand verbunden ist, dauert das wohl ein bisschen.
Beitrag geändert von mrbaseman (06.10.2020 14:02:07)
Offline