Modifier
This is a Demo Site with Custom Banner plugin

Fullcalendar Plugin

Das Fullcalendar-Plugin ist für Grav CMS. Es liest ICS-Kalenderdateien und zeigt Ereignisse in einem monatlichen Kalender-Widget auf Ihren Seiten an – einschließlich monatsspezifischer Bilder (sofern im Kalenderseitenordner verfügbar):

Installation
Die Installation des Fullcalendar-Plugins kann auf zwei Arten erfolgen. Die Installationsmethode GPM (Grav Package Manager) ermöglicht die schnelle und einfache Installation des Plugins mit einem einfachen Terminalbefehl, während die manuelle Methode dies über eine ZIP-Datei ermöglicht.

GPM-Installation (bevorzugt)
Der einfachste Weg, dieses Plugin zu installieren, ist über den Grav Package Manager (GPM) über das Terminal Ihres Systems (auch als Befehlszeile bezeichnet). Aus dem Stammverzeichnis Ihres Grav-Installationstyps:

bin/gpm installiere fullcalendar
Dadurch wird das Fullcalendar-Plugin in Ihrem /user/plugins-Verzeichnis in Grav installiert. Seine Dateien finden Sie unter /your/site/grav/user/plugins/fullcalendar.

Manuelle Installation
Um dieses Plugin zu installieren, laden Sie einfach die Zip-Version dieses Repositorys herunter und entpacken Sie es unter /your/site/grav/user/plugins. Benennen Sie dann den Ordner in fullcalendar um. Sie finden diese Dateien auf GitHub oder über GetGrav.org.

Sie sollten jetzt alle Plugin-Dateien unter haben

/deine/site/grav/user/plugins/fullcalendar
HINWEIS: Dieses Plugin ist eine modulare Komponente für Grav, die Grav und die Fehler- und Problem-Plugins benötigt, um zu funktionieren.

Admin-Plug-in
Wenn Sie das Admin-Plugin verwenden, können Sie die Installation direkt über das Admin-Plugin durchführen, indem Sie die Registerkarte Plugins durchsuchen und auf die Schaltfläche Hinzufügen klicken.

Aufbau
Bevor Sie dieses Plugin konfigurieren, sollten Sie user/plugins/fullcalendar/fullcalendar.yaml nach user/config/plugins/fullcalendar.yaml kopieren und nur diese Kopie bearbeiten.
Beachten Sie, dass bei Verwendung des Admin-Plugins die Datei mit Ihrer Konfiguration namens fullcalendar.yaml im Ordner user/config/plugins/ gespeichert wird, sobald die Konfiguration im Admin gespeichert ist.
Es gibt auch eine einfache Benutzeroberfläche im Admin-Backend, die grundlegende Anpassungen bietet.

Hier ist die Standardkonfiguration und eine Erläuterung der verfügbaren Optionen:

aktiviert: wahr
Farben: "#3a87ad" # siehe zusätzlichen Hinweis zu benutzerdefinierten Farben im Changelog, stellen Sie sicher, dass einfache oder doppelte Anführungszeichen um die Liste herum verwendet werden !
showlegend: false # auf true gesetzt, um Kalenderdateinamen als Legende unter dem Raster anzuzeigen
weekNumbers: false # auf true gesetzt, um die Wochennummern anzuzeigen
cors_api_url: # der Standardwert ist jetzt leer, da der früher verwendete externe Proxy https://cors-anywhere.herokuapp.com/ nicht mehr funktioniert
addJquery: false # Jquery-Asset hinzufügen, falls Ihr Theme dies nicht tut
Verwendungszweck
Nach der Installation und Aktivierung können Sie dieses Plugin verwenden, um ICS-Kalenderdatei(en) zu parsen (diese müssen in Benutzer/Daten/Kalendern gefunden und als Parameter im Plugin-Shortcode eingestellt werden, ohne Pfad!) und Ereignisse aus diesem Kalender anzuzeigen. überall auf Ihrer Website mit diesem Shortcode:


