Organisation
Erstellen & Versenden
Sicherheit
API
Rules Engine
4. Variablen
Regeln als Variablen
In manchen Fällen ist es sinnvoll, Regeln nicht pro Block zu definieren, sondern als formularweite JavaScript Variable anzulegen. Eine solche Variable kann wiederum in einzelnen Blöcken abgefragt werden, um deren Bedingte Sichtbarkeit zu bestimmen.
Dies ist besonders sinnvoll für Regeln, die für viele Blöcke relevant sind, und / oder deren Berechnung aufwändiger ist.
Darüber hinaus kann das Ergebnis der Regel-Berechnung als Variable in Text-Blöcken verwendet werden.
Eine Variable erstellen:
- Klicken Sie auf den Reiter Regeln am rechten Bildschirmrand.
- Klicken Sie anschließend auf das Plus-Zeichen, um eine neue Regel zu erstellen.
- Wählen Sie in der Maske den Typ JavaScript Variable.
- Vergeben Sie einen kurzen, aber ausdrucksstarken Namen für die neue Regel.
- Klicken Sie nun auf Erstellen.
- Anschließend öffnet sich ein Code-Editor, in welchem Sie mit JavaScript eine Regel formulieren können.
Beispiele im Formular:
JavaScript Variablen für Bedingte Sichtbarkeit nutzen:
Anhand des payment_details
Blocks werden Sie nun zunächst lernen, wie eine JavaScript Variable für die Bedingte Sichtbarkeit verwendet werden kann.
Legen Sie dazu, wie zuvor beschrieben, eine JavaScript Variable has_to_pay
an.
Das Ziel ist, zu überprüfen, ob der Teilnehmer einem der Besuchertypen regular
, vip
, oder speaker
angehört oder ob er einen Workshop gebucht hat. Beides führt dazu, dass der Teilnehmer eine Teilnahmegebühr zahlen muss und die Zahlungsdaten als Pflichtfeld angezeigt werden. Versehen Sie dafür die Variable has_to_pay
mit folgendem Code:
const payingAttendees = ["regular", "vip", "speaker"];
const isPayingAttendee = payingAttendees.includes(blocks.registration_type.selectedOption.slug);
const workshopSelected = blocks.workshop_selection.anyOptionSelected();
isPayingAttendee || workshopSelected;
selectedOption
ist fester Bestandteil der Rules Engine API und gibt für Radio-Blöcke die ausgewählte Option zurück.slug
ist fester Bestandteil der Rules Engine API und gibt den Slug einer Auswahloption zurück.Es wird also zunächst geprüft, ob der Slug des gewählten Besuchertyps regular
, vip
, oder speaker
lautet.
anyOptionSelected()
ist fester Bestandteil der Rules Engine API und gibt für Checkbox-Blöcke Auskunft, ob mindestens eine Auswahloption ausgewählt ist Hier wird also geprüft, ob der Besucher mindestens einen der angebotenen Workshops ausgewählt hat.
Anschließend können Sie in der Bedingten Sichtbarkeit des Blockes payment_details
das Ergebnis der JavaScript Variable abfragen:
tokens.has_to_pay;
tokens
ist fester Bestandteil der Rules Engine API und ermöglicht den Zugriff auf alle von Ihnen definierten JavaScript Variablen nach dem Schema tokens.<Name der Variable>
.JavaScript Variablen im Text referenzieren:
Legen Sie hierfür zunächst eine neue JavaScript Variable mit dem Namen shirt_text
an.
Fügen Sie nun den folgenden Code ein, um den Vornamen, Nachnamen und den Besuchertyp des Besuchers zu einem String zusammenzusetzen:
blocks.first_name.value + " " + blocks.last_name.value + ": " + blocks.registration_type.selectedOption.name + " Attendee"
value
ist fester Bestandteil der Rules Engine API und ermöglicht für Texteingabe-Blöcke den Zugriff auf den eingegebenen Text.name
ist fester Bestandteil der Rules Engine API und gibt für Radio und Checkbox-Blöcke den Anzeige-Text der entsprechenden Auswahloption zurück.Klicken Sie anschließend in den Text-Block, den Sie zuvor zum Anzeigen des T-Shirt Aufdrucks angelegt haben (Slug: shirt_text
), und fügen Sie die Variable am Ende des Textes ein.
Die JavaScript Variable wird nun gelb unterlegt im Text angezeigt.
Abschließend möchten Sie nun auch die Teilnahmegebühr anzeigen, die sich für jeden Teilnehmenden individuell aus dem gewählten Besuchertyp und der Anzahl ausgewählter Workshops ergibt. So soll der reguläre Preis 300 Euro betragen, der VIP-Preis 400 Euro und der Preis für Vortragende 100 Euro, während Studierende und Helfer keine Grundgebühr zahlen. Zusätzlich sollen für jeden gebuchten Workshop weitere 50 Euro hinzukommen.
Erstellen Sie hierfür nun eine weitere Variable price
mit folgendem JavaScript Code:
const base_prices = {
"regular": 300,
"vip": 400,
"speaker": 100,
"volunteer": 0,
"student": 0
};
const registration_type = blocks.registration_type.selectedOption.slug;
const number_of_workshops = blocks.workshop_selection.selectedOptions.length;
const workshop_price = 50 * number_of_workshops;
const total_price = base_prices[registration_type] + workshop_price;
total_price;
selectedOptions
ist fester Bestandteil der Rules Engine API und gibt für Checkbox-Blöcke alle ausgewählten Auswahloptionen zurück.Fügen sie die Variable price
anschließend wie zuvor in den Text-Block price_text
ein.