Zum Inhalt springen

Vorlage:boolornot

aus Wikipedia, der freien Enzyklopädie



[Vorlagenprogrammierung] Logische Oder-Verknüpfung von zwei Werten, deren zweiter negiert ist; ergibt einen nicht-leeren String (1, also „wahr“), wenn entweder der erste Parameter nicht leer oder der zweite Parameter leer ist oder beides zutrifft

<templatestyles src="TOC nonum/styles.css"></templatestyles>

⧼templatedata-doc-params⧽

1. Wert1
1. Wert zur Verknüpfung
2. Wert2
2. Wert zur Verknüpfung
<templatedata>{"description":"[Vorlagenprogrammierung] Logische Oder-Verknüpfung von zwei Werten, deren zweiter negiert ist; ergibt einen nicht-leeren String (1, also „wahr“), wenn entweder der erste Parameter nicht leer oder der zweite Parameter leer ist oder beides zutrifft","paramOrder":["1","2"],

"params":{ "1":{"description":"1. Wert zur Verknüpfung","type":"boolean","required":true,"label":"1. Wert"},

"2":{"description":"2. Wert zur Verknüpfung","type":"boolean","required":true,"label":"2. Wert"} }

}</templatedata>

Kopiervorlage

<syntaxhighlight lang="wikitext" copy> 1 </syntaxhighlight>

Hinweise

Beide Parameter müssen erst ausgewertet werden, bevor sie verknüpft werden können. Das ist ein Problem, wenn die Ermittlung aufwändig ist („teuer“ oder sonst performancekritisch). Besser ist dann: <syntaxhighlight lang="wikitext" copy> <Aktion> </syntaxhighlight> Die bestimmenden Kriterien „A-Vorlage“ und „B-Vorlage“ sollten so angeordnet werden, dass die am einfachsten auszuwertende zuerst analysiert wird. Liefert die erste „wahr“, so ist der gesamte Ausdruck wahr und eine teure B-Vorlage muss nicht mehr eingebunden werden. Hier werden noch die Werte 0, - oder false als „falsch“=leer gewertet.

Wahrheitstabelle

Eingabe Ausgabe
{{boolornot| | }} 1
{{boolornot| |1}}
{{boolornot|1| }} 1
{{boolornot|1|1}} 1

Beispiele

  • {{#if: {{boolornot|| }}| Ja | Nein}} ergibt

Ja

  • {{#if: {{boolornot|xxx| }}| Ja | Nein}} ergibt

Ja

  • {{#if: {{boolornot| |xxx}}| Ja | Nein}} ergibt

Nein

  • {{#if: {{boolornot|xxx|xxx}}| Ja | Nein}} ergibt

Ja