| Zusammenfassung | Discourse Kalender und Events fügt dynamische und interaktive Kalender- und Event-Funktionen zu deiner Discourse-Seite hinzu. | |
| Installationsanleitung | Dieses Plugin ist im Discourse-Kern enthalten. Es ist nicht erforderlich, das Plugin separat zu installieren. |
Aktivieren von Kalender und Events
Das Plugin „Kalender und Events“ kann entweder über den Schalter oder über die Einstellungen aktiviert werden, die beide auf der Seite admin/plugins erreichbar sind:
Funktionen
Wie nicht anders zu erwarten, fügt Discourse Kalender und Events sowohl Kalender- als auch Event-Funktionen zu deiner Discourse-Seite hinzu. Damit kannst du individuelle Topic-Kalender erstellen, um wichtige Anlässe oder Zeitpläne zu verfolgen, Kalender in Kategorien anzeigen, einen Feiertagskalender für Urlaube, Abwesenheiten oder Krankstage hinzufügen, interaktive Event-Topics erstellen sowie eine einfach zugängliche Kalenderübersicht aller bevorstehenden Events anzeigen.
Kalender
Individuelle Kalender können in mehreren Topics erstellt werden, und diejenigen, denen du höhere Sichtbarkeit verleihen möchtest, können über der Topic-Liste einer Kategorie angezeigt werden.
Detailliertere Informationen zur Erstellung und Nutzung von Kalendern findest du unter:
Events
Die Event-Funktion ermöglicht das Einfügen interaktiver Elemente in Topics, mit denen deine Mitglieder sich zur Teilnahme oder zum Besuch der Aktivitäten deiner Community anmelden können. All dies wird in einem eigenen, seitenweiten Kalender zusammengefasst, mit der Option, einen einfach zugänglichen Link zu deinem Navigationsmenü hinzuzufügen. Weitere Informationen zur Erstellung und Nutzung dieser Funktion findest du unter:
Dies ist nicht mit dem Events-Plugin von Pavilion zu verwechseln (beachte die Mehrzahl)
Kalender-Einstellungen
| Name | Beschreibung |
|---|---|
| calendar enabled | Aktiviert das discourse-calendar-Plugin. Dies fügt die Unterstützung für ein [calendar][/calendar]-Tag im ersten Post eines Topics hinzu. |
| holiday calendar topic id | Topic-ID des Urlaubs-/Abwesenheitskalenders für Mitarbeiter. |
| holiday status emoji | Definiert das Emoji, das für den Urlaubsstatus verwendet wird. |
| delete expired event posts after | Posts mit abgelaufenen Events werden automatisch nach (n) Stunden gelöscht. Setze auf -1, um das Löschen zu deaktivieren. |
| all day event start time | Events, für die keine Startzeit angegeben ist, beginnen zu dieser Zeit. Format ist HH:mm. Für 6:00 Uhr morgens gib 06:00 ein. |
| all day event end time | Events, für die keine Endzeit angegeben ist, enden zu dieser Zeit. Format ist HH:mm. Für 6:00 Uhr abends gib 18:00 ein. |
| calendar categories | Zeigt einen Kalender oben in einer Kategorie an. Erforderliche Einstellungen sind categoryId und postId. z. B.: categoryId=6;postId=453[1] Weitere gültige Einstellungen: tzPicker[2], weekends[3] und defaultView[4]. |
| calendar categories outlet | Ermöglicht das Ändern des Ausgabeelements, das den Kategorienkalender anzeigen soll. |
| working days | Setze Arbeitstage. Du kannst die Verfügbarkeit einer Gruppe mit dem timezones-Tag in einem Post anzeigen, z. B.: [timezones group=admins][timezones] |
| working day start hour | Startzeit der Arbeitszeit. |
| working day end hour | Endzeit der Arbeitszeit. |
| close to working day hours extension | Setze die Erweiterung der Arbeitszeit, um die Zeitzonen hervorzuheben. |
| calendar automatic holidays enabled | Setzt den Urlaubsstatus automatisch basierend auf der Region eines Benutzers (Hinweis: Du kannst bestimmte automatische Feiertage in den Plugin-Einstellungen deaktivieren) |
| map events title | Ordnet den Titel des Seitenleistenkalenders basierend auf der Kategorie zu. Standardmäßig “Bevorstehende Events” |
Event-Einstellungen
| Name | Beschreibung |
|---|---|
| discourse post event enabled | Aktiviert die Event-Funktionen. Hinweis: calendar enabled muss ebenfalls aktiviert sein. |
| discourse post event allowed on groups | Gruppen, die Events erstellen dürfen. |
| displayed invitees limit | Begrenzt die Anzahl der angezeigten Eingeladenen bei einem Event. |
| display post event date on topic title | Zeigt das Datum des Events nach dem Topic-Titel an. |
| use local event date | Verwendet das lokale Datum nach dem Topic-Titel statt der relativen Zeit. |
| discourse post event edit notifications time extension | Erweitert (in Minuten) den Zeitraum nach dem Ende eines Events, in dem going-Eingeladene weiterhin über Änderungen im Originalpost benachrichtigt werden. |
| discourse post event allowed custom fields | Ermöglicht es jedem Event, den Wert von benutzerdefinierten Feldern festzulegen. |
| events calendar categories | Zeigt einen Event-Kalender oben in einer Kategorie an. |
| sort categories by event start date enabled | Aktiviert das Sortieren von Kategorie-Topics nach Event-Startdatum. |
| disable resorting on categories enabled | Ermöglicht Kategorien, die Möglichkeit für Benutzer, nach der Event-Kategorie zu sortieren, zu deaktivieren. |
| sidebar show upcoming events | Zeigt den Link zu bevorstehenden Events in der Seitenleiste unter „Mehr“ an. Erfordert post event enabled |
| map events to color | Weist einer angegebenen Kategorie oder einem Tag eine Event-Farbe zu |
![]()
Der Endpunkt
discourse-post-event/events.jsonhat nun einen zusätzlichen Parameter, um zwischen einfacher und detaillierter Antwort zu wechseln. Um die detaillierte Antwort zu erhalten, füge?include_details=truehinzu:
/discourse-post-event/events.json?include_details=true
Erstellen von Events über die API
Du kannst Events über POST /posts.json mit [event][/event] BBCode im raw-Feld erstellen. Hier sind die Details zur Einrichtung deiner API-Anfrage:
- Verwende
POST /posts.jsonmit demraw-Parameter - Event-Syntax:
[event start="2024-05-10 20:00" status="public" timezone="America/Vancouver" end="2024-05-10 21:30" allowedGroups="trust_level_0"]\n[/event] - Ein wörtlicher
\n-Zeilenumbruch ist erforderlich zwischen öffnendem und schließendem Tag - Doppelte Anführungszeichen müssen bei der Verwendung von JSON escaped werden (
\") - Das API-Benutzerkonto muss die Berechtigung zum Erstellen von Events haben (Admin oder eine Gruppe mit Event-Erstellungsberechtigungen)
- Setze die Kategorie über den
category-Parameter, indem du die ID der Kategorie als Wert übergibst.
Livestream-Events
Für Live-Events verwende die Livestream-Funktionalität, damit Mitglieder ein Event ansehen und gleichzeitig im Chat teilnehmen können.
Ein Livestream-Event umfasst:
- Einen Videostream (z. B. über YouTube)
- Ein Kalender-Event unter Verwendung von Discourse Calendar and Events
- Einen begleitenden Chat-Kanal, der automatisch für das Event erstellt wird
Voraussetzungen für Livestream-Events
Um Livestream-Events zu nutzen, muss chat enabled aktiviert sein, da Livestream einen Chat-Kanal für dein Event erstellt, zusätzlich zu discourse post event enabled und calendar enabled.
Erstellen eines Livestream-Events
Um ein Livestream-Event zu erstellen:
- Öffne ein neues Topic.
- Wähle das +-Symbol in der Composer-Werkzeugleiste und klicke auf Event erstellen (falls das Event nicht bereits zu deinem Topic hinzugefügt wurde).
- Füge den Link zum Event-Video (z. B. eine YouTube-URL) in das Feld für Ort/URL ein.
- Schalte „Livestream“ ein.
Du wirst dann sehen, dass das Event und der Livestream erstellt wurden, zusammen mit einem begleitenden Chat-Kanal auf der rechten Seite.
Sobald ein Benutzer auf Teilnahme beim Event klickt, tritt er automatisch dem Chat-Kanal bei und kann an der Unterhaltung teilnehmen!
Livestreamen von Zoom-Webinaren
Du kannst Livestream nutzen, um Zoom-Webinare direkt in Discourse zu hosten, sodass Mitglieder das Event ansehen und im begleitenden Chat-Kanal teilnehmen können, ohne deine Community zu verlassen.
Voraussetzungen für Zoom-Webinare
Zusätzlich zu den Livestream-Voraussetzungen musst du auch die folgenden Einstellungen konfigurieren:
- Schalte
livestream zoom enabledein - Gib deinen Zoom Meeting SDK-Schlüssel in der Einstellung
livestream zoom sdk keyein - Gib dein Zoom Meeting SDK-Geheimnis in der Einstellung
livestream zoom sdk secretein
So erhältst du den Zoom Meeting SDK-Schlüssel und das Geheimnis:
-
Gehe zu marketplace.zoom.us, klicke auf Entwickeln und dann auf App erstellen.
-
Wenn nach der Art der App gefragt wird, wähle General App und klicke auf Erstellen.
-
Kopiere auf der Seite App-Anmeldeinformationen der App die Client-ID (SDK-Schlüssel) und das Client-Geheimnis (SDK-Geheimnis).
-
Aktiviere unter Einbetten die Berechtigung Meeting SDK.!Enabling the Meeting SDK permission in the Zoom app.|690x421
-
Gehe in deinem Discourse zu Admin → Alle Site-Einstellungen und gib die Werte aus Schritt 3 in
livestream zoom sdk keyundlivestream zoom sdk secretein.
Damit das Zoom-Webinar korrekt in Discourse funktioniert:
-
Das Webinar sollte keine Registrierung oder einen Zugangscode erfordern.
-
Deaktiviere den eingebauten Chat von Zoom, um sicherzustellen, dass alle Diskussionen im einzigen Discourse-Chat-Kanal stattfinden, damit der Chat an einem Ort bleibt und die Unterhaltung nach dem Ende des Webinars fortgesetzt werden kann.
Erstellen eines Livestream-Events für ein Zoom-Webinar
Um ein Livestream-Event für dein Zoom-Webinar zu erstellen:
- Öffne ein neues Topic, wähle das +-Symbol und klicke auf Event erstellen.
- Füge deinen Zoom-Webinar-Link (z. B.
https://zoom.us/``...) in das Feld URL/Ort ein. - Schalte Livestream ein.
- Gib den Event-Namen, die Startzeit, die Endzeit und andere Event-Details nach Wunsch ein.
- Poste das Topic.
Wie bei anderen Livestream-Events wird auch dieses Event mit einem begleitenden Discourse-Chat-Kanal erstellt, dem Mitglieder automatisch beitreten, sobald sie sich als „Teilnahme“ angemeldet haben.
Member-Erfahrung
So erleben deine Mitglieder das Webinar:
Vor dem Event
Ein Zoom beitreten-Button wird 30 Minuten vor Eventstart angezeigt. Außerhalb dieses Zeitfensters ist der Button deaktiviert und zeigt eine Meldung an, wann er verfügbar sein wird.
Während des Events
Sobald Mitglieder auf Zoom beitreten klicken, wird das Webinar auf der Topic-Seite geladen (oder, falls der Host das Event noch nicht gestartet hat, müssen die Mitglieder warten, bis dies geschieht, um das Video zu sehen).
Die Audioverbindung wird beim Beitreten zum Webinar nicht automatisch hergestellt; Teilnehmer müssen auf das Audio-Symbol in der Zoom-Werkzeugleiste klicken oder tippen, um eine Verbindung herzustellen. Dies ist eine Einschränkung des Zoom SDK und kann nicht geändert werden.
Auf Mobilgeräten öffnet sich das Webinar in einer Vollbild-Zoom-Ansicht (die auch auf dem Desktop durch Hinzufügen von /zoom zum Ende der Event-Topic-URL zugänglich ist) mit einem schwebenden Chat-Button, auf den sie tippen können, um während des Events ein Chat-Overlay-Panel zu öffnen.
Nach dem Event
Der Zoom beitreten-Button wird 10 Minuten nach der Event-Endzeit ausgeblendet. Der Chat-Kanal bleibt für Teilnehmer zugänglich, bis du ihn schließt.
Integrationen mit anderen Plugins
Du kannst eine Komponente dieses Plugins mit Right Sidebar Blocks verwenden. Du musst sicherstellen, dass die gewünschte Route in der Right Sidebar Blocks-Komponente aktiviert ist. Der Blockname lautet upcoming-events-list. Historisch gesehen waren zusätzliche Einstellungen im Kalender-Plugin selbst erforderlich, dies wurde jedoch vereinfacht.
So wird der Seitenleistenkalender standardmäßig angezeigt.
Wenn du die Uhrzeit nicht anzeigen möchtest, kannst du einen leeren timeFormat-Wert in der Block-Einstellung der Komponente hinzufügen.
Von uns gehostet? Dieses Plugin ist in unseren Business- und Enterprise-Tiers verfügbar Calendar | Discourse - Civilized Discussion
categoryId ist die Kategorie, über der der Kalender angezeigt wird.
postId ist der Post, in dem du den Kalender mit [calendar][/calendar] platzierst. ↩︎kann einen Zeitzonenauswähler oben rechts im Kalender anzeigen. Standardmäßig false, kann mit tzPicker=true aktiviert werden ↩︎
kann Samstage und Sonntage im Kalender ausblenden. Standardmäßig true. Kann mit weekends=false auf false gesetzt werden. ↩︎
defaultView setzt die Kalenderansicht (Tag, Woche usw.). Kann wie folgt gesetzt werden:
defaultView=agendaDay
defaultView=agendaWeek
defaultView=month (Standard)
defaultView=listNextYear ↩︎

















