Erweiterung:Variables

This page is a translated version of the page Extension:Variables and the translation is 100% complete.
Other languages:
Deutsch • ‎English • ‎Tiếng Việt • ‎Türkçe • ‎español • ‎français • ‎polski • ‎português do Brasil • ‎русский • ‎中文 • ‎日本語 • ‎한국어
MediaWiki-Erweiterungen
OOjs UI icon advanced.svg
Variables
Freigabestatus: stabil
Einbindung Parser-Funktion
Beschreibung Führt Parser-Funktionen zum Umgang mit seitenbezogenen Variablen ein.
Autor(en)
Betreuer MGChecker
Letzte Version 2.5.2 (2019-07-11)
MediaWiki 1.29+
PHP 5.5+
Datenbankänderungen Nein
Lizenz ISC License
Herunterladen
README
RELEASE-NOTES

  • $egVariablesAreVolatile
  • $egVariablesDisabledFunctions
Übersetze die Variables-Erweiterung, wenn sie auf translatewiki.net verfügbar ist
Prüfe die Benutzungs- und Versionsmatrix.
Vagrant-Rolle variables
Probleme Offene Aufgaben · Einen Fehler melden

Die Erweiterung Variables ermöglicht es dir, auf einer Seite eine Variable zu definieren, sie später auf derselben Seite oder in darauf eingebundenen Vorlagen zu verwenden, ihren Wert zu verändern; eventuell zu einem Wert, der relativ zu dem vorherigen ist, usw.

Es verhält sich wie eine Vorlage, nur abgespeckt und nur auf eine einzige Seite bezogen, so dass auf einer Seite viele Variablen benutzt werden können, ohne das Wiki mit vielen Vorlagen zu verlangsamen. Für die besten Resultate zusammen mit der Erweiterung ParserFunktionen verwenden.

Dieser Erweiterung wird nicht für Wikis aktiviert werden, die von der Wikimedia Foundation (WMF) betrieben werden.[1][2][3][4] Siehe Alternativen

Einer Variablen einen Wert zuordnen

