Formulare, Prämien, Smarty-Templates
Formulare konfigurieren
Benutzerdefinierte Formulare ermöglichen es, besonders komplexe Formulare wie beispielsweise das Registrierungsformular genau an den Bedarf eines speziellen Panels anzupassen.
Benutzerdefinierte Formulare kommen bei der Registrierung, bei Datenänderung und bei den Profilen von Community-Panels zum Einsatz.
Auf verschiedenen Sprachversionen derselben Website können unterschiedliche Formulare verwendet werden.
Pro Sprachversion können mehrere Formulare desselben Typs gleichzeitig erstellt und verwendet werden. So können Sie beispielsweise für verschiedene Eintrittswege unterschiedliche Registrierungsformulare verwenden.
Zusammengehörende Variablen können einer Gruppe zugeordnet und dann beispielsweise in einem eigenen Abschnitt des Formulars zusammen ausgegeben werden.
In den folgenden Kapiteln lernen Sie, benutzerdefinierten Formulare selbst zu bearbeiten:
Es wird erläutert, wie die verschiedenen Formulare eines Panels verwaltet werden.
Sie lernen, die Variablenkonfiguration eines Formulars zu ändern.
Die Besonderheiten der Variablenkonfiguration von Registrierungs- und Datenänderungsformularen werden erläutert.
Die Besonderheiten der Variablenkonfiguration von Profilformularen werden vorgestellt.
Formulare verwalten
Die Benutzeroberfläche zur Erstellung und Verwaltung von Formularen befindet sich im Menü Website → Standard-Inhalte → Formulare.
Information
Leserecht für „panel_website_forms“ ist nötig, um auf das Formulare-Menü zuzugreifen.
Wenn Sie auf einer Installation mit mehreren Websites und/oder Sprachversionen die Formulare einer anderen Sprachversion einsehen möchten, auf die Sie Zugriffsrecht haben, ändern Sie die Einstellung im oberen Teil des Dialogs. Welche Tabellenspalten und wie viele Zeilen pro Seite eingeblendet werden, können Sie mittels der Ansicht-Funktion vorgeben. Die Übersichtstabelle kann durchsucht werden.
Es stehen folgende Bearbeitungsmöglichkeiten zur Verfügung:
Formularname: Öffnet die Übersicht der Variablen, die zum jeweiligen Formular gehören.
Einstellungen bearbeiten: Öffnet den Eigenschaftendialog.
Löschen: Nach einer Sicherheitsabfrage wird das Formular entfernt.
Formular anlegen
Mit einem Klick auf den Button Formular anlegen können Sie den Dialog zur Konfiguration eines neuen Formulars öffnen.
Eigenschaften eines Formulars
Die Tabelle führt die Eigenschaften eines Formulars auf.
Feld | Beschreibung |
|---|---|
Website / Sprachversion | Website und Sprachversion, zu der das Formular gehört. Nicht nachträglich veränderbar. |
Formularname | Name des Formulars |
Beschreibung | Nur intern verwendete Beschreibung |
Formulartyp | Der Formulartyp legt fest, in welchem Funktionsmodul das Formular verwendet werden kann. Zur Auswahl stehen die Typen
|
Default-Formular | Das Default-Formular wird - je nach Formulartyp - auf der Seite „Registrierung“ oder „Daten ändern“ angezeigt, falls sie mit EFS in der Version 5.1 oder vorher erstellt wurden. Bei Registrierung oder Datenänderung eines Panelisten per Web service wird außerdem die "Zusätzlich speichern in"-Einstellung des Default-Formulars für die aktuelle Sprache/Anwendungsfall verwendet. |
Variablen eines Formulars konfigurieren
Übersicht der Variablen eines Formulars
Um die Variablen einzusehen, die zu einem Formular gehören, klicken Sie den Formularnamen in der Übersichtstabelle an. Alternativ können Sie auch im Eigenschaftendialog des Formulars den Button Variablen bearbeiten wählen. Sie gelangen zu einer Übersicht, die die Variablen des Formulars mit ihren wichtigsten Eigenschaften aufführt.
Variablen bearbeiten
Wenn Sie die Konfiguration einer bereits angemeldeten Variablen ändern möchten, wählen Sie in der Übersicht das Icon Variable x in Formular y bearbeiten.
Eine neue Variable anlegen
Wenn Sie eine Variable neu hinzufügen möchten, wählen Sie in der Übersicht das Icon Variable hinzufügen.
Ausgabe der Ausprägungen einer Variablen im Formular
Die Reihenfolge, in der die Ausprägungen einer Variablen im Formular angezeigt werden, ist von den Codes abhängig, dabei wird mit dem kleinsten vorhandenen Code begonnen. Es ist nicht möglich, eine abweichende Reihenfolge festzulegen oder sprachabhängig unterschiedliche Abfolgen zu definieren.
Besonderheiten von Registrierungs- und Datenänderungsformularen
Das korrekte Erheben der Registrierungsdaten und die spätere Pflege insbesondere der Kontaktdaten der Panelisten ist von zentraler Bedeutung für das Panel:
Die erhobenen Daten sollten möglichst fehlerfrei sein.
Die Registrierungsdaten sollten so abgespeichert werden, dass sie später bei Prozessen, bei denen sie benötigt werden, zur Verfügung stehen. Beispielsweise wird das Geschlecht häufig für die Gruppenbildung benötigt und sollte daher als Stammdatum vorliegen. Der Vorname der Panelisten hingegen wird für Gruppenbildung und Stichprobenziehung nicht benötigt, ist aber wichtig bei der Kontaktaufnahme: Er sollte als Adressdatum gespeichert werden. Die Formulartypen „Registrierung“ und „Datenänderung“ bieten große Flexibilität beim Anpassen der Formulare an den Bedarf eines spezifischen Panels:
Die vom Neuzugang eingegebenen Daten können bereits bei der Eingabe auf Plausibilität überprüft werden. Dadurch können irrtümliche oder absichtliche Falscheingaben wichtiger Daten wie beispielsweise Name und E-Mail-Adresse reduziert werden. Die Prüfausdrücke können Sie selbst definieren.
Sie können selbst festlegen, an welcher Stelle in der Datenbank die abgefragten Daten abgespeichert werden. Kontaktdaten wie Name, Straße und PLZ werden üblicherweise in der Teilnehmerdatentabelle abgespeichert. Daten, die später im Panelbetrieb wichtig sind, wie beispielsweise Geschlecht und Altersangaben, werden in der Stammdatentabelle festgehalten. Optional können Daten auch in beiden Tabellen abgelegt werden. (Dies kann z.B. bei „Land“ sinnvoll sein.)
Beim Speichern können die Daten umgewandelt werden. Beispielsweise können die Werte mehrerer Variablen in einer Variablen zusammengeführt werden.
Konfigurationsmöglichkeiten
Die folgende Tabelle führt alle Konfigurationsmöglichkeiten auf.
Feld | Beschreibung |
|---|---|
Website/Sprachversion | Website und Sprachversion, zu der die Variable gehört. Nicht nachträglich veränderbar. |
Formularname | Wird beim Anlegen des Formulars festgelegt. Nicht nachträglich veränderbar. |
Formulartyp | Wird beim Anlegen des Formulars festgelegt. Nicht nachträglich veränderbar. |
Variable | Das Stammdatum oder die Benutzervariable, auf die sich das Eingabefeld im Formular bezieht.
|
Label im Formular | Der Text, mit dem das Eingabefeld im Formular beschriftet wird. |
Folgende Codes ausschließen | Sie können bestimmte Antwortausprägungen von Stammdatenvariablen ausblenden. Geben Sie dazu die Codes der auszublendenden Antwortausprägungen ein. Die Codes können kommasepariert oder als Bereich eingegeben werden (z. B. „1,2,3-10“). |
Reihenfolge | Reihenfolge, in der die Eingabefelder für die verschiedenen Variablen im Formular ausgegeben werden. |
Gruppen-ID | Die Gruppen-ID steht in den Templates zur Verfügung und kann daher auf vielfältige Weise genutzt werden, beispielsweise um zusammengehörende Formularfelder zusammen zu gruppieren oder um das Formular in mehrere Abschnitte zu gliedern. Wenn Sie zum Beispiel mehreren Formularfeldern dieselbe Gruppen- ID (z. B. 1) zuweisen, können Sie diese Felder neben- statt untereinander ausgeben (z. B. Tag, Monat und Jahr bei drei zusammenhängenden Datumsfeldern). Dabei kann beispielsweise die gesamte Zeile mit dem Label des ersten gruppierten Elementes beschriftet werden. |
Prüfausdruck | Sie können einen Prüfausdruck eingeben, der vor der Datenspeicherung ausgeführt wird. Trifft der Prüfausdruck zu, werden die Daten nicht gespeichert und statt dessen die angegebene Fehlermeldung angezeigt.
|
Fehlermeldung | Fehlermeldung, die ausgegeben wird, wenn mit dem obigen Prüfausdruck ein Problem identifiziert wird. |
Zusätzlich speichern in... | Optional können Sie eine Eingabe in einem weiteren Stammdatum oder einer weiteren Benutzervariable abspeichern. |
Nur im „Daten ändern“-Formular: Wenn die Panelisten das "Daten ändern"-Formular verwenden, soll diese Variable nicht aktualisiert werden, falls kein Wert eingegeben wurde? | Wenn die Panelisten das Formular verwenden, werden sie oft nur eine einzelne Variable verändern und alle anderen Eingabefelder unverändert lassen. Mit dieser Option legen Sie fest, dass beim anschließenden Abspeichern nur die Werte übernommen werden, die vom Panelisten tatsächlich bearbeitet wurden. Standardeinstellung: „Ja“. |
Umwandlungsformel beim Speichern | Sie können einen Umwandlungsausdruck eingeben, der beim Speichern ausgeführt wird. Dadurch können beispielsweise die Werte mehrerer einzelner Variablen zusammengefügt und in der aktuellen Variablen gespeichert werden.
|
Funktionen für Umwandlungsformeln und Prüfausdrücke
Die folgenden Funktionen können in Umwandlungsformeln und Prüfausdrücken verwendet werden.
| Funktion | Erklärung | Parameter | Rückgabewert | Beispiel |
|---|---|---|---|---|---|
abs | abs (Aktion: Betrag) | Liefert den Betrag eines Wertes ohne Vorzeichen. | $value: Der zu bearbeitende Wert | Betrag des Wertes ohne Vorzeichen | abs(self) |
base64_decode | base64_decode (Aktion: Base64 entschlüsseln) | Entschlüsselt den Wert mit dem Base64 Algorithmus. | $value: Der zu entschlüsselnde Wert | Base64-entschlüsselter Wert |
|
base64_encode | base64_encode (Aktion: Base64 verschlüsseln) | Verschlüsselt den Wert mit dem Base64 Algorithmus. | $value: Der zu verschlüsselnde Wert | Base64-verschlüsselter Wert |
|
concat | concat (Aktion: Verknüpfen) | Verknüpft zwei oder mehr Strings miteinander. | $string1 - $stringN: zu verknüpfende Strings (es können beliebig viele Strings übergeben werden) | Konkatenierte Strings | concat(self, u_firstname, md_0077) |
get_date_diff | get_date_diff (Aktion: Differenz zweier Datumsangaben) | Errechnet den Unterschied zwischen zwei Zeiten in Tagen oder Jahren (abgerundet). | $date1: erstes Datum, $date2: zweites Datum, $format: „d“ (Tage), „y“ (Jahre) | Unterschied zwischen übergebenen Zeiten | get_date_- diff('05.03.1982', '26.08.2008', 'y'), get_date_- diff('1982-03-05', '26.08.2008', 'd' ) |
get_gmt_date | get_gmt_date (Aktion: Datum in GMT) | Gibt die aktuelle GMT-Zeit in gewünschtem Format zurück. | $format: Gewünschtes Datumsformat | Aktuelle, formatierte Zeit | get_gmt_- date('d.m.Y H:i:s') |
get_timestamp | get_timestamp (Aktion: Datum in Timestamp) | Gibt den Unix-Timestamp (seit Januar 1 1970 00:00:00 GMT vergangenen Sekunden) des übergebenen Datums zurück. Wenn kein Datum übergeben wird, wird der Timestamp des aktuellen Datums zurückgegeben. | $date (optional): Datum, dessen Timestamp benötigt wird | Unix-Timestamp | get_timestamp('13.04.2008'), get_timestamp('2008-04-13') |
is_date_de | is_date_de (Prüfen: deutsches Datumsformat) | Prüft, ob es sich bei dem übergebenen Wert um ein Datum im deutschen Format handelt (TT.MM.YYYY). | $value: Das zu prüfende Datum | 1, falls deutsches Datum, ansonsten 0 | is_date_de('05.03.1982') |
is_date_int | is_date_int (Prüfen: int. Datumsformat) | Prüft, ob es sich bei dem übergebenen Wert um ein Datum im internationalen Format handelt (MM-TT-YYYY). | $value: Das zu prüfende Datum | 1, falls internationales Datum, ansonsten 0 | is_date_int('05.03.1982') |
is_email | is_email (Prüfen: gültiges E-Mailformat) | Prüft, ob es sich bei dem übergebenen Wert um ein gültiges E-Mail- Adressformat handelt. | $value: Zu prüfende E-Mail-Adresse | 1, falls gültige EMail-Adresse, ansonsten 0 | is_email |
is_float | is_float (Prüfen: Gleitkommazahl) | Prüft, ob der übergebene Wert eine Gleitkommazahl ist. | $value: Zu prüfender Wert | 1, falls Gleitkommazahl, ansonsten 0 | is_float(10,5) |
is_luhn | is_luhn (Prüfen: Luhn-Algorithmus) | Prüft, ob der übergebene Wert der Luhn-Formel entspricht. | $value: Zu prüfender Wert | 1, falls Luhn-Algorithmus, ansonsten 0 | is_luhn(10) |
is_md5 | is_md5 (Prüfen: md5-Verschlüsselung) | Prüft, ob der übergebene Wert mit dem md5-Algorithmus verschlüsselt wurde. | $value: Zu prüfender Wert | 1, falls md5-verschlüsselt, ansonsten 0 | is_md5('234mklksdf') |
is_positive | is_positive (Prüfen: positive Zahl) | Prüft, ob es sich bei dem übergebenen Wert um eine positive Zahl handelt. | $value: Zu prüfender Wert | 1, falls positive Zahl, ansonsten 0 | is_positive(5) |
is_sha1 | is_sha1 (Prüfen: SHA1-Algorithmus) |
|
|
|
|
is_whole | is_whole (Prüfen: ganze Zahl) |
|
|
|
|
length | length (Aktion: Stringlänge ausgeben) | Gibt die Anzahl der Zeichen in einem String Zeichenkette zurück. | $value: Der zu prüfende String | Stringlänge | length('test') |
lowercase | lowercase (Aktion: in Kleinbuchstaben umwandeln) | Wandelt alle Zeichen in einem String in Kleinschreibung um. | $value: Umzuwandelnder String | Umgewandelter String | lowercase('Test') |
matches | matches (Prüfen: regulären Ausdruck anwenden) | Prüft, ob ein regulärer Ausdruck auf einen Wert zutrifft | $regex: Regulärer Ausdruck, $value: String, auf den regulärer Ausdruck angewendet wird | 1, falls Regulärer Ausdruck zutrifft, ansonsten 0 | matches('/^[a-f0-9]{32}$/','test'); |
md5 | md5 (Aktion: md5 verschlüsseln) | Verschlüsselt den Wert mit dem md5-Algorithmus. | $value: Zu verschlüsselnder Wert | Verschlüsselter Wert | md5('attack_at_dawn') |
replace | replace (Aktion: Ersetzung) | Durchsucht String nach Übereinstimmungen mit regulärem Ausdruck und ersetzt sie mit „Ersatz“. | $regex: Regulärer Ausdruck, $replace: Ersatz $value: String | Bearbeiteter String | replace('/^[a-f0-9]/','ersatz','7test 12') |
sha1 | sha1 (Aktion: SHA1 verschlüsseln) | Verschlüsselt den Wert mit dem SHA1-Algorithmus. | $value: Zu verschlüsselnder Wert | Verschlüsselter Wert | sha1('attack_at_dawn') |
substr | substr (Aktion: Teil eines Strings ausgeben) | Gibt den Teil von $string zurück, der durch die Parameter $start und $length definiert wurde. Wenn $start nicht negativ ist, beginnt der zurückgegebene String an der start-Position von string, angefangen bei 0. | $string: String, $start: Beginn von gewünschtem Teilstring $length (optional): Länge des Teil-Strings | Teil-String | substr('hallo', 1, 1), gibt 'a' zurück |
trim | trim (Aktion: Entfernt Leerzeichen am Anfang und Ende) | Entfernt Leerzeichen am Anfang und Ende eines Strings. | $str: String, $charlist (optional): Zeichen, die an Anfang und Ende der Zeichenkette entfernt werden sollen | Bearbeiteter String | trim(' hallo test ') ergibt „hallo test“ |
uppercase | uppercase (Aktion: in Großbuchstaben umwandeln) | Wandelt alle Zeichen in einem String in Großschreibung um. | $value: Umzuwandelnder String | Umgewandelter String | uppercase('Test') ergibt „TEST“ |
when | when (Abfrage-Konstrukt) | Prüft, ob ein Ausdruck wahr ist oder nicht, und gibt entsprechenden Wert zurück. | $check: Ausdruck, $true: Rückgabewert (falls Ausdruck wahr ist), $false: Rückgabewert (falls Ausdruck falsch ist) | falls $check wahr ist, $true, ansonsten $false | when('', 'wahr', 'falsch') |
Verschachtelung
Verschachtelung kann verwendet werden. Ist beispielsweise self = „testing“, ergibt die Umwandlungsformel uppercase(substr(self, 2, 3)) „st“.
Verknüpfungen
AND und OR können verwendet werden. Falls man beispielsweise eine Zeichenkette eingibt, die nicht mit MD5 oder SHA1 verschlüsselt ist, bewirkt der Prüfausdruck
!is_md5(self) AND !is_sha1(self)
einen Fehler. Wäre der übergebene String mit MD5 oder SHA1 verschlüsselt, wäre dieser Ausdruck false.
!is_positive(self) OR !is_date_de(self)
erzeugt nur keinen Fehler, falls beide Bedingungen gegeben sind, d.h. eine positive Zahl und ein deutsches Datum eingegeben wurde.
Beispiel: Variablen in den Formularen des Standardpanels
In der folgenden Tabelle werden die Variablen aufgeführt, die beim Standardpanel bei Registrierung und Datenänderung abgefragt werden.
Variable | Beschreibung | Reihenfolge | Gruppen-ID | Prüfausdruck | Fehlermeldung | Formular „Registration“ | Formular „Change data“ |
|---|---|---|---|---|---|---|---|
u_account | Panelisten-Zugangsname | 1 |
|
|
| X | X |
u_firstname | Vorname | 2 |
| !matches('/ [^\s]/ ',request.u_firstname) | Please enter your first name. | X | X |
u_name | Name | 3 |
| !matches('/ [^\s]/ ',request.u_name) | Please enter your last name. | X | X |
u_street | Strasse | 4 |
| !matches('/[^\s]/ ',request.u_street) | Please enter your street name. | X | X |
u_zip | PLZ | 5 |
| !matches('/^\s*\d{5}\s*$/ ',request.u_zip) | Please enter your zip code. | X | X |
u_city | Stadt | 6 |
| !matches('/[^\s]/ ',request.u_city) | Please enter your city name. |