{"id":21330548,"url":"https://github.com/friendsofredaxo/mform","last_synced_at":"2025-10-10T23:19:27.948Z","repository":{"id":3515494,"uuid":"4573604","full_name":"FriendsOfREDAXO/mform","owner":"FriendsOfREDAXO","description":"Spielend einfach umfangreiche Modul-Input-Formulare erzeugen.","archived":false,"fork":false,"pushed_at":"2025-09-30T09:56:44.000Z","size":28669,"stargazers_count":83,"open_issues_count":11,"forks_count":20,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-09-30T10:21:26.417Z","etag":null,"topics":["backend","content","editing","form","form-builder","forms","hacktoberfest","redaxo","redaxo-addon"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FriendsOfREDAXO.png","metadata":{"files":{"readme":"README.de.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2012-06-06T14:30:06.000Z","updated_at":"2025-09-30T09:55:36.000Z","dependencies_parsed_at":"2023-09-26T14:15:38.149Z","dependency_job_id":"a670696f-04bc-444e-acd4-fef3d5e12fd1","html_url":"https://github.com/FriendsOfREDAXO/mform","commit_stats":null,"previous_names":[],"tags_count":70,"template":false,"template_full_name":null,"purl":"pkg:github/FriendsOfREDAXO/mform","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FriendsOfREDAXO%2Fmform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FriendsOfREDAXO%2Fmform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FriendsOfREDAXO%2Fmform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FriendsOfREDAXO%2Fmform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FriendsOfREDAXO","download_url":"https://codeload.github.com/FriendsOfREDAXO/mform/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FriendsOfREDAXO%2Fmform/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279005552,"owners_count":26083918,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backend","content","editing","form","form-builder","forms","hacktoberfest","redaxo","redaxo-addon"],"created_at":"2024-11-21T22:21:23.901Z","updated_at":"2025-10-10T23:19:27.927Z","avatar_url":"https://github.com/FriendsOfREDAXO.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MForm - REDAXO Addon\n\n![Poster](https://github.com/FriendsOfREDAXO/mform/blob/assets/screen_mform8.png?raw=true)\n\nMForm erleichtert die Erstellung von REDAXO-Modul-Eingaben. Mit MForm kann man nicht nur Formulare erstellen, sondern diese dank flexibler Templates auch optisch genau nach eigenen Wünschen gestalten. Man kann alle REDAXO-Standard-Formularelemente erstellen und erhält einige Extra-Widgets, die sich leicht in Module einfügen lassen.\n\n**Aber da hört’s noch nicht auf!** \nMForm pimpt auch YForm und rex_form mit zusätzlichen Widgets auf. Benutzerdefiniertes Link-Feld oder eine schicke Image-List? Kein Problem, MForm hat die Lösung.\n\n## Neu in Version 8 ###\nUnd das Highlight in der neuesten Version? Der brandneue Formular-Repeater! Dieses Feature ersetzt das alte MBlock AddOn und bietet die Möglichkeit, Formularelemente nicht nur zu wiederholen, sondern sie auch in mehreren Ebenen zu verschachteln – etwas, das mit MBlock so nicht machbar war. Damit kann man jetzt noch komplexere Formulare aufbauen. \n\nDie beiliegende **Demo-Sammlung** erlaubt das sofortige Ausprobieren von Modul-Codes. Module können direkt installiert und getestet werden. Die Codes sind alle kommentiert.\nUnd zuästlich gibt es eine ausführliche Doku 📒.\n\n## Features\n\n### Grundlegende Funktionalitäten\n- **Erstellen von Moduleingaben per PHP**: Die Basis, um mit MForm zu arbeiten.\n- **Mehrspaltige Formulare**: Layout-Optionen zur Strukturierung der Formulare.\n- **Inline-Formular-Elemente**: Für eine kompakte Formulargestaltung.\n- **HMTL5-Formular-Elemente**: Nutzung moderner Webstandards.\n- **Datalists**: Für verbesserte Eingabeoptionen in Formularen.\n\n### Erweiterte Gestaltung und Interaktivität\n- **Custom Widgets für Verlinkung (auch Yform) und Bilder**: Spezielle Widgets für häufig benötigte Funktionen.\n- **Factory die es ermöglicht Formularteile leicht auszulagern**: Vereinfacht die Wiederverwendung von Formularkomponenten.\n- **Collapse, Tabs, Accordions**: Elemente zur Gestaltung dynamischer, interaktiver Formulare.\n- **Wrapper Elemente Via Checkbox, Radio oder Select steuerbare Collapse Elemente**: Bietet interaktive Steuerungselemente für die Benutzerführung.\n- **Ausgabe der Formulare anpassbar über Fragmente**: Ermöglicht die flexible Gestaltung der Formulardarstellung.\n\n### Spezielle Funktionen\n- **Integrierter Formular-Repeater**: Ersetzt MBlock und erlaubt verschachtelte Formularelemente.\n- **REDAXO JSON Value Nutzung**: Integration von REDAXO spezifischen Datenstrukturen.\n- **SQL-Felder**: Direkte Einbindung von Datenbankabfragen.\n- **Durchgehende MBlock Kompatibilität**: Gewährleistet Kompatibilität mit bestehenden MBlock-Installationen.\n- **Modul-Beispiele zur direkten Installation**: Bietet sofort einsatzbereite Vorlagen für verschiedene Anwendungsfälle.\n\n## Formular-Repeater\n\nDer Formular-Repeater ermöglicht es, Formularelemente dynamisch zu wiederholen und dabei eine Verschachtelung in mehreren Ebenen zu realisieren.\n\n### Migration von MBlock zu MForm 8 \n\nDer neue Repeater ist nur eingeschränkt mit MBlock kompatibel.\n\nAkuell funktionieren nicht bei einer Migration: \n\n- CustomLinkField // Converter: https://friendsofredaxo.github.io/tricks/addons/mform/custom_link_converter\n- addMediaListField\n- addLinkListField\n\n***MBlock-Modul*** \n\n```php\n// Basis-ID für die Verwaltung der Formularelemente\n$id = 1;\n\n// Initialisierung von MForm\n$mform = new MForm();\n\n// Hinzufügen eines Feldsets\n$mform-\u003eaddFieldsetArea('Team member');\n\n// Hinzufügen eines Textfelds, wobei dynamisch auf ein JSON-Format verwiesen wird\n$mform-\u003eaddTextField(\"$id.0.name\", array('label' =\u003e 'Name'));\n\n// Hinzufügen eines Medienfeldes, das durch MBlock in JSON gespeichert wird\n$mform-\u003eaddMediaField(1, array('label' =\u003e 'Avatar'));\n\n// Ausgabe des Formulars mit MBlock, welches die dynamische Handhabung der Blöcke erlaubt\necho MBlock::show($id, $mform-\u003eshow(), array('min' =\u003e 2, 'max' =\u003e 4));\n```\n\n***Das gleiche Modul in MForm 8*** \n\nZur Ermittlung der benötigten Feld-Keys sollte man ggf. vorab einen Dump erzeugen. \nZu beachten: Aus dem Mediafield 1 im urpsrünglichen MBlock-Modul wird: `'REX_MEDIA_1'`\n\n```php\nuse FriendsOfRedaxo\\MForm;\n\n// Initialisierungs-ID des Repeaters mit der Basis-ID des ursprünglichen MBlock-Abschnittes\n$id = 1;\n\n// Erstellen einer neuen MForm-Instanz mit der Factory-Methode und direkte Integration eines Repeaters\necho MForm::factory()\n    -\u003eaddRepeaterElement(\n        $id, \n        MForm::factory()\n            -\u003eaddFieldsetArea('Team member', \n                MForm::factory()\n                    -\u003eaddTextField('name', ['label' =\u003e 'Name'])\n                    -\u003eaddMediaField('REX_MEDIA_1', ['label' =\u003e 'Avatar'])\n            ),\n        true, \n        true, \n        ['min' =\u003e 2, 'max' =\u003e 4]\n    )\n    -\u003eshow();\n```\n\n\n\n## Installation\n\nMForm kann direkt über den Redaxo-Installer Installiert werden. [MForm Redaxo Addon Page](http://www.redaxo.org/de/download/addons/?addon_id=967\u0026searchtxt=mform\u0026cat_id=-1)\n\n1. In REDAXO einloggen\n2. Im Backend unter \"Installer \u003e Neue herunterladen\" \"MForm\" suche und unter \"Funktion\" \"ansehen\" klicken\n3. Bei der aktuelle Version in der Liste unter \"Funktion\" \"herunterladen\" klicken\n4. Unter \"AddOns\" MForm installieren und aktivieren\n\n## Ausgabe\n\nMForm nutzt die von REDAXO bereitgestellten REDAXO Variablen. Entweder als klassische oder als JSON-Values.\nInformationen hierzu in der [REDAXO Doku](https://www.redaxo.org/doku/main/redaxo-variablen).\n\n## Lizenz\n\nMForm ist unter der [MIT Lizenz](LICENSE.md) lizensiert.\n\n## Changelog\n\nsiehe [CHANGELOG.md](https://github.com/FriendsOfREDAXO/mform/blob/master/CHANGELOG.md)\n\n## Autor\n\n**Friends Of REDAXO**\n\n- \u003chttp://www.redaxo.org\u003e\n- \u003chttps://github.com/FriendsOfREDAXO\u003e\n\n## Credits\n\n**Projekt-Lead**\n\n[Joachim Dörr](https://github.com/joachimdoerr)\n\n**2nd. Maintainer**\n\n[skerbis](https://github.com/skerbis)\n\n**Mform-Repeater**\n\n[Thorben eaCe](https://github.com/eaCe)\n\n**Docs \u0026 Testing**\n\n[alexplusde](https://github.com/alexplusde)\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffriendsofredaxo%2Fmform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffriendsofredaxo%2Fmform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffriendsofredaxo%2Fmform/lists"}