6 · Formulare
Drei Arten, mehr gibt es nicht:
formular neu <Model> # legt einen Datensatz an
formular ändere <eintrag> # ändert einen vorhandenen
formular anmeldung # Name und PasswortAnlegen
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
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
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:
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:
feld budget "Ungefähres Budget in Euro" regler 0 20000 250Drei 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
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
seite /anmelden als "Anmelden"
oeffentlich
formular anmeldungBraucht 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
modell Beitrag
inhalt langtext
bild bild optionalformular 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
modell Zustellung
unterschrift unterschrift optional 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:
wenn eintrag.unterschrift
bild eintrag.unterschriftZwei 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
festgeschriebenmachen. Sonst lässt sich der Eintrag hinterher ändern, und der Nachweis ist wertlos.
Was beim Absenden passiert
- Der Browser schickt das Formular mitsamt einer Marke.
- 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.
- Pflichtfelder werden geprüft, Felder mit
= ichaus der Sitzung gefüllt. - Der Datensatz wird angelegt, die Datendatei geschrieben.
- 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