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


geschrieben von Jens (keine Kommentare)
, , ,

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


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Mit und unverhältnismäßig viel für dich gemacht in Kassel.

2014 - 2023