Repository navigation
10.0.0
MForm 10 ist da 🎉
Danke an alle, die getestet, gemeldet und mitgedacht haben!
Das Update ab 8.x ist ein ganz normales Addon-Update: keine Datenmigration, gespeicherte Werte bleiben, wie sie sind, und alle add*()-Methoden funktionieren wie gewohnt. Ein Backup vorher schadet trotzdem nie.
Was drin steckt
- Flex-Repeater: Kopfzeile mit Zähler und Aktionen, Überschrift je Eintrag (
'Abschnitt {n}: {title}'), einleitender Text, optional ein versioniertes Datenformat mit typisiertem Zugriff überMFormOutput::items(). - Neue Felder:
addTagsField()für Schlagworte als Pills, dazu die HTML5-FelderaddNumberField,addRangeField,addDateField,addDateTimeField,addTimeField,addEmailField,addColorField. - Bedingungen mit mehreren Regeln:
setVisibleIf()mit Liste,addVisibleIf(),setHiddenIf(), wahlweise „alle“ oder „eine genügt“. - Eigene Feldtypen: Fremd-Addons hängen sich über
MForm::registerFieldType()ein. - Form Builder: komplette Palette inklusive Collapse, Accordion, Spalten und Inline, Bedingungs-Editor, Live-Vorschau, JSON-Export/Import, Editor-Auswahl für Textareas.
- A11y-Prüfung für Medien: warnt direkt am Widget, wenn ALT-Text oder andere Metadaten fehlen. Opt-in, global und je Feld steuerbar, kennt MediaPlace und mehrsprachige Metainfo-Felder.
- Linkmap und MediaPlace: sind die Addons installiert, öffnen Link- und Medienfelder deren Overlays, sonst bleiben die klassischen Popups.
- Look & Feel: gemeinsame Design-Tokens, sauberer Light/Dark-Mode, einheitliche Renderpfade für Parser und Repeater.
- Unter der Haube: Parser auf
\Dom\HTMLDocument, Test-Suite mit PHPUnit und Playwright, rexstan Level 8 in der CI.
Im Repeater ließ sich der externe Link bei addCustomLinkMultipleField() nicht abschalten (#459, danke @ynamite).
Und MBlock?
Für wiederholbare Inhalte empfehlen wir den Flex-Repeater. MBlock wird nicht mehr aktiv getestet und bei der Weiterentwicklung nicht mehr berücksichtigt, bestehende MBlock-Module sollten aber weiter funktionieren. Es muss also niemand sofort umbauen. Wer umsteigen möchte, findet unter MForm → MBlock zu Repeater einen Assistenten mit Probelauf, Backup und Rollback, auf der Konsole mform:migrate und mform:lint.
Gut zu wissen
- PHP 8.4 ist Voraussetzung. Wer noch darunter liegt, bleibt auf 9.5.x, das im Branch
9.xweiter gepflegt wird. - Die Umstiegs-Checkliste steht in der Doku unter „Was ist neu?“ (
docs/00_whats_new.md), alle Details imCHANGELOG.md.
Viel Spaß damit, Fehler und Wünsche wie immer gern als Issue.