#vardefine

  • {{#vardefine:VariablenName|AngegebenerWert}}

Weist den Wert AngegebenerWert der (schon existierenden oder hiermit eingeführten) Variablen VariablenName zu.

  • Beispiel: {{#vardefine:iconwidth|25}} setzt iconwidth = 25

#vardefineecho

  • {{#vardefineecho:VariablenName|AngegebenerWert}}

Funktioniert genauso wie #vardefine, aber der betroffene Wert wird ausgegeben.

  • Beispiel: making iconwidth = <code>{{#vardefineecho:iconwidth|25}}</code>

Auslesen des Wertes einer Variablen

#var

Der Wert der Variablen VariablenName wird ausgelesen durch

  • {{#var:VariablenName}}

Wenn VariablenName nicht definiert ist, wird eine leere Zeichenkette ausgegeben. Es gibt keine Fehlermeldung.

Es ist möglich, einen Wert für den Fall anzugeben, dass die Variable undefiniert oder leer ist:

  • {{#var:VariablenName | Standardwert }}

Dies ist gleichbedeutend mit:

  • {{#if: {{#var:VariablenName}} | {{#var:VariablenName }} | Standardwert }}

ist aber wesentlich kürzer und besser strukturiert. Vor Version 2.0 wurde der Standardwert immer expandiert. Seit Version 2.0 wird der Standardwert nur noch expandiert, wenn er tatsächlich benutzt wird.

Der Wert kann in Parser-Funktionen usw. benutzt werden.

#varexists

  • {{#varexists:VariablenName }} gibt 1 aus, wenn die Variable bereits definiert ist. Wenn die Variable nicht definiert ist, so wird ein leerer Wert ausgegeben.

Sie unterstützt einen zweiten und einen dritten Parameter, um diese Werte zu ersetzen.

  • {{#varexists:VariablenName | wenn-Wert | sonst-Wert }}

Dies ist gleichbedeutend mit:

  • {{#if: {{#varexists: VariablenName }} | wenn-Wert | sonst-Wert }}

ist aber wesentlich kürzer und besser strukturiert. Vor Version 2.5 wurden beide Werte immer expandiert. Seit Version 2.5 werden wenn- und sonst-Wert nur noch expandiert, wenn ihre Fälle tatsächlich eintreten.

#var_final

Experimentelle neue Funktion, die mit Variables 2.0 eingeführt wurde. Diese Funktion gibt den letzten Wert aus, den eine Variable hat, nachdem die Seite vollständig gerendert wurde. Naturgemäß wird dieser Wert erst eingefügt, nachdem der Parser den vollständigen Wiki-Code verarbeitet hat, also kann diese Funktion nicht innerhalb anderer Funktionen genutzt werden, da der richtige Wert zu diesem Zeitpunkt noch nicht bekannt ist. Beispiel:

  • {{#var_final:VariablenName | Standardwert}}

Der Standardwert wird benutzt, wenn die Variable zum Zeitpunkt, an dem das Rendern abgeschlossen ist, nicht existiert oder sein Wert aus einer leeren Zeichenkette besteht. Der Standardwert wird an genau der Stelle expandiert, an der die Funktion benutzt wurde, genauso werden die Parameter expandiert, selbst wenn sie nicht gebraucht werden.

Beispiele

Um #expr benutzen zu können, muss auch die ParserFunctions-Erweiterung installiert sein.

Berechne x = 2*a + b:

  • {{#vardefine:x|{{#expr:2*{{#var:a}}+{{#var:b}}}}}}

Erhöhe n um eins:

  • {{#vardefine:n|{{#expr:{{#var:n}}+1}}}}

Installation

  • Folgenden Code am Ende der LocalSettings.php hinzufügen:
    wfLoadExtension( 'Variables' );
    
  • Configure as required
  •   Erledigt – Zu Special:Version in dem Wiki (bei Einstellung auf deutsch nach Spezial:Version) navigieren, um die erfolgreiche Installierung der Erweiterung zu überprüfen.

Für Benutzer, die MediaWiki in der Version 1.30 und früher betreiben:

Die oben stehenden Anweisungen beschreiben die neue Installationsanweisung für diese Erweiterung unter der Verwendung von wfLoadExtension(). Wird diese Erweiterung in einer dieser früheren Versionen (MediaWiki 1.30 und früher)  – an Stelle von wfLoadExtension( 'Variables' ); – installiert, benutze:

require_once "$IP/extensions/Variables/Variables.php";

Konfiguration

Diese Erweiterung verfügt über zwei Konfigurationsparameter:

$egVariablesAreVolatile
Erlaubt zu deaktivieren, dass der ParserFrame von der Erweiterung als volatile markiert wird, deaktiviert also Vorlagencaching.
Standard: true;
$egVariablesDisabledFunctions
Erlaubt, die angegebenen Parserfunktionen zu deaktivieren, die von dieser Erweiterung bereitgestellt werden.
Standard: [];
Beispiel: [ 'var_final', 'vardefineecho' ];

Kompatibilität

Die empfohlene Version der Variables-Erweiterung für neuere MediaWiki-Versionen ist unten aufgeführt. Ältere Versionen der Erweiterung können ebenfalls funktionieren, werden jedoch für neue MediaWiki-Versionen nicht getestet.

Alternativen

Da diese Erweiterung nicht für Wikis aktiviert werden wird, die von der Wikimedia Foundation (WMF) betrieben werden,[1][2][3][4] sind hier einige Alternativen gelistet:

  • Wenn du Variables als Cache für aufwendige Operationen verwendest, kannst du den Abschnitt, in dem du sie benötigst, in eine Vorlage umwandeln und die benötigten Informationen stattdessen als Vorlagenparameter weitergeben. Dies funktioniert, bis du das Expansion depth limit erreichst.
  • Wenn du Variables verwendest, um in Vorlagen komplexere Operationen durchzuführen, als mit einfachen Parserfunktionen möglich ist, so kannst du stattdessen Scribuntos Lua-Funktionen verwenden. Beachte, dass dadurch keine globalen Variablen möglich werden. Die Erweiterung VariablesLua führt allerdings eine Scribunto-Schnittstelle für den Variables-Speicher ein.
  • Verwende keine Variablen, sondern dupliziere stattdessen die Information, die du als Variable benötigst. Wenn diese Information über einen aufwändigen Vorlagenaufruf generiert wird, kann die Performance darunter leiden. Diese Lösung funktioniert, bis du das Knotenlimit erreichst.

Siehe auch

Einzelnachweise