Die API gibt über get_subscription_form alle nötigen Informationen mit, um das gesamte individuelle Anmeldeformular zu einer bestimmten Veranstaltung zusammenzustellen. Mehr zu den einzelnen Schritten im Zusammenhang mit der API finden Sie in der separaten Übersicht.
Da das Anmeldeformular für jede Veranstaltung andere Felder umfassen kann, gibt die API über get_subscription_form im Feld subs_form alle nötigen Informationen mit:
"subs_formfields": [[i]der Einfachheit halber ist in den Feldbezeichnungen «subscription» oft abgekürzt
{[i]
"field_id": "t13f67",eine Kombination aus der Formular- und der Feld-Nummer; mit dieser Feld-ID muss der gewählte Wert an die API zurückgespielt werden; die Feld-ID ist eindeutig und wird meist auch gleich im DOM als Identifier verwendet
"position": 1,[i]für die Reihenfolge sind die Felder durchnummeriert
"related_to": "",[i]siehe Beispiel weiter unten
"type": "text",[i]Verowa unterscheidet zahlreiche Feldtypen (siehe unten); je nach Typ stehen andere Optionen zur Verfügung
[i]
"label": "Name",
"required": true,handelt es sich um ein Pflichtfeld?
[i]
"helptext": "",wird oft als Tooltip dargestellt; kann leer sein
[i]
"settings": {diese Einstellungen unterscheiden sich je nach Textfeld; sie sind unten im Detail beschrieben
"min_length": 1,[i]Pflicht-Textfelder haben immer mindestens eine Länge von 1
"max_length": 40,[i]es empfiehlt sich, lange Textfelder (> 100 Zeichen) als Textarea darstellen
"value": "",[i]Standardwert; meistens leer
},[i]
"add_class": "",allfällige zusätzliche CSS-Klasse(n); meistens leer
},
{
"field_id": "t13f23","position": 2,[i]
"related_to": "",
"type": "dropdown",
"label": "Grösse T-Shirt",
"required": true,
"helptext": "",
"settings": {
"options": ["", "S", "M", "L", "XL"],die einzelnen Optionen für Dropdown- und Radio-Menüs werden als Array übergeben; geben Sie Verowa immer die ausgewählten Werte zurück, keine Option-IDs
"value": "M",[i]Standardwert
},[i]
"add_class": "vform-dropdown vform-tshirt-menue",allfällige zusätzliche CSS-Klasse(n); meistens leer
},[i]
{
"field_id": "t13f18",
"position": 3,
"related_to": "",
"type": "checkbox",
"label": "Ich akzeptiere die <a href="agb.html">allg. Bedingungen</a> für Anlässe der Demo-Pfarrei.",Feldbezeichnung; kann z.B. für Checkboxen auch einen längeren Text und HTML-Code enthalten
[i]
"required": trueauch Checkboxen können Pflichtfelder sein, wenn es sich um Einverständniserklärungen handelt
[i]
"helptext": "Um sich anzumelden, müssen Sie unseren AGB zustimmen.",
"settings": {
"value": false,
},
"add_class": "",
}
{
"field_id": "t13f43",
"position": 4,
"related_to": "",
"type": "radio",
"label": "Mitwirkung",
"required": true,Radio-Buttons sind immer Pflichtfelder
[i]
"helptext": "",
"settings": {
"options": ["Singen", "Musikinstrument"],
},
"add_class": "vform-radio",
},{
"field_id": "t13f45",
"position": 5,
"related_to": "t13f45:Singen"dieses Feld wird nur eingeblendet und aktiv, wenn im feld t13f45 der Wert «Singen» ausgewählt ist
[i]
"type": "multiple_choice",
"label": "Stimmlage",
"required": true,für die Mehrfachauswahl gibt es in den Settings noch weitere Möglichkeiten; ist diese Angabe True, braucht es mindestens ein Häkchen
[i]
"helptext": "",
"settings": {
"options": ["Sopran", "Alt", "Tenor", "Bass"],
"min": 1,es muss mindestens ein Häkchen gesetzt sein (entspricht required: true)
[i]"max": 2,es dürfen max. 2 Häkchen gesetzt sein (0 = egal)
[i]},
"add_class": "",
},
{
"field_id": "t13f79",
"position": 16,
"related_to": "",
"type": "checkbox",
"label": "Ich akzeptiere die <a href="agb.html">allg. Bedingungen</a> für Anlässe der Demo-Pfarrei.",Feldbezeichnung; kann z.B. für Checkboxen auch einen längeren Text und HTML-Code enthalten
[i]
"required": trueauch Checkboxen können Pflichtfelder sein, wenn es sich um Einverständniserklärungen handelt
"helptext": "Um sich anzumelden, müssen Sie unseren AGB zustimmen.",
"settings": {
"value": false,
},
"add_class": "",
}
]
related_to
Es gibt Felder, die nur angezeigt werden sollen, wenn in einem anderen Feld ein bestimmter Wert ausgewählt ist. Im Beispiel oben wird diese Möglichkeit beim Feld «Stimmlage» verwendet, die nur gewählt werden kann und muss, wenn man sich bei «Mitwirkung» fürs Singen entscheidet.
In diesem Fall enthält related_to die Field-ID und nach einem Doppelpunkt den offenen Wert (keine ID!), der gewählt sein muss, um das Feld zu aktivieren. Viele dieser optionalen Angaben sind Pflichtfelder (required), was aber nur im aktivierten Zustand relevant ist. (Im obigen Beispiel: Nur wenn man sich für den Chor entscheidet, muss man auch die Stimmlage angeben.)
Ein Feld kann auch von mehreren Varianten abhängig sein: verschiedenen Optionen oder sogar verschiedenen Feldern. Dazu kann die Bedingung mit der Doppel-Pipe eine oder mehrere Oder-Verknüpfungen haben, z.B. so: t13f37:Doppelzimmer mit Du/WC||t13f37:Doppelzimmer ohne Du/WC.
Verfügbare Formularfelder
text (firstname, lastname, street, zip, city, zip_city)
Beschreibt ein Textfeld, je nach Länge als Input oder Textarea (z.B. ab max. Länge > 100 Zeichen). Obwohl alle Felder wie Text behandelt werden, unterscheidet die API weitere Typen. Damit können Sie die Formularfelder für die Browser mit einem passenden Autocomplete-Wert versehen.
Auch «zip» wird von Verowa derzeit als Text behandelt, damit der User auch Werte wie «D-12345» gültig eintragen kann. Falls Sie das nicht erlauben möchten, können Sie «zip» als Number-Feld darstellen.
Es ist möglich, dass ein Textfeld eine Mindestlänge hat, aber trotzdem kein Pflichtfeld ist. Beispiel: Es könnte erlaubt sein, das PLZ-Feld leer zu lassen. Wenn man sie aber einträgt, muss sie mindestens 4 Ziffern haben.
Settings:
: Mindestlänge (Anzahl Zeichen), kann 0 seinmin_length: max. Längemax_lengthvalue:Standardwert
phone
Beschreibt ein Textfeld für Telefonnummern. Auf Anfang ist ein Pluszeichen erlaubt, sonst nur Zahlen und Leerstellen. Es gibt keine speziellen Settings.
Settings:
value:Standardwert
Beschreibt ein E-Mail-Feld. Der eingegeben Text muss eine einzelne gültige E-Mail Adresse sein. Verowa prüft dabei nicht nur die Syntax, sondern auch, ob der Mailserver existiert.
Settings:
: Mindestlänge (Anzahl Zeichen), kann 0 seinmin_length: max. Längemax_lengthvalue:Standardwert
dropdown
Wenn die Optionen für ein Dropdown-Menü mit einem leeren Eintrag beginnen, soll das Menü als Erstes einen leeren Eintrag bekommen, der nicht als Auswahl zählt. Ist das Menü ein Pflichtfeld, wird es immer mit einem leeren Eintrag beginnen.
Settings:
: Array mit den verfügbaren Optionenoptionsvalue:Standardwert (keine Option-ID, sondern der effektive Wert)
Geben Sie Verowa immer den ausgewählten Wert zurück, keine Options-ID. Der Grund dafür liegt darin, dass die User in Verowa die Formulare auch im laufenden Betrieb anpassen können müssen. Je nach Änderung könnten sich die Optionen verschieben oder sogar widersprechen. Wie sich herausgestellt hat, ist in diesem speziellen Fall das Speichern der effektiven Werte zuverlässiger.
radio
Beschreibt eine Gruppe von einem oder mehreren Radiofeldern.
Settings:
: Array mit den verfügbaren Optionenoptionsvalue:Standardwert (keine Option-ID, sondern der effektive Wert)
Geben Sie Verowa immer den ausgewählten Wert zurück, keine Options-ID (siehe Dropdown-Menü).
multiple_choice
Beschreibt eine Gruppe von einer oder mehreren Checkboxen.
Settings:
: Array mit den verfügbaren Optionenoptionsmin:so viele Optionen müssen mindestens ausgewählt sein (evtl. 0)max:so viele Optionen dürfen höchstens ausgewählt sein (0 = egal)value:Weil der Standard mehrere Werte umfassen kann, wird das Value für dieses Feld immer als Array übergeben.
checkbox
Beschreibt eine einzelne Checkbox. Oft ist die Checkbox als Pflichtfeld angelegt. In diesem Fall handelt es sich um eine Einverständniserklärung, z.B. für AGBs oder dafür, dass Fotos gemacht werden dürfen.
Labels von Checkboxen können, gerade bei Einverständniserklärungen, mehrere Zeilen Text umfassen und auch einen Link enthalten, z.B. zu einem PDF mit den AGBs.
Settings:
value:Standardwert (meistens leer, sonst «on»)
Geben Sie als Werte «on» zurück, falls das Feld angewählt wurde, oder «off», «» oder null, falls kein Häkchen gesetzt ist.
date
Datumsfelder können begrenzt sein. Diese Möglichkeit wird oft z.B. für ein Geburtsdatum verwendet, wenn sich nur bestimmte Altersgruppen anmelden dürfen. Das verhindert natürlich keine absichtlichen Falscheingaben, kann aber immerhin helfen, versehentliche Fehler zu vermeiden.
Settings:
min:frühestes erlaubtes Datum (Format «JJJJ-MM-DD»; leer = egal)max:spätestes erlaubtes Datum (Format «JJJJ-MM-DD»; leer = egal)value:Standardwert (meistens leer, sonst ein Datum im Format «JJJJ-MM-DD»)
time
Beschreibt ein Feld, in dem nur die Uhrzeit eingegeben werden kann.
Settings:
min:kleinste erlaubte Zeit (Format «HH:MM»; leer = «00:00»)max:grösste erlaubte Zeit (Format «HH:MM»; leer = «23:59»)value:Standardwert (meistens leer, sonst eine Zeit im Format «HH:MM»)
number
Beschreibt ein Feld, in dem nur positive, ganze Zahlen eingegeben werden können (oder 0). Falls es sich um ein Pflichtfeld handelt, muss der Wert mindestens 1 betragen. Dieses Feld wird oft für die gewünschte Anzahl Plätze verwendet.
Settings:
min:kleinste erlaubte Zahl (meistens 0)max:grösste erlaubte Zahlvalue:Standardwert
html
Für eine Anzeige von HTML-Inhalt, wird meistens für einen Zwischentitel oder eine Bemerkung verwendet. Bei diesem Feld haben Angaben wie label, required oder add_class keine Bedeutung. Allfällige Klassen sind direkt im HTML-Code vermerkt.
Settings:
value:String mit HTML-Code, z.B.:<h3 class="vform-subtitle">Zwischentitel</h3>oder<hr />