Hilfe:IF/WENN-Bedingung im Zusammenhang mit Formularen

Aus Kompetenzportal
Wechseln zu: Navigation, Suche

Bei Formularen besteht die Möglichkeit, dass man einige Felder freilassen möchte. Im Folgenden wird an einem Beispiel für ein Datumsfeld erklärt, wie man die Anzeigemöglichkeiten der fertigen Seite in Abhängigkeit von freigelassenen Formularfeldern automatisch anpassen kann.

Das Beispiel ist in allen Vortragsseiten im Einsatz zu sehen. Bei Vorträgen können 2 Felder mit einem Datum versehen werden. Findet eine Tagung nur an einem Tag statt, braucht man nur das erste Feld ausfüllen. Geht die Tagung über mehrere Tage kann das 2. optionale Feld zum Angeben des Ende genutzt werden. In Abhängigkeit dieser Angabe soll das Wiki selbstständig entscheiden, welche Darstellung genutzt wird.

Darstellung für Tagungen mit der Länge von einem Tag:

am 2010/08/29

Darstellung für Tagungen mit der Länge von mehr als einem Tag:

vom 2010/08/29 bis 2010/08/30

Diese Anzeige wird vom Wiki automatisch gewählt. Wird vom User nur das 1. Datumsfeld ausgefüllt, wird die erste Darstellung genutzt. Wird das 2. Datumsfeld auch ausgefüllt, wird die untere Darstellung genutzt.


Voraussetzung

Für das Verwenden einer IF/WENN-Bedingung ist es nötig, die Erweiterung ParserFunctions für das Wiki zu installieren.

Umsetzung

Für die Umsetzung ist es zunächst erforderlich, dass ein Formuler existiert, bei dem 2 Felder für diese beiden Datumsangaben vorhanden sind. Diese Felder sind vom Typ Datum und bestehen somit aus jeweils 3 Feldern. Im ersten Feld wird der Monatstag eingegeben. Das 2. Feld besteht aus einer Auswahlliste von den Monaten und im 3. Feld wird das Jahr eingetragen. Lässt man das erste Feld leer, wird das Datum nicht angezeigt. Es wurde somit kein Datum angegeben. Diesen Umstand machen wir uns für die unterschiedlichen Darstellungen zu nutzen.

In der Vorlage für das Formular Vortrag wird eine Infobox oben rechts definiert. In dieser Infobox finden wir die Datumsangabe wieder. In der ersten Spalte stehen immer die Bezeichnungen wie Autor usw. Für uns ist der Punkt von bzw. am interessant. Diese Auswahl wird in Abhängigkeit zum 2. Datumsfeld im Formular durchgeführt. Im Wiki wird dafür folgende Syntax verwendet:

{{#if: {{{bis|}}} | vom | am}}

Wie man der Syntax ansieht, handelt es sich hierbei um eine IF-Klausel. Zwischen dem Doppelpunkt und dem 2. senkrechten Strich steht die Bedingung, die geprüft wird. Die Klammern mit dem bis| geben den Inhalt des zweiten Datumfeldes des Formulars wieder. Ist dieser gefüllt wird der Text vom geschrieben. Ist das Feld nicht gefüllt worden, wird der Text am geschrieben.

Nun kommen wir zur 2. Spalte in der Infoboxtabelle. Dort wird Wahlweise nur ein Datum bzw. der Inhalt von beiden Datumfeldern mit einem bis verknüpft. Dies wird mit folgender Syntax realisiert:

[[Datum::{{{von|}}}]] {{#if: {{{bis|}}} | '''bis''' | }} [[Datum::{{{bis|}}}]]

Der erste Ausdruck in eckigen Klammern gibt das erste Datum wieder. Die IF-Klausel prüft erneut, ob das 2. Feld gefüllt ist. Ist dies der Fall wird ein bis in fetter Schrift dargestellt. In dieser IF-Klausel gibt es keinen sonst-Ausdruck. Es wird somit bei leerem Formularfeld kein Text angezeigt. Der hintere Ausdruck in eckigen Klammern gibt dann das 2. Datum an, wenn es vom User gefüllt wurde.