28.04.2023 | TYPO3, TYPO3 Schnipsel
TYPO3 – form Extension Formularfelder dynamisch vorbelegen

Gerade stand ich erneut vor einem kleinen Problem, dass ich ein Formular, das mit der form-Extension erstellt wurde, dynamisch vorbelegen wollte. Die Idee dahinter ist einfach. – Im Betreff Feld soll immer der aktuell aufgerufene Seitenname vorbelegt sein. Aus diesem Grund hole ich diesen Beitrag mal wieder nach vorne :-) …
Was ist dazu nötig? Zunächst muss das Formular selbst angelegt werden. Das erspare ich mir hier an dieser Stelle, dann wirkt es etwas übersichtlicher. Ist das erledigt, kann man sich die YAML Konfigurationsdatei (per default im Fileadmin Verzeichnis) runterladen und bearbeiten.
Stark verkürzt sieht die Datei „DeinFormular.form.yaml“ dann in etwa wie nachfolgend aus.
renderingOptions: submitButtonLabel: absenden identifier: formularBewerbung label: 'Formular Bewerbung' type: Form prototypeName: standard finishers: - options: subject: 'Nachricht über Ihre Internetseite' senderAddress: '{email}' senderName: '{name}' attachUploads: true translation: language: default recipients: [email protected]: 'MeinName' addHtmlPart: true identifier: EmailToReceiver - options: message: '' contentElementUid: '2048' identifier: Confirmation renderables: - renderingOptions: previousButtonLabel: 'Previous step' nextButtonLabel: Vorschau identifier: page-1 label: '' type: Page renderables: - defaultValue: '' identifier: name label: Name type: Text properties: fluidAdditionalAttributes: placeholder: Name required: required validators: - identifier: NotEmpty - defaultValue: 'Betreff / Stelle' type: Text identifier: text-1 label: 'Betreff / Stelle' properties: fluidAdditionalAttributes: required: required validators: - identifier: NotEmpty
Nun möchte ich das Feld „Betreff / Stelle“ automatisch mit dem aufgerufenen Seitennamen vorbelegen. Anknüpfungspunkt ist hier die entsprechende Ergänzung im Typoscript Setup und der Konfiguration des Plugins. Auch wenn ich es vermutlich nicht erwähnen muss, gezählt wird beginnend von 0.
- Ich möchte das Formular mit dem Identifier „formularBewerbung“ anpassen.
- Es geht mir um die erste Seite des Formulars, also renderables –> 0 und innerhalb dieser Formularseite
- um das zweite Formular-Element renderables –> 1
An dieser Stelle wird der aufgerufene Seiten-Titel (page:title) vorausgefüllt.
plugin.tx_form.settings { formDefinitionOverrides { // Formular-Identifier formularBewerbung { renderables { // Erstes Element - identifier: page-1 0 { renderables { // zweites Element unterhalb von page-1 - identifier: pagetitle 1 { defaultValue = TEXT defaultValue.data = page:title } } } } } } }
Das Ergebnis im Frontend sieht dann folgendermaßen aus