Repository navigation
9.0.0
MForm - REDAXO Addon für Modul-Input-Formulare
Version 9.0.0
MForm 9 fasst den neuen FlexRepeater-Standardpfad, die modernisierte Link-/Media-API, neue Feld- und Wrapper-Typen, den visuellen Form Builder sowie umfangreiche Stabilitäts- und Doku-Arbeiten in einem Major Release zusammen. Die Detailhistorie der Betas bleibt unten erhalten; diese Sektion bündelt die 9er Änderungen release-tauglich. Alle Änderungen wurden unter Wahrung der Kompatibilität umgesetzt.
Neu
- Neuer Standardpfad für wiederholbare Inhalte –
addFlexRepeaterElement()etabliert den FlexRepeater als robusten Repeater für REDAXO-Backend-Kontexte, inklusive Drag-and-Drop, stabiler Editor-Initialisierung, Copy/Paste, Aktiv/Inaktiv-Status, Toggle-All und verschachtelten Strukturen.addRepeaterElement()kann weiterhin verwendet werden; bestehende Repeater-Setups funktionieren also weiter und koennen schrittweise auf den neuen FlexRepeater-Pfad umgestellt werden, ohne dass bestehende Module pauschal neu gebaut werden muessen. - Neue Feld- und Wrapper-Typen – hinzugekommen sind u. a.
addConditionalFieldsetArea(),addModalElement(),addColorSwatchField(),addCustomLinkMultipleField()sowie die YForm-Value-Typescustom_link_multiundcolor_swatch. - Modernisierte Link-/Media-Integration – MForm bringt eigene Widgets mit und ersetzt die Systemwidgets. Mit
MFormOutputHelper::createLinkData()/normalizeLinkData(),normalizeRepeaterItems(),useCustomLinkForClassicWidgets(true),addMFormMediaField()und der überarbeiteten Custom-Link-Integration lassen sich klassische Widgets und neue Linkformate einheitlich verarbeiten. - Visueller Form Builder – neue Backend-Seite zum Zusammenklicken von MForm-Modulen mit Live-PHP-Code-Generator, Repeater-/Wrapper-Support und Copy-Funktion für Input- und Output-Code.
MFormOutputfür Frontend-Ausgabe – neuer Fluent-Output-Helper mit Filter-, Sortier-, Gruppen-, Render- und Tag-API sowie Single-Value-Helfern wielinkUrl(),picture(),mediaList(),richtext()undexcerpt().- Template- und Projektintegration –
registerTemplate(),fromTemplate()undapplyTemplate()ergänzen MForm um eine wiederverwendbare Template-Registry für projektweite Defaults.
Verbesserungen
- FlexRepeater funktional ausgebaut – Layout-Steuerung (
horizontal,vertical,inline), Wrapper-Support für Tabs, Collapse, Fieldsets, Inline- und Column-Gruppen, bessere Default-Styles und sauberes Scoping über eigene.mform-Container pro Item. - Link-, Media- und Listen-Widgets deutlich robuster – Imagelist, Medialist, Linklist, Custom-Link und Multi-Link verhalten sich im Repeater und nach Reload konsistenter, inklusive Vorschau, Validierung und Popup-Übernahme.
- Dokumentation, Demos und Backend-Navigation erweitert – neue Einstiegsseite „Was ist neu in MForm 9?“, MFormOutput-Doku, Security-Seite, zusätzliche Demo-Module und konsistentere Backend-Struktur.
- Code-Ausgabe komfortabler – Copy-to-Clipboard ist nun zentralisiert und robust; falls das
code-Addon installiert ist, werden Doku-Codeblöcke und Form-Builder-Code read-only über Monaco dargestellt.
Stabilität und Qualität
- Viele Repeater- und Wrapper-Regressionen behoben – darunter Rendering von Widgets, Readonly-Feldern, Tabs, Collapse, Fieldsets, Legends, Label-HTML, Toggle-Optionen, TinyMCE-/CKE5-Reinit und MBlock-Reindexing.
- Statische Analyse und Codebasis aufgeräumt – Rexstan auf 0 Fehler gebracht,
empty()-Verwendungen bereinigt, veraltete TODOs entfernt und Doku-spezifisches Inline-CSS/JS in eigene Assets ausgelagert. - CI- und Sicherheitsartefakte ergänzt –
SECURITY.mdsowie GitHub-Workflow für Linting, PHP-CS-Fixer und Rexstan sind Teil des 9er Releases.
Hinweise
- Bestehende Module bleiben weitgehend kompatibel; für bestimmte MBlock-Szenarien mit klassischen Link-/Media-Widgets wird
MForm::useCustomLinkForClassicWidgets(true)empfohlen. - Klassische Systemwidgets werden in diesem Kontext durch MForm-Widgets ersetzt.
- Für Repeater-Ausgabe mit Online/Offline-Status ist
MFormRepeaterHelper::decode()der bevorzugte Pfad statt reinemjson_decode().
What's Changed
- Mform 9 :: repeater2 und neue widgets by @skerbis in #396
- Visual Form Builder (Backend) by @skerbis in #400
Full Changelog: 8.1.6...9.0.0