Skip to content

10.0.0

Choose a tag to compare

@skerbis skerbis released this 20 Sep 18:22
· 6 commits to main since this release

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 über MFormOutput::items().
  • Neue Felder: addTagsField() für Schlagworte als Pills, dazu die HTML5-Felder addNumberField, 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.x weiter gepflegt wird.
  • Die Umstiegs-Checkliste steht in der Doku unter „Was ist neu?“ (docs/00_whats_new.md), alle Details im CHANGELOG.md.

Viel Spaß damit, Fehler und Wünsche wie immer gern als Issue.