Hilfe:Parserfunktionen/Funktionen: Unterschied zwischen den Versionen

Aus InkluPedia
(+)
(Beispiel für #switch wird nun dargestellt)
Zeile 223: Zeile 223:
Die Funktion <code>#switch</code> liefert ein Ergebnis in Abhängigkeit von einem Vergleichswert. Wenn ein Vergleich erfolgreich ist, wird die nächstfolgende Zuweisung zum Ergebnis und die Abarbeitung beendet. Wenn kein Vergleich zutraf, ist die letzte angetroffene Zuweisung das Ergebnis. Daher ist es in MediaWiki-Wikis üblich, dafür den Wert <code>#default</code> zu verwenden.
Die Funktion <code>#switch</code> liefert ein Ergebnis in Abhängigkeit von einem Vergleichswert. Wenn ein Vergleich erfolgreich ist, wird die nächstfolgende Zuweisung zum Ergebnis und die Abarbeitung beendet. Wenn kein Vergleich zutraf, ist die letzte angetroffene Zuweisung das Ergebnis. Daher ist es in MediaWiki-Wikis üblich, dafür den Wert <code>#default</code> zu verwenden.


Beispiel:
;Beispiel:
<syntaxhighlight lang="wikitext" style="font-size:90%">
{{#switch: {{{Zeichen}}}
{{#switch: {{{Zeichen}}}
   |A|B|C|D| … X|Y|Z=Großbuchstabe
   |A|B|C|D| … X|Y|Z=Großbuchstabe
   |a|b|c|d| … x|y|z=Kleinbuchstabe
   |a|b|c|d| … x|y|z=Kleinbuchstabe
  |=Leerzeichen
   |,|;|.|!|?=Satzzeichen
   |,|;|.|!|?=Satzzeichen
  |=Leerzeichen
   |{{{Zeichen}}}=KEIN ZEICHEN ANGEGEBEN
   |{{{Zeichen}}}=Kein Zeichen angegeben
   |#default=Sonderzeichen
   |#default=Sonderzeichen
}}
}}
 
</syntaxhighlight>





Version vom 1. November 2024, 09:52 Uhr

Auszug aus den Parserfunktionen von MediaWiki. Für zusätzliche Funktionen ist in InkluPedia die Extension ParserFunctions installiert.

#expr

Die Funktion #expr berechnet einen mathematischen Ausdruck und gibt den errechneten Wert zurück. Bei Nutzung der Booleschen Algebra ergibt 0 (False) immer falsch und jeder andere Wert immer wahr. Ein leerer Ausdruck erzeugt eine leere Ausgabe, ein ungültiger Ausdruck erzeugen eine von mehreren möglichen Fehlermeldungen. Mit der Funktion #iferror kann die Fehlermeldung verhindert werden.

{{#expr: Ausdruck }}

Art Operatoren
Gruppieren (Klammern) ( )
Zahlen 1234,5   e (2,718)   pi (3,142)
Binärer Operator e   Unäre Operatoren +,-
Unäre Operatoren not ceil trunc floor abs exp ln sin cos tan acos asin atan
Binäre Operatoren ^
* / div mod
+ -
Runden round
Logische Operatoren = != <> > < >= <=
and or
Beispiele

{{#expr: 1 + 2}}
Ergebnis: 3


#if

Die Funktion #if liefert ein Ergebnis in Abhängigkeit von einer Bedingung. Die Bedingung ist „Wahr“, wenn sie nicht leer ist und „Falsch“, wenn sie leer ist.

{{#if: Bedingung | Wahr | [Falsch] }}


Beispiele

Wenn der Vorlagenparameter {{{1}}} nicht leer ist, resultiert Wahr, sonst Falsch:
{{#if: {{{1}}} | Wahr | Falsch}}

Wenn der Vorlagenparameter {{{1}}} nicht leer ist, resultiert Wahr, sonst „nichts“:
{{#if: {{{1}}} | Wahr}}

Wenn der Vorlagenparameter {{{1}}} leer ist, resultiert Falsch, sonst „nichts“:
{{#if: {{{1}}} | | Falsch}}


#iferror

Die Funktion #iferror überprüft, ob der eingegebene Ausdruck einen Fehler erzeugt. Es wird true ausgegeben, wenn der Ausdruck ein HTML-Objekt mit class="error" enthält. Ebenfalls erkannt werden Fehler in Vorlagen wie Rekursionsschleifen. Die Ausgabe-Parameter können bei Bedarf weggelassen werden. Wird der Parameter für Wert wenn korrekt weggelassen, wird der zu überprüfende Ausdruck ausgegeben, sofern dieser keinen Fehler enthält. Wird auch der Parameter für Wert wenn Fehler weggelassen, wird bei einem Fehler nichts ausgegeben.

{{#iferror: Teststring | Wert wenn Fehler | Wert wenn korrekt }}


Beispiele

{{#iferror: {{#expr: 1 + 2 }} | Fehler | OK }}
Ergebnis: OK

{{#iferror: {{#expr: 1 + X }} | Fehler | OK }}
Ergebnis: Fehler

{{#iferror: {{#expr: 1 + 2 }} | Fehler }}
Ergebnis: 3

{{#iferror: {{#expr: 1 + X }} | Fehler }}
Ergebnis: Fehler

{{#iferror: {{#expr: 1 + 2 }} }}
Ergebnis: 3

{{#iferror: {{#expr: 1 + X }} }}
Ergebnis:


#ifeq

Die Funktion #ifeq vergleicht zwei Strings und bestimmt, ob sie identisch sind. Basierend auf dem Ergebnis wird eine der zwei Zeichenfolgen zurückgegeben. Wenn beide Ausdrücke gültige numerische Werte sind, werden sie zahlenmäßig verglichen. Bei Text wird Groß- und Kleinschreibung beachtet.

{{#ifeq: String 1 | String 2 | Wert wenn gleich | Wert wenn unterschiedlich }}


Beispiele

{{#ifeq: 01 | 1 | gleich | nicht gleich }}
Ergebnis: gleich

{{#ifeq: {{#expr:10^3}} | 1000 | gleich | nicht gleich }}
Ergebnis: gleich

{{#ifeq: auto | zug | gleich | nicht gleich }}
Ergebnis: nicht gleich

{{#ifeq: auto | Auto | gleich | nicht gleich }}
Ergebnis: nicht gleich


#ifexist

Die Funktion #ifexist überprüft die Existenz einer Wikiseite in der InkluPedia. Bei Mediendateien wird auch Wikimedia Commons unterstützt, wenn im Namensraum Media: gesucht wird. Im Namensraum Datei:/File: existieren nur lokale Dateibeschreibungsseiten.


{{#ifexist: Seite | Ergebnis wenn existent | Ergebnis wenn nicht existent }}


Beispiele

Beispiel für Artikel Kiel:
{{#ifexist: Kiel | Die Seite existiert | Die Seite existiert nicht }} Ergebnis: Die Seite existiert

Beispiel für nicht existierende Seite XYZ123:
{{#ifexist: XYZ123 | Die Seite existiert | Die Seite existiert nicht }} Ergebnis: Die Seite existiert nicht

Beispiele für lokale Datei File:Wiki_InkluPedia_2015.png:
{{#ifexist: File:Wiki_InkluPedia_2015.png | Datei existiert | Datei existiert nicht }} Ergebnis: Datei existiert

{{#ifexist: File:Wiki_InkluPedia_2099.png | Datei existiert | Datei existiert nicht }} Ergebnis: Datei existiert nicht

Beispiele für Commons Datei File:Commons-logo-en.svg:
{{#ifexist: Media:Commons-logo-en.svg | Datei existiert | Datei existiert nicht }} Ergebnis: Datei existiert

{{#ifexist: File:Commons-logo-en.svg | Datei existiert | Datei existiert nicht }} Ergebnis: Datei existiert nicht


#invoke

Die Funktion #invoke bindet ein Modul in der Skriptsprache Lua ein. Der Aufruf der Funktion erfolgt in der Regel innerhalb einer Vorlage. Der Rückgabewert der aufgerufenen Funktion ist eine Zeichenkette, der entsprechend an der Stelle eingebettet wird. Die Ausführungsumgebung wird bei jedem Aufruf von #invoke zurückgesetzt. Eine direkte Übernahme von Variablen zwischen zwei Aufrufen ist daher nicht möglich. Innerhalb der aufrufenden Vorlage erfolgen die einzelnen Aufrufe von #invoke sequentiell, mehrere Einbindungen der Vorlage selbst werden dagegen parallel abgearbeitet.

{{#invoke: Lua-Modul | Funktionsname | [Wert1] | [Wert2] | NameX=Wert ... }}

Parameter
  • Lua-Modul: Name des Lua-Moduls
  • Funktionsname: Name der Funktion im Modul
  • Wert1: (optional) Paremeter 1 für Funktionsaufruf
  • Wert2: (optional) Paremeter 2 für Funktionsaufruf


Beispiele

Beispiele am Modul:Hello
{{#invoke:Hello|hello}}
Ergebnis: Hallo, Welt! Dies ist Lua!

{{#invoke:Hello|hello|InkluPedia}}
Ergebnis: Hallo, InkluPedia! Dies ist Lua!


#language

Die Funktion #language liefert den Klarnamen für einen Sprachcode nach ISO 639 zurück. Für Ausgabe-Sprachcode wird die Extension CLDR genutzt.

{{#language: Sprachcode | [Ausgabe-Sprachcode] }}


Parameter
  • Sprachcode: aufzulösender Sprachcode nach ISO 639
  • Ausgabe-Sprachcode: (optional) gewünschter Sprachcode nach ISO 639 für Ausgabe


Beispiele

{{#language: ja}}
Ergebnis: 日本語

{{#language: ja | de}}
Ergebnis: Japanisch


#rel2abs

Die Funktion #rel2abs liefert einen relativen Seitenpfad zurück oder wandelt den angegebenen relativen Seitenpfad um. Der relative Seitenpfad kann mit . oder .. oder mit /oder ./ oder ../ beginnen. Die Funktion verarbeitet reine Zeichenketten, die Seiten müssen in diesem Wiki nicht existieren.


{{#rel2abs: Pfad | [Basis] }}


Parameter
  • Pfad: relativer Seitenname
  • Basis: (optional) Basis für Pfad. Wenn nicht angegeben, wird die aktuelle Seite genommen.


Beispiele

Am Beispiel für Seite Namensraum:Seite1/Teil2/Teil3


{{#rel2abs:}}
Ergebnis: Namensraum:Seite1/Teil2/Teil3


{{#rel2abs:.}}
Ergebnis: Namensraum:Seite1/Teil2/Teil3


{{#rel2abs:..}}
Ergebnis: Namensraum:Seite1/Teil2


{{#rel2abs:/}}
Ergebnis: Namensraum:Seite1/Teil2/Teil3


{{#rel2abs:../..}}
Ergebnis: Namensraum:Seite1


{{#rel2abs:/x}}
Ergebnis: Namensraum:Seite1/Teil2/Teil3/x


{{#rel2abs:/x|TestA/TestB}}
Ergebnis: TestA/TestB/x


#special

Die Funktion #special ...


#switch

Die Funktion #switch liefert ein Ergebnis in Abhängigkeit von einem Vergleichswert. Wenn ein Vergleich erfolgreich ist, wird die nächstfolgende Zuweisung zum Ergebnis und die Abarbeitung beendet. Wenn kein Vergleich zutraf, ist die letzte angetroffene Zuweisung das Ergebnis. Daher ist es in MediaWiki-Wikis üblich, dafür den Wert #default zu verwenden.

Beispiel
{{#switch: {{{Zeichen}}}
  |A|B|C|D| … X|Y|Z=Großbuchstabe
  |a|b|c|d| … x|y|z=Kleinbuchstabe
  |=Leerzeichen
  |,|;|.|!|?=Satzzeichen
  |{{{Zeichen}}}=KEIN ZEICHEN ANGEGEBEN
  |#default=Sonderzeichen
}}


#tag

Die Funktion #tag erlaubt es, Tag-Erweiterung von MediaWiki (kein HTML) mit veränderlichem Inhalt einbinden. Die zur Verfügung stehenden Tag-Erweiterungen können auf Spezial:Version nachgelesen werden.

{{#tag: Erweiterung | Inhalt | [Parameter] | [Parameter] }}


Parameter
  • Erweiterung: Name des Tags
  • Inhalt: Inhalt des Elements
  • Parameter: (optional) Zuweisung an das Element


Beispiel

{{#tag:nowiki|https://{{{Domain}}}/{{{Pfad}}}}}

Hierbei werden die beiden Vorlagenparameter {{{Domain}}} und {{{Pfad}}} durch ihre aktuellen Werte ersetzt und das ganze über das Tag <nowiki> eingeschlossen.

Beim Konstrukt <nowiki>https://{{{Domain}}}/{{{Pfad}}}</nowiki> werden hingegen {{{Domain}}} und {{{Pfad}}} nicht ersetzt.


#time

Die Funktion #time formatiert einen beliebigen Zeitpunkt in die Weltzeit.

Parameter
  • Format: PHP-Formatspezifikation
  • Zeitpunkt: Datumsformat in ISO 8601 oder englischem Datumsformat. In Weltzeit. Relative Angabe ist möglich. Vorgabe ist „jetzt“. Bei fehlerhafter Angabe des Zeitpunktes wird dieser unverändert wiedergegeben.
  • Ausgabesprache: Sprachcode einer Ausgabesprache gemäß ISO 639.

{{#time: Format | [Zeitpunkt] | [Ausgabesprache] }}


Beispiele

{{#time}}
Ergebnis: {{#time}}

{{#time:j. F Y H:i:s}}


#timel

Die Funktion #timel formatiert einen beliebigen Zeitpunkt in die lokale Zeit.

{{#timel: Format | [Zeitpunkt] | [Ausgabesprache] }}


Beispiele

{{#timel}}
Ergebnis: {{#timel}}


#titleparts

Die Funktion #titleparts extrahiert Segment(e) aus einem mit / (Slash) gegliederten Seitennamen.

Parameter
  • Seitenname: Name der Seite, in Vorlagen sinnvollerweise mit {{PAGENAME}} angeben.
  • links: Zahl. Gibt die Stelle an, ab welcher ein Teil des Seitentitels zurückgegeben werden soll. Die Schrägstriche im Seitenname zählen und beenden die einzelnen Segmente.
  • Anzahl: (optional) Zahl. Ist der Parameter > 0, werden von links aus entsprechend viele n-Teile zurückgegeben. Ist der Parameter < 0, werden von rechts aus n-Teile abgetrennt.


Beispiele

{{#titleparts:Namensraum:Seite1/Teil2/Teil3/Teil4|1}}
Ergebnis: Namensraum:Seite1

{{#titleparts:Namensraum:Seite1/Teil2/Teil3/Teil4|-1}}
Ergebnis: Namensraum:Seite1/Teil2/Teil3

{{#titleparts:Namensraum:Seite1/Teil2/Teil3/Teil4|0|2}}
Ergebnis: Teil2/Teil3/Teil4

{{#titleparts:Namensraum:Seite1/Teil2/Teil3/Teil4|1|2}}
Ergebnis: Teil2

Weblinks