Repository navigation
9.0.0-beta6 – Visual Form Builder (Beta)
⚠️ Beta-Release
Dies ist eine Beta-Version und nicht fuer den produktiven Einsatz auf Live-Systemen gedacht. Bitte ausgiebig auf Test- und Stagingsystemen ausprobieren und Feedback ueber die Issues einreichen.
Highlights
🆕 Visual Form Builder (Backend)
Eine neue Backend-Seite Form Builder unter mform/formbuilder erlaubt es, MForm-Module visuell zusammenzuklicken und liefert direkt den fertigen PHP-Code – sowohl fuer den Modul-Input als auch fuer den Modul-Output (Variablen-Vorbereitung).
- Drag&Drop oder Click-to-Add aus einer kuratierten Palette
- Sofort-Vorschau des generierten Codes inkl. korrekter
use-Statements - Tab-, Fieldset- und Flex-Repeater-Wrapper als Top-Level-Container
- Repeater bis zu 2 Ebenen verschachtelbar
- Output-Code mit Kommentaren, Variablennamen aus Labels (slugify) und Hinweisen pro Feldtyp
- TinyMCE-Profil-Auswahl fuer Textarea-Felder (sofern
tinymce-Addon installiert) - Custom Links werden ueber
MFormOutputHelper::createLinkData()normalisiert (Issue #357) - Slot-ID-Warnung, sobald die klassische REDAXO-Modul-Slot-Grenze von 20 ueberschritten wird
- Hinweis auf kuratierte Feldauswahl: der Builder dient einem einfachen Einstieg, Spezialfelder wie
addRadioImgField,addColorSwatchField,addToggleCheckboxFieldetc. bleiben dem direkten PHP-Code vorbehalten
🔁 Flex-Repeater Defaults aktualisiert
collapsed: default jetztfalse(vorhertrue)first_open: default jetztfalse(vorhertrue)copy_paste: default jetzttrue(vorherfalse)confirm_delete: default jetzttrue(vorherfalse)open: neue Option (defaulttrue) zur Steuerung der Repeater-Toolbar- Doku in docs/07_repeater.md entsprechend angepasst
🐛 Fixes
- Form Builder: Drag&Drop-Sync-Probleme (Ghost-Eintraege nach Loeschen) behoben
- Form Builder: korrekte Argumentreihenfolge fuer
addTextField/addTextAreaField/addSelectField - Form Builder: Newlines/Carriage Returns in Labels und Notices erzeugen jetzt gueltigen PHP-Code
- Form Builder: Clipboard-Copy mit
execCommand-Fallback fuer non-secure Contexts - Form Builder: Drop-Constraints (Tab/Fieldset only Top-Level, Repeater-Subtree-Tiefe) jetzt durchgehend in allen Pfaden (Drag, Click, Paste)
⚠️ Breaking
- PHP-Mindestversion ist jetzt
>=8.0(vorher>7.4).str_starts_with()wird ohnehin im gesamten Code verwendet.
🧪 Was bitte testen
Wir freuen uns ueber Tests in folgenden Bereichen:
- Visual Form Builder
- Module zusammenklicken, generierten Code in ein neues REDAXO-Modul kopieren und speichern
- Eingabe + Ausgabe gegeneinander auf Konsistenz pruefen
- Repeater (auch verschachtelt), Tabs, Fieldsets ausprobieren
- Custom-Link / Custom-Link-Multiple / Linklist im Output
- Slot-ID-Warnung bei mehr als 20 Feldern
- Flex-Repeater mit neuen Defaults
- Bestehende Module ueberpruefen, falls Defaults dort implizit angenommen wurden (jetzt ggf. explizit setzen)
- Speicher-Verhalten unveraendert?
- Tabs (
addTabElement) auf Top-Level – funktionieren wie bisher? - Migration auf PHP 8.0+ – Module die noch unter 7.4 liefen entsprechend anheben.
Bekannte Einschraenkung: Tabs in Repeatern/Fieldsets/Modals werden noch nicht unterstuetzt – siehe #401.
🛣️ Roadmap-Hinweis
Fuer 9.1 sind u.a. geplant:
- DOM-Modernisierung mit
\Dom\HTMLDocument(PHP 8.4) (#402) - Bootstrap-Tabs durch ID-freie Tab-Implementierung ersetzen → Tabs ueberall einsetzbar (#401)