Hilfe:Parser-Funktionen

Aus MARJORIE-WIKI
Wechseln zu: Navigation, Suche
Hilfe    Übersicht · Tutorial · Index 
Hilfe

Eine "Parser-Funktion" ist ein vorlagenähnliches Konstrukt, welches sich auf einen Wert eines mindestens nicht benannten bzw. verwendeten Parameters beruft und auch viele andere Möglichkeiten bietet.

Parser-Funktionen erlauben eine kleine Einbindung von logischen Ausdrücken und Funktionen, wie in der Programmiersprache. Dies sind zum Beispiel die if Ausdrücke, sowie grundlegende mathematische Funktionen. Wikia stellt die Erweiterung namens ParserFunctions (englisch) in allen Wikiprojekten zur Verfügung.

Anwendungsbeispiele[Bearbeiten]

if[Bearbeiten]

Format:

{{#if: «Bedingung» | «Then-Teil»[ | «Else-Teil»]  }}

Diese Funktion prüft, ob sich im Bedingungsfeld Text befindet. Ist dem so, wird der Text im Then-Teil angezeigt, sonst wird keiner oder, wenn angegeben, der Text im Else-Teil angezeigt.

Man kann mit #if zum Beispiel für nicht verwendete Parameter in Tabellen-Vorlagen die dazu passende Zeile in der Tabelle ausblenden:

{{#if: {{{input|}}} | {{!}}-
{{!}} {{{input}}} }}

produziert folgenden Code, wenn input bei der Vorlagen-Verwendung angegeben wird (weil der Parameter input in der Bedingungsabfrage als Alternative leer definiert ist und es keinen Else-Teil gibt).

|-
| input

{{!}} wird in der obenliegenden Funktion anstatt von | verwendet. {{!}} ist eine Vorlage (Vorlage:!), welche das Symbol | erstellt, nachdem die Parser Funktion bestätigt worden ist.

ifeq[Bearbeiten]

Diese Funktion richtet sich nach "ausgefüllt / nicht augefüllt".

Du kannst mit #ifeq definieren, unter welcher Bedingung etwas angezeigt werden soll. Zum Beispiel einen Text erscheinen lassen, wenn kein Parameter (input) definiert ist:

{{#ifeq: {{{input}}} | {{{input|}}} | Text bei ausgefülltem input | Text bei nicht ausgefülltem input }}

Beispiel:

{{#ifeq: {{{input}}} | {{{input|}}} | ja | nein }}

ergibt wenn input definiert ist:

|-
| ja

ergibt wenn input nicht definiert ist:

|-
| nein

Man kann auch einen variablen Text einbauen, das sieht dann so aus:

{{#ifeq: {{{input}}} | {{{input|}}} | {{{input}}} | Text bei nicht ausgefülltem input }}

Wird input definiert, so wird dieser Text angezeigt, wird input nicht definiert, wird der Text ganz rechts angezeigt.

ifexist[Bearbeiten]

Diese Funktion richtet sich danach, ob eine Seite existiert.

Will man zum Beispiel eine Seite in eine andere einfügen, diese existiert aber noch nicht und man möchte keinen Redlink dort haben, so kann man ifexist benutzen.

Will man zum Beipiel die Diskussionsseite auf diese Seite einfügen, schreibt man:

Hilfe Diskussion:Parser-Funktionen ({{:Hilfe Diskussion:Parser-Funktionen}})

Will man aber nun festlegen, dass nicht der unerzeugte Link dasteht, so kann man das mit #ifexist definieren:

Diese Seite existiert nicht ({{#ifexist: [[Hilfe Diskussion:{{subst:Parser-Funktionen}}]] | {{:Hilfe Diskussion:Parser-Funktionen}} | Diese Seite existiert nicht }})

Die Seite existiert nicht, daher kann man den 2. Text sehen. Das ganze funktioniert so:

{{#ifexist: [[Link zur Seite, die überprüft werden soll]] | Text, wenn diese existiert | Text, wenn diese nicht existiert }}

switch[Bearbeiten]

Format (man kann auch alles in einer Zeile schreiben):

{{#switch: <Testwert>
 | «Fall 1»  = «Wert für Fall 1»
 | «Fall 2»
 | «Fall 3»  = «Wert für Fall 2 oder Fall 3»
 | «Fall 4»  = «Wert für Fall 4»
 | «Wert, falls der Testwert ungleich einem der vorher definierten Fälle ist»
 }}

Diese Funktion vergleicht den Testwert der Reihe nach mit einzeln definierten Fällen und gibt den Text hinter dem Gleichheitszeichen eines passenden Falls aus; ansonst wird der zuunterst angegebene Standard-Wert angegeben.

Siehe auch[Bearbeiten]