Konfiguration

Die forms.yml ist die zentrale Konfigurationsdatei für den Entwickler. Sie liegt im Projektverzeichnis “develop”

Aufbau der forms.yml

form_key1:                                                  # Formular-Key
  name: Formular 1                                          # Formularname im Backend
  fields: [field1, field2, field3, ...]                     # Formularfelder
  required: [field2, field4, ...]                           # Pflichtfelder (optional)
  validators:                                               # Validatoren (optional)
    field1:                                                 # Feldname
      string:                                               # Validatorname des ersten Validators für das Feld
        maxlen: 120                                         # Parameter
        minlen: 2
      other_validator: [...]                                # weiterer Validator für das Feld
    field2: my_validator                                    # Validator ohne Parameter in verkürzter Schreibweise
#   [...]
  validator_schemas:                                        # Schema-Validatoren (optional)
    schema1:                                                # interner Name Validators (beliebig, aber eindeutig)
      type: compare_strings                                 # Validatorname
      params:                                               # Parameter des Validators
        fields: [pw-first, pw-second]                       # "fields" ist ein Parameter des "compare_strings"-Validators
    schema2:
#   [...]
  processors: [mail, database]                              # Verarbeitung der Formulardaten mit einfacher Konfiguration (optional)
#  processors:                                              # Verarbeitung der Formulardaten mit erweiterter Konfiguration (optional)
#    proc1:                                                  # interner Name Prozessors (beliebig, aber eindeutig)
#      type: my_processor                                    # Prozessorname
#      params:                                               # Parameter des Prozessors
#        param_1: foo
#        param_2: bar
  renderer:                                                 # Formrendering (optional)
    default:
      _type: form
      fields:
#     [...]
form_key2:
# [...]

_static:                                                  # Definition eigener Validatoren, Prozessoren und Widget. (optional)
                                                          # Diese können dann oben mit dem hier angegebenen Namen benutzt werden.
  processors:
    my_processor: MyProcessorClass                        # Klasse vom Typ WV30_Processor_Base
#   [...]
  validators:
    my_validator: MyValidatorClass                        # Klasse vom Typ WV30_Validator_Base
#   [...]
  validator_schemas:
    my_validator_schema: MyValidatorSchemaClass           # Klasse vom Typ WV30_Validator_SchemaBase
#   [...]
  widgets:
    my_widget: MyWidgetClass                              # Klasse vom Typ WV30_Widget
#   [...]

Für jedes Formular gibt es in der forms.yml einen Eintrag. Jeder Eintrag hat als Root-Element den Formular-Key. Darunter folgen zwingend name und fields. Weitere Konfiugrationsparameter sind optional.

Formularparameter

Formular-Key
Jedes Formular wird durch einen Key referenziert (im oberen Beispiel: form_key1). Das Formular muss ein Feld mit dem Namen __wv30_form_id (WV30_Form::FORM_ID_FIELD_NAME) und dem Formular-Key als Wert mitschicken, damit es von der Formularauswertung erkannt wird. In der Regel ist dies ein hidden-Field
name Formularname
Das name-Attribut enthält den Formularnamen, der im Backend auf der Konfigurationsseite angezeigt wird.
fields Formularfelder
Das fields-Attribut enthält eine Liste mit den möglichen Feldnamen. Es ist auch möglich mit einem einzigen Feldnamen eine Menge an Feldern zu definieren, wenn das Feld im Formular selbst als Array genutzt wird. Dies ist z.B. bei dynamischen Formularen interessant.
required Pflichtfelder
Über das required-Attribut werden Pflichtfelder definiert. Das Formular wird nicht ausgewertet und meldet einen Fehler, wo es zum Problem gekommen ist. Die Fehler können dann über eine API in einem Modul oder Template abgefragt werden.
validators Validatoren
Einzelne Felder können validiert werden. So kann geprüft werden, ob ein Feld eine E-Mail-Adresse ist oder ob es eine Mindestlänge oder Maximallänge hat. Es können über ein einfaches Interface eigene Validatoren implementiert werden. mehr unter Validatoren
validator_schemas Schema-Validatoren
Sind Felder von einander abhängig, muss dies über Schema-Validatoren validiert werden. mehr unter Validatoren
processors Prozessoren
Die Verarbeitung der fertig validierten Formulardaten können mitgelieferte Prozessoren übernehmen. So können Formulare bspw. per Mail verschickt werden oder die Daten zur späteren Weiterverarbeitung in die Datenbank geschrieben werden. Aktuell stehen die Prozessoren mail, database und register zur Verfügung. Über ein einfaches Interface können weitere Prozessoren implementiert werden.
_static Definition eigener Klassen
Oft entwickelt man projektspezifische Validatoren, Prozessoren und Widgets. Diese kann man in der forms.yml in der Sektion _static registrieren.

Inhalt

Vorheriges Thema

Form Evaluation

Nächstes Thema

Beispiel 1 (einfaches Formular)

Diese Seite