Extension:Loops/de

While- und do-while-Schleifen, wie sie in Programmiersprachen verwendet werden. Die Variable $maxLoops legt das Maximum der erlaubten Schleifen fest (Standardwert 100).

Syntax
For technical reasons, the preprocessor in v1.12alpha and later handles the first parameter differently than the rest, so it's ignored for the #while and #dowhile parser functions in order for them to work. See bug 12842.

#while
{ {#while}} führt so lange eine Schleife aus (d. h., gibt einen bestimmten Quelltext wiederholt an den Parser), bis der Bedingungstext etwas anderes als Leerstellen enthält.

Beispiele
Die folgenden Beispiele nutzen die Variablen-Erweiterung.

Dieser Quelltext:

ergibt folgendes:


 * 0
 * 1
 * 2
 * 3
 * 4

{ {#while}} kann auch in Vorlagen verwendet werden, um eine nummerierte Reihe zu erzeugen. Wenn bspw. die Vorlage "Loop-Test" folgendes enthält:

dann kann mit diesem Quelltext:

folgendes erzeugt werden:


 * zero
 * one
 * two
 * three
 * four

Leeräume wie Leerzeichen, Tabulatoren und Zeilenumbrüche am Anfang oder am Ende aller Parameter werden abgeschnitten. Wenn das nicht gewünscht ist, müssen HTML-Kodierungen wie &amp;#32; verwendet werden.

#dowhile
{ {#dowhile}} erfüllt genau dieselbe Aufgabe wie { {#while}}, mit der Ausnahme, dass der auszuführende Quelltext in jedem Fall mindestens einmal vom Parser verarbeitet und angezeigt wird (wenn es anzuzeigenden Text ergibt). Dies erfolgt vor der Berechnung der Bedingung.

#loop (in der Testphase)
{ {#loop}} lässt den Parser wiederholt einen auszuführenden Quelltext bearbeiten und ausgeben – wie oft, das legt die Anzahl der auszuführenden Schleifen fest. Der Startwert wird als Variable mit dem angegebenen Namen gespeichert (aufrufbar mit der Funktion { {#var:}} der Variablen-Erweiterung). Nach jeder Schleife wird die Variable um eins erhöht, wenn die Schleifenanzahl positiv ist, oder verringert, wenn sie negativ ist.

Beispiel
Der folgende Quelltext:

ergibt:


 * Das ist Runde 4 und es liegen 3 weitere Runden vor uns
 * Das ist Runde 5 und es liegen 2 weitere Runden vor uns
 * Das ist Runde 6 und es liegen 1 weitere Runden vor uns
 * Das ist Runde 7 und es liegen 0 weitere Runden vor uns

#forargs (in der Testphase)
{ {#forargs}} ist für Vorlagen vorgesehen. Es speichert Parameterwerte, die an eine Vorlage übergeben wurden, in Variablen, die mit der Funktion { {#var:}} der Variable-Erweiterung aufgerufen werden können.

Diese Funktion geht jeden vom Vorlagennutzer angegebenen Parameter durch, der mit dem  beginnt, speichert seinen Namen (ohne ) in die Variable  und seinen Wert in die Variable . Danach wird der angegebene Quelltext ausgeführt, in dem nun { {#var:&lt;Schlüssel>}} und { {#var: &lt;Wert>}} benutzt werden können.

Beispiel
Wenn die Vorlage "Loop-Test" folgendes enthält:

dann ergibt dieser Quelltext:

das folgende:


 * 1 = 42
 * 5 = 1337
 * ameter = Wert

#fornumargs (in der Testphase)
{ {#fornumargs}} performs similarly to { {#forargs}} with two major differences: It doesn't take a prefix argument, and it only works on numbered arguments whether they're explicitly numbered:

or implicitly numbered:

Beispiele
TBD

Download-Anleitung
Please cut and paste the code found below and place it in. Note: $IP stands for the root directory of your MediaWiki installation, the same directory that holds LocalSettings.php.

Installation
The parser functions #loop, #forargs, and #fornumargs require VariablesExtension to be installed. Loops is installed by adding the following to LocalSettings.php:

ExtLoops::$maxLoops
This parameter sets the maximum number of loops a page is allowed to perform. It defaults to 100. Setting it to a negative value lets the loops run within the limits of php's environment. This parameter affects neither the { {#forargs:}} nor { {#fornumargs:}}.

Siehe auch

 * Control Structure Functions für MediaWiki 1.11+ (en)
 * LoopFunctions (en)
 * VariablesExtension (en)