Fibel

6 · Formulare

Drei Arten, mehr gibt es nicht:

fibel
formular neu <Model>            # legt einen Datensatz an
formular ändere <eintrag>       # ändert einen vorhandenen
formular anmeldung              # Name und Passwort

Anlegen

fibel
formular neu Beitrag
  feld titel "Worum geht es?"
  feld inhalt "Schreib los"
  absenden "Veröffentlichen"

Der Text hinter dem Feldnamen ist die Beschriftung. Lässt man sie weg, steht der Feldname da — meist nicht das, was man will.

Felder, die du nicht aufführst, bekommen ihre Vorgabe aus dem Model. am zeit = jetzt und autor Nutzer = ich schreibt man deshalb nie ins Formular.

Wohin es danach geht

fibel
formular neu Zustellung -> /protokoll
  feld ergebnis = "zugestellt"
  feld unterschrift "Unterschrift der empfangenden Person"
  absenden "Übergabe festhalten"

Ohne den Pfeil landet man wieder auf derselben Seite. Das ist bei einer Liste richtig — der neue Eintrag steht dann einfach da. Bei einem Vorgang, der abgeschlossen ist, will man weiter: dann sagt -> /pfad, wohin.

Feste Werte

fibel
  feld sendung = sendung
  feld ergebnis = "verweigert"

Ein Feld mit = wird nicht abgefragt, sondern festgelegt. So baut man mehrere Formulare auf derselben Seite, die dasselbe Model mit verschiedenen Ergebnissen anlegen:

fibel
formular neu Zustellung -> /protokoll
  feld sendung = sendung
  feld ergebnis = "zugestellt"
  feld unterschrift "Unterschrift"
  absenden "Übergeben"

formular neu Zustellung -> /protokoll
  feld sendung = sendung
  feld ergebnis = "nicht angetroffen"
  feld bemerkung "Was war los?"
  absenden "Niemand angetroffen"

Schieberegler

An einem Feld vom Typ zahl:

fibel
  feld budget "Ungefähres Budget in Euro" regler 0 20000 250

Drei Zahlen: von, bis, Schrittweite. Die letzte darf fehlen, dann ist sie 1. Im Browser wird daraus ein Schieber mit der Zahl daneben, in der nativen App ein Slider. An einem Feld, das keine Zahl ist, meldet die Prüfung einen Fehler.

Ändern

fibel
seite /profil als "Mein Profil"
  angemeldet
  titel "Mein Profil"

  formular ändere ich
    feld name "Wie sollen dich andere nennen?"
    feld bild "Profilbild"
    absenden "Speichern"

Die Felder sind mit dem bisherigen Wert vorbelegt. Ändern darf nur, wem der Datensatz gehört — siehe Rechte. Ein festgeschrieben-Model lässt sich gar nicht ändern; die Prüfung sagt das schon vor dem Start.

Anmeldung einbauen

fibel
seite /anmelden als "Anmelden"
  oeffentlich
  formular anmeldung

Braucht man selten — Fibel zeigt die Anmeldeseite von selbst, sobald jemand auf eine geschützte Seite will. formular anmeldung zeigt dieselben Formulare wie diese Seite: in einer App mit Passwort also Anmelden, Konto anlegen und Passwort vergessen, bei zugang offen nur den Namen.

Dateien und Bilder

fibel
modell Beitrag
  inhalt langtext
  bild   bild optional
fibel
formular neu Beitrag
  feld inhalt "Was gibt es Neues?"
  feld bild "Ein Bild dazu"
  absenden "Absenden"

Das Hochladen läuft neben dem Formular: sobald man eine Datei auswählt, geht sie los, und die Adresse landet in einem versteckten Feld. Das Formular selbst bleibt ein gewöhnliches Formular.

Erlaubt sind PNG, JPEG, GIF, WEBP, AVIF und PDF, bis 5 MB. Geprüft wird an den ersten Bytes der Datei, nicht am Namen und nicht an dem, was der Browser behauptet.

Wird ein Bild durch ein anderes ersetzt, verschwindet das alte automatisch — sofern kein anderer Datensatz darauf zeigt.

Unterschriften

fibel
modell Zustellung
  unterschrift unterschrift optional
fibel
  feld unterschrift "Unterschrift der empfangenden Person"

Im Browser erscheint eine Zeichenfläche, auf der man mit Finger oder Maus unterschreibt. Beim Absenden wird daraus ein Bild, das denselben Weg geht wie ein Upload. Zeigen kann man es danach wie jedes Bild:

fibel
wenn eintrag.unterschrift
  bild eintrag.unterschrift

Zwei Dinge dazu, die man wissen sollte:

  • Eine gemalte Unterschrift ist eine einfache elektronische Signatur. Für Empfangsbestätigungen und Übergabeprotokolle taugt sie; für Verträge mit gesetzlicher Schriftform nicht.
  • Wer sie als Nachweis benutzt, sollte das Model festgeschrieben machen. Sonst lässt sich der Eintrag hinterher ändern, und der Nachweis ist wertlos.

Was beim Absenden passiert

  1. Der Browser schickt das Formular mitsamt einer Marke.
  2. Der Server prüft die Marke. Fehlt sie oder passt sie nicht, wird nichts angenommen — so kann keine fremde Seite in deinem Namen etwas anlegen.
  3. Pflichtfelder werden geprüft, Felder mit = ich aus der Sitzung gefüllt.
  4. Der Datensatz wird angelegt, die Datendatei geschrieben.
  5. Alle offenen Seiten, die davon betroffen sind, aktualisieren sich.

Schritt 5 kommt ohne Zutun: Fibel hält zu jedem offenen Browser eine leise Verbindung und schickt den neuen Seiteninhalt. Wer gerade tippt, wird dabei nicht unterbrochen.


Weiter: Gestaltung