auf der entsprechenden Seite (beachten Sie die doppelten Anführungszeichen " um den Dateinamen - einfache Anführungszeichen " funktionieren nicht!)
Sie können auch absolute URLs für ICS-Dateien bereitstellen. In diesem Fall wird ein CORS-Proxy verwendet, um darauf zuzugreifen.
Zusätzlich können Sie über dem Kalender-Widget ein Bild für den aktuellen Monat anzeigen.
Legen Sie einfach 12 Bilddateien namens 'Januar.jpg', 'Februar.jpg', ... , 'Dezember.jpg' in den Ordner für Ihre Seite, in der der Kalender platziert wird. (Beachten Sie, dass die Bilddateinamen gemäß Ihrer Gebietsschemaeinstellung mit den Monatsnamen übereinstimmen müssen, also verwenden Sie für Gebietsschema: de 'Januar.jpg' ...).
Ab Version 0.2.6 ist es auch möglich, .ics-Kalenderdateien einfach in Ihren Seitenordner zu legen, sie werden aufgenommen und wie in /user/data/calendars verwendet.
Falls Sie nur Kalenderdateien im Seitenordner verwenden, stellen Sie sicher, dass Sie eine leere Verknüpfung einfügen:
[Vollkalender][/Vollkalender]
in Ihrem Seiteninhalt, sonst funktioniert es nicht !
Beachten Sie auch, dass das Plugin ab v 0.2.8 nur funktioniert, wenn Sie die Vorlage calendar.html.twig aus dem Plugin (oder eine modifizierte Kopie in Ihrem Themenordner) für die Kalenderseite verwenden - dies kann manuell oder in das Admin-Backend, indem Sie in der Dropdown-Liste für die Seitenvorlage "Kalender" auswählen.
Außerdem ist zu beachten, dass dieses Plugin darauf angewiesen ist, dass jquery vom Theme geladen wird (die meisten Themes tun dies) - falls Sie ein Theme verwenden, das dies nicht tut, gibt es jetzt (ab v 0.2.10) eine Konfigurationsoption Um dieses Problem zu beheben: Setzen Sie einfach addJquery auf true.

Erweiterte Nutzung
Als Ergänzung zum Standardanwendungsfall gibt es eine elegante Möglichkeit, Ihre .ics-Dateien aus Remote-Kalendern automatisch zu aktualisieren, falls diese auf einem CalDav-Server (z. B. Owncloud, Nextcloud...) gehostet werden:
In diesem Fall können Sie caldav2ics einfach per Cron-Job oder Grav Scheduler verwenden, um Ihre vom Fullcalendar-Plugin angezeigten ics-Dateien automatisch zu aktualisieren, sodass Remote-Kalenderinhalte, die normalerweise in separaten Kalender-Apps (wie Google Kalender oder Lightning) verwaltet werden, automatisch angezeigt werden auf Ihrer Website verbreitet.

Das gleiche gilt, wenn Sie grav-plugin-caldav2ics installieren, das vollständig in Grav integriert ist und ein schönes Admin-Backend zur einfachen Konfiguration hat.

CORS-Probleme:
Ab Anfang 2021 habe ich festgestellt, dass der empfohlene externe CORS-Proxy (herokuapp, siehe oben) für die öffentliche Nutzung nicht mehr funktioniert, siehe diesen Support-Thread. Daher habe ich mich entschieden, einen lokalen CORS-Proxy zu implementieren, der ab v0.2.8 verfügbar ist. Für die meisten Anwendungsfälle sollte die leere Cors-API-URL in den Einstellungen ok sein, nur falls sich Ihre Grav-Installation nicht im Web-Root befindet, müssen Sie dies anpassen.
Hinweis: Die automatisch ausgewertete URL (wird erstellt, wenn die Cors-API-URL leer ist - also beim Aktualisieren unbedingt die alte herokuapp-URL löschen, falls vorhanden) ist normalerweise http://yourdomain/user/plugins/fullcalendar/proxy.php/ was funktioniert, wenn sich die Grav-Installation im Webroot befindet, wenn dies nicht der Fall ist, zB Grav im Unterverzeichnis grav installiert ist, benötigen Sie http://yourdomain/grav/user/plugins/fullcalendar/proxy.php/ .

Credits
Dieses Plugin basiert auf fullcalendar.io, jakubroztocil/rrule und jsical - Javascript-Parser für rfc5545

ToDos
Implementieren von EXDATE/EXRULE-Regelausnahmen
Upgrade inklusive Fullcalendar.io auf Version 5 (aktuell: Version 4)


0 Comments: