| Zusammenfassung | Discourse Member Application ermöglicht einen strukturierten Bewerbungsprozess für potenzielle Mitglieder, bevor diese Ihrer Discourse-Community beitreten. | |
| Repository-Link | R23DPrinting-group / discourse-member-application · GitLab | |
| Installationsanleitung | So installieren Sie Plugins in Discourse |
discourse-member-application – Ein Vor-Einladungs-Bewerbungssystem für private Communities
discourse-member-application ermöglicht einen strukturierten Bewerbungsprozess für potenzielle Mitglieder, bevor diese Ihrer Discourse-Community beitreten. Bewerber füllen ein anpassbares öffentliches Formular unter /apply aus, Administratoren prüfen die Einreichungen und genehmigen oder lehnen sie ab, und genehmigte Bewerber erhalten automatisch einen privaten Einladungslink.
GitLab: R23DPrinting-group / discourse-member-application · GitLab
Die Geschichte
Ich leite eine private Community, die den Einladungsmodus von Discourse nutzt. Wir verwalteten Mitgliedsanträge manuell – ein Google-Formular, eine Tabelle, manuelles Kopieren und Einfügen von Einladungslinks. Es funktionierte, skalierte aber nicht und fühlte sich von der Community selbst getrennt an.
Ich suchte nach einem Discourse-Plugin, das Vor-Einladungs-Bewerbungen bearbeiten könnte. Ich fand keines, das passte. Also habe ich dieses gebaut.
Demo
Funktionen
Anpassbares Bewerbungsformular
Das Formular wird vollständig über den Reiter „Felder“ im Admin-Bereich erstellt – keine Programmierung erforderlich. Unterstützte Feldtypen: Text, Textarea, Ja/Nein, Radiobutton, Checkbox-Gruppe und Checkbox. Felder unterstützen Beschriftungen, Hinweise, Pflicht/Optional, Aktivieren/Deaktivieren und bedingte Sichtbarkeit (ein Feld wird nur angezeigt, wenn ein anderes Feld einen bestimmten Wert hat).
Admin-Dashboard
Prüfen und verwalten Sie alle Bewerbungen auf einer dedizierten Plugin-Seite. Filtern Sie nach Status (Ausstehend / Genehmigt / Abgelehnt / Einlösbar), suchen Sie nach E-Mail oder Benutzername und blättern Sie durch große Listen. Zeigen Sie vollständige Bewerbungsdetails an, fügen Sie private Admin-Notizen hinzu und genehmigen oder lehnen Sie einzelne oder mehrere Bewerbungen gleichzeitig ab.
Genehmigungsablauf
Die Genehmigung einer Bewerbung generiert eine einmalige Discourse-Einladung und sendet diese per E-Mail an den Bewerber. Eine Ablehnung sendet eine anpassbare Ablehnungs-E-Mail mit optionalem Feedback. Wenn der Bewerber seine Einladung einlöst und ein Konto erstellt, wird der Bewerbungsstatus automatisch auf „Einlösbar“ aktualisiert. Genehmigte Mitglieder können optional automatisch einer Discourse-Gruppe hinzugefügt werden.
Analysen
Der Reiter „Analysen“ zeigt Zusammenfassungsstatistiken (Gesamtanzahl der Bewerbungen, Genehmigungsquote, durchschnittliche Bearbeitungszeit), einen 12-Wochen-Trendverlauf der Einreichungen gegenüber den Genehmigungen und eine Konversions-Trichter von „Eingereicht“ → „Genehmigt“ → „Einlösbar“.
Admin-Benachrichtigungen
Wenn eine neue Bewerbung eingereicht wird, wird eine private Nachricht an konfigurierte Benutzernamen (oder alle Administratoren, wenn das Feld leer gelassen wird) gesendet.
Konfigurierbare UX
- Einleitungstext oben im Formular (unterstützt Markdown)
- Erfolgsseite unter
/apply/successnach der Einreichung mit einer konfigurierbaren Nachricht (unterstützt Markdown) - Schaltfläche „Bewerben, um beizutreten“ auf der Anmeldeseite und der Startseite, die eine Anmeldung erfordert (umschaltbar)
- Ablaufdatum der Bewerbung – automatische Ablehnung ausstehender Bewerbungen nach einer konfigurierbaren Anzahl von Tagen
Bearbeitbare E-Mail-Vorlagen
Sowohl die Bestätigungs-E-Mail bei Einreichung als auch die Ablehnungs-E-Mail können über Admin → Anpassen → E-Mail-Vorlagen bearbeitet werden – keine Code-Änderungen erforderlich.
Sicherheit
Ratenbegrenzung (5 Einreichungen pro IP pro Stunde), Duplikaterkennung (blockiert erneute Einreichungen bei ausstehenden/genehmigten E-Mails oder Benutzernamen sowie bereits registrierte E-Mails/Benutzernamen) und einmalige Einladungen.
Konfiguration
Installation
Fügen Sie Folgendes zu Ihrer /var/discourse/containers/app.yml hinzu:
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://gitlab.com/r23dprinting-group/discourse-member-application.git
Dann neu erstellen:
cd /var/discourse && ./launcher rebuild app
Einrichten Ihres Formulars
Nach der Installation gehen Sie zu Admin → Plugins → Member Application → Felder, um Ihr Bewerbungsformular zu erstellen.
Das Plugin wird mit folgenden Standardfeldern geliefert (alle bearbeitbar oder löschbar):
- Gewünschter Benutzername
- Erzählen Sie uns etwas über sich
- Woher haben Sie von uns gehört?
- Sind Sie aktuell Teil einer anderen ähnlichen Online-Community? (Ja/Nein)
- Wenn ja, welche? (bedingt – wird nur angezeigt, wenn oben „Ja“ ausgewählt ist)
- Offenlegung von Anbietern (Checkbox-Gruppe)
- Bestätigung der Ehrlichkeit (Checkbox – Systemfeld, kann nicht gelöscht werden)
Verwenden Sie die Schaltfläche Feld hinzufügen, um neue Felder zu erstellen. Verwenden Sie die Pfeile nach oben/unten, um die Reihenfolge anzupassen. Um ein Feld bedingt zu machen, bearbeiten Sie es und verwenden Sie den Abschnitt „Nur anzeigen, wenn“, um ein übergeordnetes Feld und einen Auslöser-Wert auszuwählen.
Workflow
- Ein potenzielles Mitglied besucht Ihre Website und klickt auf Bewerben, um beizutreten (oder navigiert direkt zu
/apply) - Es füllt das Formular aus und sendet es ab – kein Konto erforderlich
- Administratoren erhalten eine Benachrichtigung per privater Nachricht
- Ein Administrator prüft die Bewerbung unter Admin → Plugins → Member Application → Bewerbungen
- Der Administrator genehmigt → der Bewerber erhält eine Einladungs-E-Mail mit einem einmaligen Link
- Der Bewerber löst die Einladung ein, erstellt sein Konto, und der Bewerbungsstatus wird auf Einlösbar aktualisiert
Einstellungen
| Name | Beschreibung |
|---|---|
member_application_enabled |
Aktiviert oder deaktiviert das Bewerbungsformular unter /apply |
member_application_notify_usernames |
Durch Komma getrennte Benutzernamen, die bei einer neuen Einreichung per PM benachrichtigt werden sollen. Leer lassen, um alle Administratoren zu benachrichtigen. |
member_application_invite_group |
Gruppenname, der bei der Genehmigung zur Einladung hinzugefügt werden soll (leer lassen, um dies zu überspringen) |
member_application_expiry_days |
Automatische Ablehnung ausstehender Bewerbungen nach dieser Anzahl von Tagen (0 = nie) |
member_application_expiry_notify |
Ablehnungs-E-Mail beim automatischen Verfallen von Bewerbungen senden |
member_application_show_apply_button |
Eine „Bewerben, um beizutreten“-Schaltfläche auf der Anmeldeseite und der Startseite, die eine Anmeldung erfordert, anzeigen |
member_application_apply_button_text |
Beschriftung für die „Bewerben, um beizutreten“-Schaltfläche (Standard: „Bewerben, um beizutreten“) |
member_application_intro_text |
Einleitungstext, der oben im Bewerbungsformular angezeigt wird. Unterstützt Markdown. Leer lassen, um ihn auszublenden. |
member_application_success_message |
Nachricht, die nach der Einreichung auf der Seite /apply/success angezeigt wird. Unterstützt Markdown. |
Hinweise
- Community-unabhängig – alle Standardfeldtexte können über den Reiter „Felder“ konfiguriert werden
- Funktioniert mit dem
login_required-Modus / Einladungsmodus von Discourse - Unter MIT-Lizenz
- Getestet auf Discourse 2026.3.0
Fehler, Pull Requests und Feature-Anfragen sind auf GitLab willkommen.