rdrp / flarum-forms
Erstelle Formulare/Umfragen (wie Google Forms), eingebettet in einen Beitrag. Antworten nur für Ersteller & ausgewählte Gruppen sichtbar.
Package info
Language:JavaScript
Type:flarum-extension
pkg:composer/rdrp/flarum-forms
Requires
- flarum/core: ^1.8.0
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-21 10:55:30 UTC
README
Erstelle Formulare/Umfragen (im Stil von Google Forms) und bette sie direkt in einen Beitrag ein. Das Formular ist klar als Formular sichtbar. Die Antworten sehen nur der Ersteller, Administratoren und ausgewählte Gruppen.
Funktionen
- Composer-Button „Formular einfügen" mit Formular-Builder
- Feldtypen: Kurztext, Absatz, Einzelauswahl (Radio), Mehrfachauswahl (Checkbox), Dropdown, Datum
- Pflichtfelder (client- und serverseitig geprüft)
- Sichtbarkeit der Antworten pro Formular: Ersteller + Admins immer, zusätzlich frei wählbare Gruppen
- Optional mehrfaches Absenden pro Nutzer
- Auswertungs-Ansicht als Tabelle + CSV-Export
So funktioniert die Einbettung
Der Builder legt das Formular über die API an und fügt in den Beitragstext ein Tag ein:
[FORM id=42]
Beim Anzeigen des Beitrags wird an dieser Stelle das echte Formular gerendert (kein separater Bereich, keine Tarnung als normaler Beitrag – das Formular ist als Formular erkennbar).
Installation
composer require dustin/flarum-forms php flarum migrate php flarum cache:clear
Aus dem Quellcode bauen (JS)
Das js/dist/ wird beim Veröffentlichen mitgeliefert. Zum Selbstbauen:
cd js npm install npm run build # oder: npm run dev (Watch-Modus)
Sicherheit / Datenschutz
- Die Sichtbarkeit der Antworten wird serverseitig über eine Policy (
viewResponses) erzwungen – nicht nur im Frontend. - Das Serializer-Feld
visibleGroupIdswird nur an Berechtigte ausgeliefert. - Antworten sind an den eingeloggten Nutzer gebunden; Gäste können nicht absenden.
Datenmodell
dustin_forms: Formular-Definition (Titel, Felder als JSON, sichtbare Gruppen,allow_multiple)dustin_form_responses: eine Zeile pro Antwort (form_id,user_id,dataals JSON)
Lizenz
MIT