Skip to content

9.0.0-beta6 – Visual Form Builder (Beta)

Choose a tag to compare

@skerbis skerbis released this 08 May 19:10
· 135 commits to main since this release

⚠️ 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, addToggleCheckboxField etc. bleiben dem direkten PHP-Code vorbehalten

🔁 Flex-Repeater Defaults aktualisiert

  • collapsed: default jetzt false (vorher true)
  • first_open: default jetzt false (vorher true)
  • copy_paste: default jetzt true (vorher false)
  • confirm_delete: default jetzt true (vorher false)
  • open: neue Option (default true) 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:

  1. 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
  2. Flex-Repeater mit neuen Defaults
    • Bestehende Module ueberpruefen, falls Defaults dort implizit angenommen wurden (jetzt ggf. explizit setzen)
    • Speicher-Verhalten unveraendert?
  3. Tabs (addTabElement) auf Top-Level – funktionieren wie bisher?
  4. 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)

📜 Voller Changelog

9.0.0-beta5...9.0.0-beta6